{"id":"b9914a9b430aed5bbad2ac5473e1b3a0","_format":"hh-sol-build-info-1","solcVersion":"0.8.23","solcLongVersion":"0.8.23+commit.f704f362","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    constructor() {\n        _transferOwnership(_msgSender());\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        _checkOwner();\n        _;\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view virtual returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if the sender is not the owner.\n     */\n    function _checkOwner() internal view virtual {\n        require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby disabling any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        _transferOwnership(address(0));\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n        _transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual {\n        address oldOwner = _owner;\n        _owner = newOwner;\n        emit OwnershipTransferred(oldOwner, newOwner);\n    }\n}\n"},"@openzeppelin/contracts/access/Ownable2Step.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable2Step.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./Ownable.sol\";\n\n/**\n * @dev Contract module which provides access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership} and {acceptOwnership}.\n *\n * This module is used through inheritance. It will make available all functions\n * from parent (Ownable).\n */\nabstract contract Ownable2Step is Ownable {\n    address private _pendingOwner;\n\n    event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Returns the address of the pending owner.\n     */\n    function pendingOwner() public view virtual returns (address) {\n        return _pendingOwner;\n    }\n\n    /**\n     * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual override onlyOwner {\n        _pendingOwner = newOwner;\n        emit OwnershipTransferStarted(owner(), newOwner);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n     * Internal function without access restriction.\n     */\n    function _transferOwnership(address newOwner) internal virtual override {\n        delete _pendingOwner;\n        super._transferOwnership(newOwner);\n    }\n\n    /**\n     * @dev The new owner accepts the ownership transfer.\n     */\n    function acceptOwnership() public virtual {\n        address sender = _msgSender();\n        require(pendingOwner() == sender, \"Ownable2Step: caller is not the new owner\");\n        _transferOwnership(sender);\n    }\n}\n"},"@openzeppelin/contracts/interfaces/IERC1271.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (interfaces/IERC1271.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC1271 standard signature validation method for\n * contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271].\n *\n * _Available since v4.1._\n */\ninterface IERC1271 {\n    /**\n     * @dev Should return whether the signature provided is valid for the provided data\n     * @param hash      Hash of the data to be signed\n     * @param signature Signature byte array associated with _data\n     */\n    function isValidSignature(bytes32 hash, bytes memory signature) external view returns (bytes4 magicValue);\n}\n"},"@openzeppelin/contracts/interfaces/IERC2981.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC2981.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Interface for the NFT Royalty Standard.\n *\n * A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal\n * support for royalty payments across all NFT marketplaces and ecosystem participants.\n *\n * _Available since v4.5._\n */\ninterface IERC2981 is IERC165 {\n    /**\n     * @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of\n     * exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\n     */\n    function royaltyInfo(\n        uint256 tokenId,\n        uint256 salePrice\n    ) external view returns (address receiver, uint256 royaltyAmount);\n}\n"},"@openzeppelin/contracts/interfaces/IERC5267.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5267.sol)\n\npragma solidity ^0.8.0;\n\ninterface IERC5267 {\n    /**\n     * @dev MAY be emitted to signal that the domain could have changed.\n     */\n    event EIP712DomainChanged();\n\n    /**\n     * @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n     * signature.\n     */\n    function eip712Domain()\n        external\n        view\n        returns (\n            bytes1 fields,\n            string memory name,\n            string memory version,\n            uint256 chainId,\n            address verifyingContract,\n            bytes32 salt,\n            uint256[] memory extensions\n        );\n}\n"},"@openzeppelin/contracts/token/common/ERC2981.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/common/ERC2981.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../interfaces/IERC2981.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information.\n *\n * Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for\n * specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first.\n *\n * Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the\n * fee is specified in basis points by default.\n *\n * IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See\n * https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to\n * voluntarily pay royalties together with sales, but note that this standard is not yet widely supported.\n *\n * _Available since v4.5._\n */\nabstract contract ERC2981 is IERC2981, ERC165 {\n    struct RoyaltyInfo {\n        address receiver;\n        uint96 royaltyFraction;\n    }\n\n    RoyaltyInfo private _defaultRoyaltyInfo;\n    mapping(uint256 => RoyaltyInfo) private _tokenRoyaltyInfo;\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) {\n        return interfaceId == type(IERC2981).interfaceId || super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @inheritdoc IERC2981\n     */\n    function royaltyInfo(uint256 tokenId, uint256 salePrice) public view virtual override returns (address, uint256) {\n        RoyaltyInfo memory royalty = _tokenRoyaltyInfo[tokenId];\n\n        if (royalty.receiver == address(0)) {\n            royalty = _defaultRoyaltyInfo;\n        }\n\n        uint256 royaltyAmount = (salePrice * royalty.royaltyFraction) / _feeDenominator();\n\n        return (royalty.receiver, royaltyAmount);\n    }\n\n    /**\n     * @dev The denominator with which to interpret the fee set in {_setTokenRoyalty} and {_setDefaultRoyalty} as a\n     * fraction of the sale price. Defaults to 10000 so fees are expressed in basis points, but may be customized by an\n     * override.\n     */\n    function _feeDenominator() internal pure virtual returns (uint96) {\n        return 10000;\n    }\n\n    /**\n     * @dev Sets the royalty information that all ids in this contract will default to.\n     *\n     * Requirements:\n     *\n     * - `receiver` cannot be the zero address.\n     * - `feeNumerator` cannot be greater than the fee denominator.\n     */\n    function _setDefaultRoyalty(address receiver, uint96 feeNumerator) internal virtual {\n        require(feeNumerator <= _feeDenominator(), \"ERC2981: royalty fee will exceed salePrice\");\n        require(receiver != address(0), \"ERC2981: invalid receiver\");\n\n        _defaultRoyaltyInfo = RoyaltyInfo(receiver, feeNumerator);\n    }\n\n    /**\n     * @dev Removes default royalty information.\n     */\n    function _deleteDefaultRoyalty() internal virtual {\n        delete _defaultRoyaltyInfo;\n    }\n\n    /**\n     * @dev Sets the royalty information for a specific token id, overriding the global default.\n     *\n     * Requirements:\n     *\n     * - `receiver` cannot be the zero address.\n     * - `feeNumerator` cannot be greater than the fee denominator.\n     */\n    function _setTokenRoyalty(uint256 tokenId, address receiver, uint96 feeNumerator) internal virtual {\n        require(feeNumerator <= _feeDenominator(), \"ERC2981: royalty fee will exceed salePrice\");\n        require(receiver != address(0), \"ERC2981: Invalid parameters\");\n\n        _tokenRoyaltyInfo[tokenId] = RoyaltyInfo(receiver, feeNumerator);\n    }\n\n    /**\n     * @dev Resets royalty information for the token id back to the global default.\n     */\n    function _resetTokenRoyalty(uint256 tokenId) internal virtual {\n        delete _tokenRoyaltyInfo[tokenId];\n    }\n}\n"},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/IERC1155.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC1155 compliant contract, as defined in the\n * https://eips.ethereum.org/EIPS/eip-1155[EIP].\n *\n * _Available since v3.1._\n */\ninterface IERC1155 is IERC165 {\n    /**\n     * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.\n     */\n    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);\n\n    /**\n     * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n     * transfers.\n     */\n    event TransferBatch(\n        address indexed operator,\n        address indexed from,\n        address indexed to,\n        uint256[] ids,\n        uint256[] values\n    );\n\n    /**\n     * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n     * `approved`.\n     */\n    event ApprovalForAll(address indexed account, address indexed operator, bool approved);\n\n    /**\n     * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n     *\n     * If an {URI} event was emitted for `id`, the standard\n     * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n     * returned by {IERC1155MetadataURI-uri}.\n     */\n    event URI(string value, uint256 indexed id);\n\n    /**\n     * @dev Returns the amount of tokens of token type `id` owned by `account`.\n     *\n     * Requirements:\n     *\n     * - `account` cannot be the zero address.\n     */\n    function balanceOf(address account, uint256 id) external view returns (uint256);\n\n    /**\n     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n     *\n     * Requirements:\n     *\n     * - `accounts` and `ids` must have the same length.\n     */\n    function balanceOfBatch(\n        address[] calldata accounts,\n        uint256[] calldata ids\n    ) external view returns (uint256[] memory);\n\n    /**\n     * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n     *\n     * Emits an {ApprovalForAll} event.\n     *\n     * Requirements:\n     *\n     * - `operator` cannot be the caller.\n     */\n    function setApprovalForAll(address operator, bool approved) external;\n\n    /**\n     * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n     *\n     * See {setApprovalForAll}.\n     */\n    function isApprovedForAll(address account, address operator) external view returns (bool);\n\n    /**\n     * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.\n     *\n     * Emits a {TransferSingle} event.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n     * - `from` must have a balance of tokens of type `id` of at least `amount`.\n     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n     * acceptance magic value.\n     */\n    function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external;\n\n    /**\n     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n     *\n     * Emits a {TransferBatch} event.\n     *\n     * Requirements:\n     *\n     * - `ids` and `amounts` must have the same length.\n     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n     * acceptance magic value.\n     */\n    function safeBatchTransferFrom(\n        address from,\n        address to,\n        uint256[] calldata ids,\n        uint256[] calldata amounts,\n        bytes calldata data\n    ) external;\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.4) (token/ERC20/extensions/IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n *\n * ==== Security Considerations\n *\n * There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n * expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n * considered as an intention to spend the allowance in any specific way. The second is that because permits have\n * built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n * take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n * generally recommended is:\n *\n * ```solidity\n * function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n *     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n *     doThing(..., value);\n * }\n *\n * function doThing(..., uint256 value) public {\n *     token.safeTransferFrom(msg.sender, address(this), value);\n *     ...\n * }\n * ```\n *\n * Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n * `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n * {SafeERC20-safeTransferFrom}).\n *\n * Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n * contracts should have entry points that don't rely on permit.\n */\ninterface IERC20Permit {\n    /**\n     * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n     * given ``owner``'s signed approval.\n     *\n     * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n     * ordering also apply here.\n     *\n     * Emits an {Approval} event.\n     *\n     * Requirements:\n     *\n     * - `spender` cannot be the zero address.\n     * - `deadline` must be a timestamp in the future.\n     * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n     * over the EIP712-formatted function arguments.\n     * - the signature must use ``owner``'s current nonce (see {nonces}).\n     *\n     * For more information on the signature format, see the\n     * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n     * section].\n     *\n     * CAUTION: See Security Considerations above.\n     */\n    function permit(\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) external;\n\n    /**\n     * @dev Returns the current nonce for `owner`. This value must be\n     * included whenever a signature is generated for {permit}.\n     *\n     * Every successful call to {permit} increases ``owner``'s nonce by one. This\n     * prevents a signature from being used multiple times.\n     */\n    function nonces(address owner) external view returns (uint256);\n\n    /**\n     * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n    /**\n     * @dev Emitted when `value` tokens are moved from one account (`from`) to\n     * another (`to`).\n     *\n     * Note that `value` may be zero.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 value);\n\n    /**\n     * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n     * a call to {approve}. `value` is the new allowance.\n     */\n    event Approval(address indexed owner, address indexed spender, uint256 value);\n\n    /**\n     * @dev Returns the amount of tokens in existence.\n     */\n    function totalSupply() external view returns (uint256);\n\n    /**\n     * @dev Returns the amount of tokens owned by `account`.\n     */\n    function balanceOf(address account) external view returns (uint256);\n\n    /**\n     * @dev Moves `amount` tokens from the caller's account to `to`.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transfer(address to, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Returns the remaining number of tokens that `spender` will be\n     * allowed to spend on behalf of `owner` through {transferFrom}. This is\n     * zero by default.\n     *\n     * This value changes when {approve} or {transferFrom} are called.\n     */\n    function allowance(address owner, address spender) external view returns (uint256);\n\n    /**\n     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * IMPORTANT: Beware that changing an allowance with this method brings the risk\n     * that someone may use both the old and the new allowance by unfortunate\n     * transaction ordering. One possible solution to mitigate this race\n     * condition is to first reduce the spender's allowance to 0 and set the\n     * desired value afterwards:\n     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address spender, uint256 amount) external returns (bool);\n\n    /**\n     * @dev Moves `amount` tokens from `from` to `to` using the\n     * allowance mechanism. `amount` is then deducted from the caller's\n     * allowance.\n     *\n     * Returns a boolean value indicating whether the operation succeeded.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 amount) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.3) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n    using Address for address;\n\n    /**\n     * @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeTransfer(IERC20 token, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n    }\n\n    /**\n     * @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n     * calling contract. If `token` returns no value, non-reverting calls are assumed to be successful.\n     */\n    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\n        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n    }\n\n    /**\n     * @dev Deprecated. This function has issues similar to the ones found in\n     * {IERC20-approve}, and its usage is discouraged.\n     *\n     * Whenever possible, use {safeIncreaseAllowance} and\n     * {safeDecreaseAllowance} instead.\n     */\n    function safeApprove(IERC20 token, address spender, uint256 value) internal {\n        // safeApprove should only be called when setting an initial allowance,\n        // or when resetting it to zero. To increase and decrease it, use\n        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n        require(\n            (value == 0) || (token.allowance(address(this), spender) == 0),\n            \"SafeERC20: approve from non-zero to non-zero allowance\"\n        );\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n    }\n\n    /**\n     * @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n        uint256 oldAllowance = token.allowance(address(this), spender);\n        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance + value));\n    }\n\n    /**\n     * @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful.\n     */\n    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n        unchecked {\n            uint256 oldAllowance = token.allowance(address(this), spender);\n            require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, oldAllowance - value));\n        }\n    }\n\n    /**\n     * @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n     * non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n     * to be set to zero before setting it to a non-zero value, such as USDT.\n     */\n    function forceApprove(IERC20 token, address spender, uint256 value) internal {\n        bytes memory approvalCall = abi.encodeWithSelector(token.approve.selector, spender, value);\n\n        if (!_callOptionalReturnBool(token, approvalCall)) {\n            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, 0));\n            _callOptionalReturn(token, approvalCall);\n        }\n    }\n\n    /**\n     * @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n     * Revert on invalid signature.\n     */\n    function safePermit(\n        IERC20Permit token,\n        address owner,\n        address spender,\n        uint256 value,\n        uint256 deadline,\n        uint8 v,\n        bytes32 r,\n        bytes32 s\n    ) internal {\n        uint256 nonceBefore = token.nonces(owner);\n        token.permit(owner, spender, value, deadline, v, r, s);\n        uint256 nonceAfter = token.nonces(owner);\n        require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     */\n    function _callOptionalReturn(IERC20 token, bytes memory data) private {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that\n        // the target address contains contract code and also asserts for success in the low-level call.\n\n        bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n        require(returndata.length == 0 || abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n    }\n\n    /**\n     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n     * on the return value: the return value is optional (but if data is returned, it must not be false).\n     * @param token The token targeted by the call.\n     * @param data The call data (encoded using abi.encode or one of its variants).\n     *\n     * This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead.\n     */\n    function _callOptionalReturnBool(IERC20 token, bytes memory data) private returns (bool) {\n        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n        // we're implementing it ourselves. We cannot use {Address-functionCall} here since this should return false\n        // and not revert is the subcall reverts.\n\n        (bool success, bytes memory returndata) = address(token).call(data);\n        return\n            success && (returndata.length == 0 || abi.decode(returndata, (bool))) && Address.isContract(address(token));\n    }\n}\n"},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721.sol\";\nimport \"./IERC721Receiver.sol\";\nimport \"./extensions/IERC721Metadata.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/Context.sol\";\nimport \"../../utils/Strings.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\n    using Address for address;\n    using Strings for uint256;\n\n    // Token name\n    string private _name;\n\n    // Token symbol\n    string private _symbol;\n\n    // Mapping from token ID to owner address\n    mapping(uint256 => address) private _owners;\n\n    // Mapping owner address to token count\n    mapping(address => uint256) private _balances;\n\n    // Mapping from token ID to approved address\n    mapping(uint256 => address) private _tokenApprovals;\n\n    // Mapping from owner to operator approvals\n    mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n    /**\n     * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n     */\n    constructor(string memory name_, string memory symbol_) {\n        _name = name_;\n        _symbol = symbol_;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n        return\n            interfaceId == type(IERC721).interfaceId ||\n            interfaceId == type(IERC721Metadata).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }\n\n    /**\n     * @dev See {IERC721-balanceOf}.\n     */\n    function balanceOf(address owner) public view virtual override returns (uint256) {\n        require(owner != address(0), \"ERC721: address zero is not a valid owner\");\n        return _balances[owner];\n    }\n\n    /**\n     * @dev See {IERC721-ownerOf}.\n     */\n    function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n        address owner = _ownerOf(tokenId);\n        require(owner != address(0), \"ERC721: invalid token ID\");\n        return owner;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-name}.\n     */\n    function name() public view virtual override returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-symbol}.\n     */\n    function symbol() public view virtual override returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev See {IERC721Metadata-tokenURI}.\n     */\n    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n        _requireMinted(tokenId);\n\n        string memory baseURI = _baseURI();\n        return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \"\";\n    }\n\n    /**\n     * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n     * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n     * by default, can be overridden in child contracts.\n     */\n    function _baseURI() internal view virtual returns (string memory) {\n        return \"\";\n    }\n\n    /**\n     * @dev See {IERC721-approve}.\n     */\n    function approve(address to, uint256 tokenId) public virtual override {\n        address owner = ERC721.ownerOf(tokenId);\n        require(to != owner, \"ERC721: approval to current owner\");\n\n        require(\n            _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\n            \"ERC721: approve caller is not token owner or approved for all\"\n        );\n\n        _approve(to, tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-getApproved}.\n     */\n    function getApproved(uint256 tokenId) public view virtual override returns (address) {\n        _requireMinted(tokenId);\n\n        return _tokenApprovals[tokenId];\n    }\n\n    /**\n     * @dev See {IERC721-setApprovalForAll}.\n     */\n    function setApprovalForAll(address operator, bool approved) public virtual override {\n        _setApprovalForAll(_msgSender(), operator, approved);\n    }\n\n    /**\n     * @dev See {IERC721-isApprovedForAll}.\n     */\n    function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n        return _operatorApprovals[owner][operator];\n    }\n\n    /**\n     * @dev See {IERC721-transferFrom}.\n     */\n    function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n        //solhint-disable-next-line max-line-length\n        require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner or approved\");\n\n        _transfer(from, to, tokenId);\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n        safeTransferFrom(from, to, tokenId, \"\");\n    }\n\n    /**\n     * @dev See {IERC721-safeTransferFrom}.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public virtual override {\n        require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner or approved\");\n        _safeTransfer(from, to, tokenId, data);\n    }\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n     *\n     * `data` is additional data, it has no specified format and it is sent in call to `to`.\n     *\n     * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n     * implement alternative mechanisms to perform token transfer, such as signature-based.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeTransfer(address from, address to, uint256 tokenId, bytes memory data) internal virtual {\n        _transfer(from, to, tokenId);\n        require(_checkOnERC721Received(from, to, tokenId, data), \"ERC721: transfer to non ERC721Receiver implementer\");\n    }\n\n    /**\n     * @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist\n     */\n    function _ownerOf(uint256 tokenId) internal view virtual returns (address) {\n        return _owners[tokenId];\n    }\n\n    /**\n     * @dev Returns whether `tokenId` exists.\n     *\n     * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n     *\n     * Tokens start existing when they are minted (`_mint`),\n     * and stop existing when they are burned (`_burn`).\n     */\n    function _exists(uint256 tokenId) internal view virtual returns (bool) {\n        return _ownerOf(tokenId) != address(0);\n    }\n\n    /**\n     * @dev Returns whether `spender` is allowed to manage `tokenId`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n        address owner = ERC721.ownerOf(tokenId);\n        return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\n    }\n\n    /**\n     * @dev Safely mints `tokenId` and transfers it to `to`.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _safeMint(address to, uint256 tokenId) internal virtual {\n        _safeMint(to, tokenId, \"\");\n    }\n\n    /**\n     * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n     * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n     */\n    function _safeMint(address to, uint256 tokenId, bytes memory data) internal virtual {\n        _mint(to, tokenId);\n        require(\n            _checkOnERC721Received(address(0), to, tokenId, data),\n            \"ERC721: transfer to non ERC721Receiver implementer\"\n        );\n    }\n\n    /**\n     * @dev Mints `tokenId` and transfers it to `to`.\n     *\n     * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n     *\n     * Requirements:\n     *\n     * - `tokenId` must not exist.\n     * - `to` cannot be the zero address.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _mint(address to, uint256 tokenId) internal virtual {\n        require(to != address(0), \"ERC721: mint to the zero address\");\n        require(!_exists(tokenId), \"ERC721: token already minted\");\n\n        _beforeTokenTransfer(address(0), to, tokenId, 1);\n\n        // Check that tokenId was not minted by `_beforeTokenTransfer` hook\n        require(!_exists(tokenId), \"ERC721: token already minted\");\n\n        unchecked {\n            // Will not overflow unless all 2**256 token ids are minted to the same owner.\n            // Given that tokens are minted one by one, it is impossible in practice that\n            // this ever happens. Might change if we allow batch minting.\n            // The ERC fails to describe this case.\n            _balances[to] += 1;\n        }\n\n        _owners[tokenId] = to;\n\n        emit Transfer(address(0), to, tokenId);\n\n        _afterTokenTransfer(address(0), to, tokenId, 1);\n    }\n\n    /**\n     * @dev Destroys `tokenId`.\n     * The approval is cleared when the token is burned.\n     * This is an internal function that does not check if the sender is authorized to operate on the token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _burn(uint256 tokenId) internal virtual {\n        address owner = ERC721.ownerOf(tokenId);\n\n        _beforeTokenTransfer(owner, address(0), tokenId, 1);\n\n        // Update ownership in case tokenId was transferred by `_beforeTokenTransfer` hook\n        owner = ERC721.ownerOf(tokenId);\n\n        // Clear approvals\n        delete _tokenApprovals[tokenId];\n\n        unchecked {\n            // Cannot overflow, as that would require more tokens to be burned/transferred\n            // out than the owner initially received through minting and transferring in.\n            _balances[owner] -= 1;\n        }\n        delete _owners[tokenId];\n\n        emit Transfer(owner, address(0), tokenId);\n\n        _afterTokenTransfer(owner, address(0), tokenId, 1);\n    }\n\n    /**\n     * @dev Transfers `tokenId` from `from` to `to`.\n     *  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n     *\n     * Requirements:\n     *\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     *\n     * Emits a {Transfer} event.\n     */\n    function _transfer(address from, address to, uint256 tokenId) internal virtual {\n        require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n        require(to != address(0), \"ERC721: transfer to the zero address\");\n\n        _beforeTokenTransfer(from, to, tokenId, 1);\n\n        // Check that tokenId was not transferred by `_beforeTokenTransfer` hook\n        require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n\n        // Clear approvals from the previous owner\n        delete _tokenApprovals[tokenId];\n\n        unchecked {\n            // `_balances[from]` cannot overflow for the same reason as described in `_burn`:\n            // `from`'s balance is the number of token held, which is at least one before the current\n            // transfer.\n            // `_balances[to]` could overflow in the conditions described in `_mint`. That would require\n            // all 2**256 token ids to be minted, which in practice is impossible.\n            _balances[from] -= 1;\n            _balances[to] += 1;\n        }\n        _owners[tokenId] = to;\n\n        emit Transfer(from, to, tokenId);\n\n        _afterTokenTransfer(from, to, tokenId, 1);\n    }\n\n    /**\n     * @dev Approve `to` to operate on `tokenId`\n     *\n     * Emits an {Approval} event.\n     */\n    function _approve(address to, uint256 tokenId) internal virtual {\n        _tokenApprovals[tokenId] = to;\n        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\n    }\n\n    /**\n     * @dev Approve `operator` to operate on all of `owner` tokens\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n        require(owner != operator, \"ERC721: approve to caller\");\n        _operatorApprovals[owner][operator] = approved;\n        emit ApprovalForAll(owner, operator, approved);\n    }\n\n    /**\n     * @dev Reverts if the `tokenId` has not been minted yet.\n     */\n    function _requireMinted(uint256 tokenId) internal view virtual {\n        require(_exists(tokenId), \"ERC721: invalid token ID\");\n    }\n\n    /**\n     * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n     * The call is not executed if the target address is not a contract.\n     *\n     * @param from address representing the previous owner of the given token ID\n     * @param to target address that will receive the tokens\n     * @param tokenId uint256 ID of the token to be transferred\n     * @param data bytes optional data to send along with the call\n     * @return bool whether the call correctly returned the expected magic value\n     */\n    function _checkOnERC721Received(\n        address from,\n        address to,\n        uint256 tokenId,\n        bytes memory data\n    ) private returns (bool) {\n        if (to.isContract()) {\n            try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n                return retval == IERC721Receiver.onERC721Received.selector;\n            } catch (bytes memory reason) {\n                if (reason.length == 0) {\n                    revert(\"ERC721: transfer to non ERC721Receiver implementer\");\n                } else {\n                    /// @solidity memory-safe-assembly\n                    assembly {\n                        revert(add(32, reason), mload(reason))\n                    }\n                }\n            }\n        } else {\n            return true;\n        }\n    }\n\n    /**\n     * @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n     * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n     *\n     * Calling conditions:\n     *\n     * - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`.\n     * - When `from` is zero, the tokens will be minted for `to`.\n     * - When `to` is zero, ``from``'s tokens will be burned.\n     * - `from` and `to` are never both zero.\n     * - `batchSize` is non-zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _beforeTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\n\n    /**\n     * @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n     * used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n     *\n     * Calling conditions:\n     *\n     * - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`.\n     * - When `from` is zero, the tokens were minted for `to`.\n     * - When `to` is zero, ``from``'s tokens were burned.\n     * - `from` and `to` are never both zero.\n     * - `batchSize` is non-zero.\n     *\n     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n     */\n    function _afterTokenTransfer(address from, address to, uint256 firstTokenId, uint256 batchSize) internal virtual {}\n\n    /**\n     * @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n     *\n     * WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\n     * being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such\n     * that `ownerOf(tokenId)` is `a`.\n     */\n    // solhint-disable-next-line func-name-mixedcase\n    function __unsafe_increaseBalance(address account, uint256 amount) internal {\n        _balances[account] += amount;\n    }\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n    /**\n     * @dev Returns the token collection name.\n     */\n    function name() external view returns (string memory);\n\n    /**\n     * @dev Returns the token collection symbol.\n     */\n    function symbol() external view returns (string memory);\n\n    /**\n     * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n     */\n    function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n    /**\n     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n     */\n    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n     */\n    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n    /**\n     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n     */\n    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n    /**\n     * @dev Returns the number of tokens in ``owner``'s account.\n     */\n    function balanceOf(address owner) external view returns (uint256 balance);\n\n    /**\n     * @dev Returns the owner of the `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function ownerOf(uint256 tokenId) external view returns (address owner);\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n\n    /**\n     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n     * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must exist and be owned by `from`.\n     * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n     *\n     * Emits a {Transfer} event.\n     */\n    function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n    /**\n     * @dev Transfers `tokenId` token from `from` to `to`.\n     *\n     * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n     * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n     * understand this adds an external call which potentially creates a reentrancy vulnerability.\n     *\n     * Requirements:\n     *\n     * - `from` cannot be the zero address.\n     * - `to` cannot be the zero address.\n     * - `tokenId` token must be owned by `from`.\n     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n     *\n     * Emits a {Transfer} event.\n     */\n    function transferFrom(address from, address to, uint256 tokenId) external;\n\n    /**\n     * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n     * The approval is cleared when the token is transferred.\n     *\n     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n     *\n     * Requirements:\n     *\n     * - The caller must own the token or be an approved operator.\n     * - `tokenId` must exist.\n     *\n     * Emits an {Approval} event.\n     */\n    function approve(address to, uint256 tokenId) external;\n\n    /**\n     * @dev Approve or remove `operator` as an operator for the caller.\n     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n     *\n     * Requirements:\n     *\n     * - The `operator` cannot be the caller.\n     *\n     * Emits an {ApprovalForAll} event.\n     */\n    function setApprovalForAll(address operator, bool approved) external;\n\n    /**\n     * @dev Returns the account approved for `tokenId` token.\n     *\n     * Requirements:\n     *\n     * - `tokenId` must exist.\n     */\n    function getApproved(uint256 tokenId) external view returns (address operator);\n\n    /**\n     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n     *\n     * See {setApprovalForAll}\n     */\n    function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n    /**\n     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n     * by `operator` from `from`, this function is called.\n     *\n     * It must return its Solidity selector to confirm the token transfer.\n     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n     *\n     * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n     */\n    function onERC721Received(\n        address operator,\n        address from,\n        uint256 tokenId,\n        bytes calldata data\n    ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following\n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     *\n     * Furthermore, `isContract` will also return true if the target contract within\n     * the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n     * which only has an effect at the end of a transaction.\n     * ====\n     *\n     * [IMPORTANT]\n     * ====\n     * You shouldn't rely on `isContract` to protect against flash loan attacks!\n     *\n     * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n     * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n     * constructor.\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // This method relies on extcodesize/address.code.length, which returns 0\n        // for contracts in construction, since the code is only stored at the end\n        // of the constructor execution.\n\n        return account.code.length > 0;\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        (bool success, ) = recipient.call{value: amount}(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n\n    /**\n     * @dev Performs a Solidity function call using a low level `call`. A\n     * plain `call` is an unsafe replacement for a function call: use this\n     * function instead.\n     *\n     * If `target` reverts with a revert reason, it is bubbled up by this\n     * function (like regular Solidity function calls).\n     *\n     * Returns the raw returned data. To convert to the expected return value,\n     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n     *\n     * Requirements:\n     *\n     * - `target` must be a contract.\n     * - calling `target` with `data` must not revert.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, \"Address: low-level call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n     * `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, 0, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but also transferring `value` wei to `target`.\n     *\n     * Requirements:\n     *\n     * - the calling contract must have an ETH balance of at least `value`.\n     * - the called Solidity function must be `payable`.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n        return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n     * with `errorMessage` as a fallback revert reason when `target` reverts.\n     *\n     * _Available since v3.1._\n     */\n    function functionCallWithValue(\n        address target,\n        bytes memory data,\n        uint256 value,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        require(address(this).balance >= value, \"Address: insufficient balance for call\");\n        (bool success, bytes memory returndata) = target.call{value: value}(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n        return functionStaticCall(target, data, \"Address: low-level static call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a static call.\n     *\n     * _Available since v3.3._\n     */\n    function functionStaticCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.staticcall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n        return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n    }\n\n    /**\n     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n     * but performing a delegate call.\n     *\n     * _Available since v3.4._\n     */\n    function functionDelegateCall(\n        address target,\n        bytes memory data,\n        string memory errorMessage\n    ) internal returns (bytes memory) {\n        (bool success, bytes memory returndata) = target.delegatecall(data);\n        return verifyCallResultFromTarget(target, success, returndata, errorMessage);\n    }\n\n    /**\n     * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n     * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n     *\n     * _Available since v4.8._\n     */\n    function verifyCallResultFromTarget(\n        address target,\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal view returns (bytes memory) {\n        if (success) {\n            if (returndata.length == 0) {\n                // only check isContract if the call was successful and the return data is empty\n                // otherwise we already know that it was a contract\n                require(isContract(target), \"Address: call to non-contract\");\n            }\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    /**\n     * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n     * revert reason or using the provided one.\n     *\n     * _Available since v4.3._\n     */\n    function verifyCallResult(\n        bool success,\n        bytes memory returndata,\n        string memory errorMessage\n    ) internal pure returns (bytes memory) {\n        if (success) {\n            return returndata;\n        } else {\n            _revert(returndata, errorMessage);\n        }\n    }\n\n    function _revert(bytes memory returndata, string memory errorMessage) private pure {\n        // Look for revert reason and bubble it up if present\n        if (returndata.length > 0) {\n            // The easiest way to bubble the revert reason is using memory via assembly\n            /// @solidity memory-safe-assembly\n            assembly {\n                let returndata_size := mload(returndata)\n                revert(add(32, returndata), returndata_size)\n            }\n        } else {\n            revert(errorMessage);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.4) (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n    function _msgSender() internal view virtual returns (address) {\n        return msg.sender;\n    }\n\n    function _msgData() internal view virtual returns (bytes calldata) {\n        return msg.data;\n    }\n\n    function _contextSuffixLength() internal view virtual returns (uint256) {\n        return 0;\n    }\n}\n"},"@openzeppelin/contracts/utils/Counters.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title Counters\n * @author Matt Condon (@shrugs)\n * @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n * of elements in a mapping, issuing ERC721 ids, or counting request ids.\n *\n * Include with `using Counters for Counters.Counter;`\n */\nlibrary Counters {\n    struct Counter {\n        // This variable should never be directly accessed by users of the library: interactions must be restricted to\n        // the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add\n        // this feature: see https://github.com/ethereum/solidity/issues/4637\n        uint256 _value; // default: 0\n    }\n\n    function current(Counter storage counter) internal view returns (uint256) {\n        return counter._value;\n    }\n\n    function increment(Counter storage counter) internal {\n        unchecked {\n            counter._value += 1;\n        }\n    }\n\n    function decrement(Counter storage counter) internal {\n        uint256 value = counter._value;\n        require(value > 0, \"Counter: decrement overflow\");\n        unchecked {\n            counter._value = value - 1;\n        }\n    }\n\n    function reset(Counter storage counter) internal {\n        counter._value = 0;\n    }\n}\n"},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Strings.sol\";\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n    enum RecoverError {\n        NoError,\n        InvalidSignature,\n        InvalidSignatureLength,\n        InvalidSignatureS,\n        InvalidSignatureV // Deprecated in v4.8\n    }\n\n    function _throwError(RecoverError error) private pure {\n        if (error == RecoverError.NoError) {\n            return; // no error: do nothing\n        } else if (error == RecoverError.InvalidSignature) {\n            revert(\"ECDSA: invalid signature\");\n        } else if (error == RecoverError.InvalidSignatureLength) {\n            revert(\"ECDSA: invalid signature length\");\n        } else if (error == RecoverError.InvalidSignatureS) {\n            revert(\"ECDSA: invalid signature 's' value\");\n        }\n    }\n\n    /**\n     * @dev Returns the address that signed a hashed message (`hash`) with\n     * `signature` or error string. This address can then be used for verification purposes.\n     *\n     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n     * this function rejects them by requiring the `s` value to be in the lower\n     * half order, and the `v` value to be either 27 or 28.\n     *\n     * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n     * verification to be secure: it is possible to craft signatures that\n     * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n     * this is by receiving a hash of the original message (which may otherwise\n     * be too long), and then calling {toEthSignedMessageHash} on it.\n     *\n     * Documentation for signature generation:\n     * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n     * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) {\n        if (signature.length == 65) {\n            bytes32 r;\n            bytes32 s;\n            uint8 v;\n            // ecrecover takes the signature parameters, and the only way to get them\n            // currently is to use assembly.\n            /// @solidity memory-safe-assembly\n            assembly {\n                r := mload(add(signature, 0x20))\n                s := mload(add(signature, 0x40))\n                v := byte(0, mload(add(signature, 0x60)))\n            }\n            return tryRecover(hash, v, r, s);\n        } else {\n            return (address(0), RecoverError.InvalidSignatureLength);\n        }\n    }\n\n    /**\n     * @dev Returns the address that signed a hashed message (`hash`) with\n     * `signature`. This address can then be used for verification purposes.\n     *\n     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n     * this function rejects them by requiring the `s` value to be in the lower\n     * half order, and the `v` value to be either 27 or 28.\n     *\n     * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n     * verification to be secure: it is possible to craft signatures that\n     * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n     * this is by receiving a hash of the original message (which may otherwise\n     * be too long), and then calling {toEthSignedMessageHash} on it.\n     */\n    function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, signature);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n     *\n     * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError) {\n        bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n        uint8 v = uint8((uint256(vs) >> 255) + 27);\n        return tryRecover(hash, v, r, s);\n    }\n\n    /**\n     * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n     *\n     * _Available since v4.2._\n     */\n    function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, r, vs);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n     * `r` and `s` signature fields separately.\n     *\n     * _Available since v4.3._\n     */\n    function tryRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address, RecoverError) {\n        // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n        // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n        // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n        // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n        //\n        // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n        // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n        // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n        // these malleable signatures as well.\n        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n            return (address(0), RecoverError.InvalidSignatureS);\n        }\n\n        // If the signature is valid (and not malleable), return the signer address\n        address signer = ecrecover(hash, v, r, s);\n        if (signer == address(0)) {\n            return (address(0), RecoverError.InvalidSignature);\n        }\n\n        return (signer, RecoverError.NoError);\n    }\n\n    /**\n     * @dev Overload of {ECDSA-recover} that receives the `v`,\n     * `r` and `s` signature fields separately.\n     */\n    function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n        (address recovered, RecoverError error) = tryRecover(hash, v, r, s);\n        _throwError(error);\n        return recovered;\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Message, created from a `hash`. This\n     * produces hash corresponding to the one signed with the\n     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n     * JSON-RPC method as part of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32 message) {\n        // 32 is the length in bytes of hash,\n        // enforced by the type signature above\n        /// @solidity memory-safe-assembly\n        assembly {\n            mstore(0x00, \"\\x19Ethereum Signed Message:\\n32\")\n            mstore(0x1c, hash)\n            message := keccak256(0x00, 0x3c)\n        }\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Message, created from `s`. This\n     * produces hash corresponding to the one signed with the\n     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n     * JSON-RPC method as part of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) {\n        return keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n\", Strings.toString(s.length), s));\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Typed Data, created from a\n     * `domainSeparator` and a `structHash`. This produces hash corresponding\n     * to the one signed with the\n     * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n     * JSON-RPC method as part of EIP-712.\n     *\n     * See {recover}.\n     */\n    function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 data) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            let ptr := mload(0x40)\n            mstore(ptr, \"\\x19\\x01\")\n            mstore(add(ptr, 0x02), domainSeparator)\n            mstore(add(ptr, 0x22), structHash)\n            data := keccak256(ptr, 0x42)\n        }\n    }\n\n    /**\n     * @dev Returns an Ethereum Signed Data with intended validator, created from a\n     * `validator` and `data` according to the version 0 of EIP-191.\n     *\n     * See {recover}.\n     */\n    function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) {\n        return keccak256(abi.encodePacked(\"\\x19\\x00\", validator, data));\n    }\n}\n"},"@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/EIP712.sol)\n\npragma solidity ^0.8.8;\n\nimport \"./ECDSA.sol\";\nimport \"../ShortStrings.sol\";\nimport \"../../interfaces/IERC5267.sol\";\n\n/**\n * @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n *\n * The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n * thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n * they need in their contracts using a combination of `abi.encode` and `keccak256`.\n *\n * This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n * ({_hashTypedDataV4}).\n *\n * The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n * the chain id to protect against replay attacks on an eventual fork of the chain.\n *\n * NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n *\n * NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain\n * separator of the implementation contract. This will cause the `_domainSeparatorV4` function to always rebuild the\n * separator from the immutable values, which is cheaper than accessing a cached version in cold storage.\n *\n * _Available since v3.4._\n *\n * @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment\n */\nabstract contract EIP712 is IERC5267 {\n    using ShortStrings for *;\n\n    bytes32 private constant _TYPE_HASH =\n        keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\");\n\n    // Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to\n    // invalidate the cached domain separator if the chain id changes.\n    bytes32 private immutable _cachedDomainSeparator;\n    uint256 private immutable _cachedChainId;\n    address private immutable _cachedThis;\n\n    bytes32 private immutable _hashedName;\n    bytes32 private immutable _hashedVersion;\n\n    ShortString private immutable _name;\n    ShortString private immutable _version;\n    string private _nameFallback;\n    string private _versionFallback;\n\n    /**\n     * @dev Initializes the domain separator and parameter caches.\n     *\n     * The meaning of `name` and `version` is specified in\n     * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n     *\n     * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n     * - `version`: the current major version of the signing domain.\n     *\n     * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n     * contract upgrade].\n     */\n    constructor(string memory name, string memory version) {\n        _name = name.toShortStringWithFallback(_nameFallback);\n        _version = version.toShortStringWithFallback(_versionFallback);\n        _hashedName = keccak256(bytes(name));\n        _hashedVersion = keccak256(bytes(version));\n\n        _cachedChainId = block.chainid;\n        _cachedDomainSeparator = _buildDomainSeparator();\n        _cachedThis = address(this);\n    }\n\n    /**\n     * @dev Returns the domain separator for the current chain.\n     */\n    function _domainSeparatorV4() internal view returns (bytes32) {\n        if (address(this) == _cachedThis && block.chainid == _cachedChainId) {\n            return _cachedDomainSeparator;\n        } else {\n            return _buildDomainSeparator();\n        }\n    }\n\n    function _buildDomainSeparator() private view returns (bytes32) {\n        return keccak256(abi.encode(_TYPE_HASH, _hashedName, _hashedVersion, block.chainid, address(this)));\n    }\n\n    /**\n     * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n     * function returns the hash of the fully encoded EIP712 message for this domain.\n     *\n     * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n     *\n     * ```solidity\n     * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n     *     keccak256(\"Mail(address to,string contents)\"),\n     *     mailTo,\n     *     keccak256(bytes(mailContents))\n     * )));\n     * address signer = ECDSA.recover(digest, signature);\n     * ```\n     */\n    function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) {\n        return ECDSA.toTypedDataHash(_domainSeparatorV4(), structHash);\n    }\n\n    /**\n     * @dev See {EIP-5267}.\n     *\n     * _Available since v4.9._\n     */\n    function eip712Domain()\n        public\n        view\n        virtual\n        override\n        returns (\n            bytes1 fields,\n            string memory name,\n            string memory version,\n            uint256 chainId,\n            address verifyingContract,\n            bytes32 salt,\n            uint256[] memory extensions\n        )\n    {\n        return (\n            hex\"0f\", // 01111\n            _name.toStringWithFallback(_nameFallback),\n            _version.toStringWithFallback(_versionFallback),\n            block.chainid,\n            address(this),\n            bytes32(0),\n            new uint256[](0)\n        );\n    }\n}\n"},"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/SignatureChecker.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./ECDSA.sol\";\nimport \"../../interfaces/IERC1271.sol\";\n\n/**\n * @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA\n * signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like\n * Argent and Gnosis Safe.\n *\n * _Available since v4.1._\n */\nlibrary SignatureChecker {\n    /**\n     * @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the\n     * signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`.\n     *\n     * NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus\n     * change through time. It could return true at block N and false at block N+1 (or the opposite).\n     */\n    function isValidSignatureNow(address signer, bytes32 hash, bytes memory signature) internal view returns (bool) {\n        (address recovered, ECDSA.RecoverError error) = ECDSA.tryRecover(hash, signature);\n        return\n            (error == ECDSA.RecoverError.NoError && recovered == signer) ||\n            isValidERC1271SignatureNow(signer, hash, signature);\n    }\n\n    /**\n     * @dev Checks if a signature is valid for a given signer and data hash. The signature is validated\n     * against the signer smart contract using ERC1271.\n     *\n     * NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus\n     * change through time. It could return true at block N and false at block N+1 (or the opposite).\n     */\n    function isValidERC1271SignatureNow(\n        address signer,\n        bytes32 hash,\n        bytes memory signature\n    ) internal view returns (bool) {\n        (bool success, bytes memory result) = signer.staticcall(\n            abi.encodeWithSelector(IERC1271.isValidSignature.selector, hash, signature)\n        );\n        return (success &&\n            result.length >= 32 &&\n            abi.decode(result, (bytes32)) == bytes32(IERC1271.isValidSignature.selector));\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n *     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n        return interfaceId == type(IERC165).interfaceId;\n    }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n    /**\n     * @dev Returns true if this contract implements the interface defined by\n     * `interfaceId`. See the corresponding\n     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n     * to learn more about how these ids are created.\n     *\n     * This function call must use less than 30 000 gas.\n     */\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n    enum Rounding {\n        Down, // Toward negative infinity\n        Up, // Toward infinity\n        Zero // Toward zero\n    }\n\n    /**\n     * @dev Returns the largest of two numbers.\n     */\n    function max(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two numbers.\n     */\n    function min(uint256 a, uint256 b) internal pure returns (uint256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two numbers. The result is rounded towards\n     * zero.\n     */\n    function average(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b) / 2 can overflow.\n        return (a & b) + (a ^ b) / 2;\n    }\n\n    /**\n     * @dev Returns the ceiling of the division of two numbers.\n     *\n     * This differs from standard division with `/` in that it rounds up instead\n     * of rounding down.\n     */\n    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n        // (a + b - 1) / b can overflow on addition, so we distribute.\n        return a == 0 ? 0 : (a - 1) / b + 1;\n    }\n\n    /**\n     * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n     * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n     * with further edits by Uniswap Labs also under MIT license.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n        unchecked {\n            // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n            // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n            // variables such that product = prod1 * 2^256 + prod0.\n            uint256 prod0; // Least significant 256 bits of the product\n            uint256 prod1; // Most significant 256 bits of the product\n            assembly {\n                let mm := mulmod(x, y, not(0))\n                prod0 := mul(x, y)\n                prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n            }\n\n            // Handle non-overflow cases, 256 by 256 division.\n            if (prod1 == 0) {\n                // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n                // The surrounding unchecked block does not change this fact.\n                // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n                return prod0 / denominator;\n            }\n\n            // Make sure the result is less than 2^256. Also prevents denominator == 0.\n            require(denominator > prod1, \"Math: mulDiv overflow\");\n\n            ///////////////////////////////////////////////\n            // 512 by 256 division.\n            ///////////////////////////////////////////////\n\n            // Make division exact by subtracting the remainder from [prod1 prod0].\n            uint256 remainder;\n            assembly {\n                // Compute remainder using mulmod.\n                remainder := mulmod(x, y, denominator)\n\n                // Subtract 256 bit number from 512 bit number.\n                prod1 := sub(prod1, gt(remainder, prod0))\n                prod0 := sub(prod0, remainder)\n            }\n\n            // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.\n            // See https://cs.stackexchange.com/q/138556/92363.\n\n            // Does not overflow because the denominator cannot be zero at this stage in the function.\n            uint256 twos = denominator & (~denominator + 1);\n            assembly {\n                // Divide denominator by twos.\n                denominator := div(denominator, twos)\n\n                // Divide [prod1 prod0] by twos.\n                prod0 := div(prod0, twos)\n\n                // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n                twos := add(div(sub(0, twos), twos), 1)\n            }\n\n            // Shift in bits from prod1 into prod0.\n            prod0 |= prod1 * twos;\n\n            // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n            // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n            // four bits. That is, denominator * inv = 1 mod 2^4.\n            uint256 inverse = (3 * denominator) ^ 2;\n\n            // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works\n            // in modular arithmetic, doubling the correct bits in each step.\n            inverse *= 2 - denominator * inverse; // inverse mod 2^8\n            inverse *= 2 - denominator * inverse; // inverse mod 2^16\n            inverse *= 2 - denominator * inverse; // inverse mod 2^32\n            inverse *= 2 - denominator * inverse; // inverse mod 2^64\n            inverse *= 2 - denominator * inverse; // inverse mod 2^128\n            inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n            // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n            // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n            // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n            // is no longer required.\n            result = prod0 * inverse;\n            return result;\n        }\n    }\n\n    /**\n     * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n     */\n    function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n        uint256 result = mulDiv(x, y, denominator);\n        if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {\n            result += 1;\n        }\n        return result;\n    }\n\n    /**\n     * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n     *\n     * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n     */\n    function sqrt(uint256 a) internal pure returns (uint256) {\n        if (a == 0) {\n            return 0;\n        }\n\n        // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n        //\n        // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n        // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n        //\n        // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n        // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n        // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n        //\n        // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n        uint256 result = 1 << (log2(a) >> 1);\n\n        // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n        // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n        // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n        // into the expected uint128 result.\n        unchecked {\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            result = (result + a / result) >> 1;\n            return min(result, a / result);\n        }\n    }\n\n    /**\n     * @notice Calculates sqrt(a), following the selected rounding direction.\n     */\n    function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = sqrt(a);\n            return result + (rounding == Rounding.Up && result * result < a ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 2, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 128;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 64;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 32;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 16;\n            }\n            if (value >> 8 > 0) {\n                value >>= 8;\n                result += 8;\n            }\n            if (value >> 4 > 0) {\n                value >>= 4;\n                result += 4;\n            }\n            if (value >> 2 > 0) {\n                value >>= 2;\n                result += 2;\n            }\n            if (value >> 1 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log2(value);\n            return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 10, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >= 10 ** 64) {\n                value /= 10 ** 64;\n                result += 64;\n            }\n            if (value >= 10 ** 32) {\n                value /= 10 ** 32;\n                result += 32;\n            }\n            if (value >= 10 ** 16) {\n                value /= 10 ** 16;\n                result += 16;\n            }\n            if (value >= 10 ** 8) {\n                value /= 10 ** 8;\n                result += 8;\n            }\n            if (value >= 10 ** 4) {\n                value /= 10 ** 4;\n                result += 4;\n            }\n            if (value >= 10 ** 2) {\n                value /= 10 ** 2;\n                result += 2;\n            }\n            if (value >= 10 ** 1) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log10(value);\n            return result + (rounding == Rounding.Up && 10 ** result < value ? 1 : 0);\n        }\n    }\n\n    /**\n     * @dev Return the log in base 256, rounded down, of a positive value.\n     * Returns 0 if given 0.\n     *\n     * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n     */\n    function log256(uint256 value) internal pure returns (uint256) {\n        uint256 result = 0;\n        unchecked {\n            if (value >> 128 > 0) {\n                value >>= 128;\n                result += 16;\n            }\n            if (value >> 64 > 0) {\n                value >>= 64;\n                result += 8;\n            }\n            if (value >> 32 > 0) {\n                value >>= 32;\n                result += 4;\n            }\n            if (value >> 16 > 0) {\n                value >>= 16;\n                result += 2;\n            }\n            if (value >> 8 > 0) {\n                result += 1;\n            }\n        }\n        return result;\n    }\n\n    /**\n     * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n     * Returns 0 if given 0.\n     */\n    function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n        unchecked {\n            uint256 result = log256(value);\n            return result + (rounding == Rounding.Up && 1 << (result << 3) < value ? 1 : 0);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n    /**\n     * @dev Returns the largest of two signed numbers.\n     */\n    function max(int256 a, int256 b) internal pure returns (int256) {\n        return a > b ? a : b;\n    }\n\n    /**\n     * @dev Returns the smallest of two signed numbers.\n     */\n    function min(int256 a, int256 b) internal pure returns (int256) {\n        return a < b ? a : b;\n    }\n\n    /**\n     * @dev Returns the average of two signed numbers without overflow.\n     * The result is rounded towards zero.\n     */\n    function average(int256 a, int256 b) internal pure returns (int256) {\n        // Formula from the book \"Hacker's Delight\"\n        int256 x = (a & b) + ((a ^ b) >> 1);\n        return x + (int256(uint256(x) >> 255) & (a ^ b));\n    }\n\n    /**\n     * @dev Returns the absolute unsigned value of a signed value.\n     */\n    function abs(int256 n) internal pure returns (uint256) {\n        unchecked {\n            // must be unchecked in order to support `n = type(int256).min`\n            return uint256(n >= 0 ? n : -n);\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/ShortStrings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/ShortStrings.sol)\n\npragma solidity ^0.8.8;\n\nimport \"./StorageSlot.sol\";\n\n// | string  | 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA   |\n// | length  | 0x                                                              BB |\ntype ShortString is bytes32;\n\n/**\n * @dev This library provides functions to convert short memory strings\n * into a `ShortString` type that can be used as an immutable variable.\n *\n * Strings of arbitrary length can be optimized using this library if\n * they are short enough (up to 31 bytes) by packing them with their\n * length (1 byte) in a single EVM word (32 bytes). Additionally, a\n * fallback mechanism can be used for every other case.\n *\n * Usage example:\n *\n * ```solidity\n * contract Named {\n *     using ShortStrings for *;\n *\n *     ShortString private immutable _name;\n *     string private _nameFallback;\n *\n *     constructor(string memory contractName) {\n *         _name = contractName.toShortStringWithFallback(_nameFallback);\n *     }\n *\n *     function name() external view returns (string memory) {\n *         return _name.toStringWithFallback(_nameFallback);\n *     }\n * }\n * ```\n */\nlibrary ShortStrings {\n    // Used as an identifier for strings longer than 31 bytes.\n    bytes32 private constant _FALLBACK_SENTINEL = 0x00000000000000000000000000000000000000000000000000000000000000FF;\n\n    error StringTooLong(string str);\n    error InvalidShortString();\n\n    /**\n     * @dev Encode a string of at most 31 chars into a `ShortString`.\n     *\n     * This will trigger a `StringTooLong` error is the input string is too long.\n     */\n    function toShortString(string memory str) internal pure returns (ShortString) {\n        bytes memory bstr = bytes(str);\n        if (bstr.length > 31) {\n            revert StringTooLong(str);\n        }\n        return ShortString.wrap(bytes32(uint256(bytes32(bstr)) | bstr.length));\n    }\n\n    /**\n     * @dev Decode a `ShortString` back to a \"normal\" string.\n     */\n    function toString(ShortString sstr) internal pure returns (string memory) {\n        uint256 len = byteLength(sstr);\n        // using `new string(len)` would work locally but is not memory safe.\n        string memory str = new string(32);\n        /// @solidity memory-safe-assembly\n        assembly {\n            mstore(str, len)\n            mstore(add(str, 0x20), sstr)\n        }\n        return str;\n    }\n\n    /**\n     * @dev Return the length of a `ShortString`.\n     */\n    function byteLength(ShortString sstr) internal pure returns (uint256) {\n        uint256 result = uint256(ShortString.unwrap(sstr)) & 0xFF;\n        if (result > 31) {\n            revert InvalidShortString();\n        }\n        return result;\n    }\n\n    /**\n     * @dev Encode a string into a `ShortString`, or write it to storage if it is too long.\n     */\n    function toShortStringWithFallback(string memory value, string storage store) internal returns (ShortString) {\n        if (bytes(value).length < 32) {\n            return toShortString(value);\n        } else {\n            StorageSlot.getStringSlot(store).value = value;\n            return ShortString.wrap(_FALLBACK_SENTINEL);\n        }\n    }\n\n    /**\n     * @dev Decode a string that was encoded to `ShortString` or written to storage using {setWithFallback}.\n     */\n    function toStringWithFallback(ShortString value, string storage store) internal pure returns (string memory) {\n        if (ShortString.unwrap(value) != _FALLBACK_SENTINEL) {\n            return toString(value);\n        } else {\n            return store;\n        }\n    }\n\n    /**\n     * @dev Return the length of a string that was encoded to `ShortString` or written to storage using {setWithFallback}.\n     *\n     * WARNING: This will return the \"byte length\" of the string. This may not reflect the actual length in terms of\n     * actual characters as the UTF-8 encoding of a single character can span over multiple bytes.\n     */\n    function byteLengthWithFallback(ShortString value, string storage store) internal view returns (uint256) {\n        if (ShortString.unwrap(value) != _FALLBACK_SENTINEL) {\n            return byteLength(value);\n        } else {\n            return bytes(store).length;\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n *     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n *     function _getImplementation() internal view returns (address) {\n *         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n *     }\n *\n *     function _setImplementation(address newImplementation) internal {\n *         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n *         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n *     }\n * }\n * ```\n *\n * _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._\n * _Available since v4.9 for `string`, `bytes`._\n */\nlibrary StorageSlot {\n    struct AddressSlot {\n        address value;\n    }\n\n    struct BooleanSlot {\n        bool value;\n    }\n\n    struct Bytes32Slot {\n        bytes32 value;\n    }\n\n    struct Uint256Slot {\n        uint256 value;\n    }\n\n    struct StringSlot {\n        string value;\n    }\n\n    struct BytesSlot {\n        bytes value;\n    }\n\n    /**\n     * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n     */\n    function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n     */\n    function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n     */\n    function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n     */\n    function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `StringSlot` with member `value` located at `slot`.\n     */\n    function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n     */\n    function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := store.slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n     */\n    function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := slot\n        }\n    }\n\n    /**\n     * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n     */\n    function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n        /// @solidity memory-safe-assembly\n        assembly {\n            r.slot := store.slot\n        }\n    }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./math/Math.sol\";\nimport \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n    bytes16 private constant _SYMBOLS = \"0123456789abcdef\";\n    uint8 private constant _ADDRESS_LENGTH = 20;\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n     */\n    function toString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            uint256 length = Math.log10(value) + 1;\n            string memory buffer = new string(length);\n            uint256 ptr;\n            /// @solidity memory-safe-assembly\n            assembly {\n                ptr := add(buffer, add(32, length))\n            }\n            while (true) {\n                ptr--;\n                /// @solidity memory-safe-assembly\n                assembly {\n                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))\n                }\n                value /= 10;\n                if (value == 0) break;\n            }\n            return buffer;\n        }\n    }\n\n    /**\n     * @dev Converts a `int256` to its ASCII `string` decimal representation.\n     */\n    function toString(int256 value) internal pure returns (string memory) {\n        return string(abi.encodePacked(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value))));\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n     */\n    function toHexString(uint256 value) internal pure returns (string memory) {\n        unchecked {\n            return toHexString(value, Math.log256(value) + 1);\n        }\n    }\n\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n     */\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n        bytes memory buffer = new bytes(2 * length + 2);\n        buffer[0] = \"0\";\n        buffer[1] = \"x\";\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\n            buffer[i] = _SYMBOLS[value & 0xf];\n            value >>= 4;\n        }\n        require(value == 0, \"Strings: hex length insufficient\");\n        return string(buffer);\n    }\n\n    /**\n     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n     */\n    function toHexString(address addr) internal pure returns (string memory) {\n        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n    }\n\n    /**\n     * @dev Returns true if the two strings are equal.\n     */\n    function equal(string memory a, string memory b) internal pure returns (bool) {\n        return keccak256(bytes(a)) == keccak256(bytes(b));\n    }\n}\n"},"contracts/adapters/ERC1155Adapter.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity 0.8.23;\n\nimport \"../interfaces/IAdapter.sol\";\nimport \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\n\ncontract ERC1155Adapter is IAdapter {\n  /**\n   * @notice Indicates the ERC165 interfaceId supported by this adapter\n   */\n  bytes4 public constant interfaceId = 0xd9b67a26;\n\n  /**\n   * @notice Checks allowance on an ERC1155\n   * @param party Party params to check\n   * @dev Use call: \"msg.sender\" is Swap contract\n   */\n  function hasAllowance(Party calldata party) external view returns (bool) {\n    return\n      IERC1155(party.token).isApprovedForAll(party.wallet, address(msg.sender));\n  }\n\n  /**\n   * @notice Checks balance on an ERC1155\n   * @param party Party params to check\n   */\n  function hasBalance(Party calldata party) external view returns (bool) {\n    return\n      IERC1155(party.token).balanceOf(party.wallet, party.id) >= party.amount;\n  }\n\n  /**\n   * @notice Checks params for transfer\n   * @param party Party params to check\n   */\n  function hasValidParams(Party calldata party) external pure returns (bool) {\n    return (party.amount != 0);\n  }\n\n  /**\n   * @notice Function to wrap safeTransferFrom for ERC1155\n   * @param from address Wallet address to transfer from\n   * @param to address Wallet address to transfer to\n   * @param amount uint256 Amount for ERC-1155\n   * @param id uint256 token ID for ERC-1155\n   * @param token address Contract address of token\n   * @dev Use delegatecall: \"this\" is Swap contract\n   */\n  function transfer(\n    address from,\n    address to,\n    uint256 amount,\n    uint256 id,\n    address token\n  ) external {\n    if (amount == 0) revert AmountOrIDInvalid(\"amount\");\n    IERC1155(token).safeTransferFrom(from, to, id, amount, \"0x00\");\n  }\n}\n"},"contracts/adapters/ERC20Adapter.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity 0.8.23;\n\nimport \"../interfaces/IAdapter.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\n\ncontract ERC20Adapter is IAdapter {\n  using SafeERC20 for IERC20;\n  /**\n   * @notice Indicates the ERC165 interfaceId supported by this adapter\n   */\n  bytes4 public constant interfaceId = 0x36372b07;\n\n  /**\n   * @notice Checks allowance on an ERC20\n   * @param party Party params to check\n   * @dev Use call: \"msg.sender\" is Swap contract\n   */\n  function hasAllowance(Party calldata party) external view returns (bool) {\n    return\n      IERC20(party.token).allowance(party.wallet, address(msg.sender)) >=\n      party.amount;\n  }\n\n  /**\n   * @notice Checks balance on an ERC20\n   * @param party Party params to check\n   */\n  function hasBalance(Party calldata party) external view returns (bool) {\n    return IERC20(party.token).balanceOf(party.wallet) >= party.amount;\n  }\n\n  /**\n   * @notice Checks params for transfer\n   * @param party Party params to check\n   */\n  function hasValidParams(Party calldata party) external pure returns (bool) {\n    return (party.id == 0);\n  }\n\n  /**\n   * @notice Function to wrap safeTransferFrom for ERC20\n   * @param from address Wallet address to transfer from\n   * @param to address Wallet address to transfer to\n   * @param amount uint256 Amount for ERC20\n   * @param id uint256 ID, must be 0 for this contract\n   * @param token address Contract address of token\n   * @dev Use delegatecall: \"this\" is Swap contract\n   */\n  function transfer(\n    address from,\n    address to,\n    uint256 amount,\n    uint256 id,\n    address token\n  ) external {\n    if (id != 0) revert AmountOrIDInvalid(\"id\");\n    IERC20(token).safeTransferFrom(from, to, amount);\n  }\n}\n"},"contracts/adapters/ERC721Adapter.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity 0.8.23;\n\nimport \"../interfaces/IAdapter.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\ncontract ERC721Adapter is IAdapter {\n  /**\n   * @notice Indicates the ERC165 interfaceId supported by this adapter\n   */\n  bytes4 public constant interfaceId = 0x80ac58cd;\n\n  /**\n   * @notice Checks allowance on an ERC721\n   * @param party Party params to check\n   * @dev Use call: \"msg.sender\" is Swap contract\n   */\n  function hasAllowance(Party calldata party) external view returns (bool) {\n    return IERC721(party.token).getApproved(party.id) == address(msg.sender);\n  }\n\n  /**\n   * @notice Checks balance on an ERC721\n   * @param party Party params to check\n   */\n  function hasBalance(Party calldata party) external view returns (bool) {\n    return IERC721(party.token).ownerOf(party.id) == party.wallet;\n  }\n\n  /**\n   * @notice Checks params for transfer\n   * @param party Party params to check\n   */\n  function hasValidParams(Party calldata party) external pure returns (bool) {\n    return (party.amount == 0);\n  }\n\n  /**\n   * @notice Function to wrap safeTransferFrom for ERC721\n   * @param from address Wallet address to transfer from\n   * @param to address Wallet address to transfer to\n   * @param amount uint256, must be 0 for this contract\n   * @param id uint256 ID for ERC721\n   * @param token address Contract address of token\n   * @dev Use delegatecall: \"this\" is Swap contract\n   */\n  function transfer(\n    address from,\n    address to,\n    uint256 amount,\n    uint256 id,\n    address token\n  ) external {\n    if (amount != 0) revert AmountOrIDInvalid(\"amount\");\n    IERC721(token).safeTransferFrom(from, to, id);\n  }\n}\n"},"contracts/interfaces/IAdapter.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity 0.8.23;\n\nstruct Party {\n  address wallet; // Wallet address of the party\n  address token; // Contract address of the token\n  bytes4 kind; // Interface ID of the token\n  uint256 id; // ID for ERC-721 or ERC-1155\n  uint256 amount; // Amount for ERC-20 or ERC-1155\n}\n\n/**\n * @title IAdapter: Adapter for various token kinds\n */\ninterface IAdapter {\n  /**\n   * @notice Revert if provided an invalid transfer argument\n   */\n  error AmountOrIDInvalid(string);\n\n  /**\n   * @notice Return the ERC165 interfaceId this adapter supports\n   */\n  function interfaceId() external view returns (bytes4);\n\n  /**\n   * @notice Checks allowance on a token\n   * @param party Party params to check\n   */\n  function hasAllowance(Party calldata party) external view returns (bool);\n\n  /**\n   * @notice Checks balance on a token\n   * @param party Party params to check\n   */\n  function hasBalance(Party calldata party) external view returns (bool);\n\n  /**\n   * @notice Checks params for transfer\n   * @param party Party params to check\n   */\n  function hasValidParams(Party calldata party) external view returns (bool);\n\n  /**\n   * @notice Function to wrap token transfer for different token types\n   * @param from address Wallet address to transfer from\n   * @param to address Wallet address to transfer to\n   * @param amount uint256 Amount for ERC-20\n   * @param id token ID for ERC-721\n   * @param token address Contract address of token\n   */\n  function transfer(\n    address from,\n    address to,\n    uint256 amount,\n    uint256 id,\n    address token\n  ) external;\n}\n"},"contracts/interfaces/ISwap.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.23;\n\nimport \"./IAdapter.sol\";\n\ninterface ISwap {\n  struct Order {\n    uint256 nonce; // Unique number per signatory per order\n    uint256 expiry; // Expiry time (seconds since unix epoch)\n    Party signer; // Party to the swap that sets terms\n    Party sender; // Party to the swap that accepts terms\n    address affiliateWallet; // Party tipped for facilitating (optional)\n    uint256 affiliateAmount;\n    uint8 v; // ECDSA\n    bytes32 r;\n    bytes32 s;\n  }\n\n  event Swap(\n    uint256 indexed nonce,\n    address indexed signerWallet,\n    uint256 signerAmount,\n    uint256 signerId,\n    address signerToken,\n    address indexed senderWallet,\n    uint256 senderAmount,\n    uint256 senderId,\n    address senderToken,\n    address affiliateWallet,\n    uint256 affiliateAmount\n  );\n  event Cancel(uint256 indexed nonce, address indexed signerWallet);\n  event CancelUpTo(uint256 indexed nonce, address indexed signerWallet);\n  event SetProtocolFee(uint256 protocolFee);\n  event SetProtocolFeeWallet(address indexed feeWallet);\n  event Authorize(address indexed signer, address indexed signerWallet);\n  event Revoke(address indexed signer, address indexed signerWallet);\n\n  error AdaptersInvalid();\n  error FeeInvalid();\n  error FeeWalletInvalid();\n  error NonceAlreadyUsed(uint256);\n  error NonceTooLow();\n  error OrderExpired();\n  error SenderInvalid();\n  error SenderTokenInvalid();\n  error AffiliateAmountInvalid();\n  error SignatureInvalid();\n  error SignatoryInvalid();\n  error RoyaltyExceedsMax(uint256);\n  error TokenKindUnknown();\n  error TransferFailed(address, address);\n  error SignatoryUnauthorized();\n  error Unauthorized();\n\n  function swap(\n    address recipient,\n    uint256 maxRoyalty,\n    Order calldata order\n  ) external;\n\n  function cancel(uint256[] calldata nonces) external;\n\n  function cancelUpTo(uint256 minimumNonce) external;\n\n  function check(\n    address,\n    Order calldata\n  ) external view returns (bytes32[] memory);\n\n  function nonceUsed(address, uint256) external view returns (bool);\n\n  function authorize(address sender) external;\n\n  function revoke() external;\n\n  function adapters(bytes4) external view returns (IAdapter);\n\n  function authorized(address) external view returns (address);\n\n  function signatoryMinimumNonce(address) external view returns (uint256);\n}\n"},"contracts/Swap.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.23;\n\nimport \"@openzeppelin/contracts/access/Ownable2Step.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/EIP712.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol\";\nimport \"@openzeppelin/contracts/interfaces/IERC2981.sol\";\nimport \"./interfaces/ISwap.sol\";\n\n/**\n * @title AirSwap: Atomic Token Swap\n * @notice https://www.airswap.io/\n */\ncontract Swap is ISwap, Ownable2Step, EIP712 {\n  bytes32 private constant ORDER_TYPEHASH =\n    keccak256(\n      abi.encodePacked(\n        \"Order(uint256 nonce,uint256 expiry,uint256 protocolFee,Party signer,Party sender,address affiliateWallet,uint256 affiliateAmount)\",\n        \"Party(address wallet,address token,bytes4 kind,uint256 id,uint256 amount)\"\n      )\n    );\n\n  bytes32 private constant PARTY_TYPEHASH =\n    keccak256(\n      \"Party(address wallet,address token,bytes4 kind,uint256 id,uint256 amount)\"\n    );\n\n  // Domain name and version for use in EIP712 signatures\n  string public constant DOMAIN_NAME = \"SWAP\";\n  string public constant DOMAIN_VERSION = \"4.2\";\n  bytes32 public immutable DOMAIN_SEPARATOR;\n\n  uint256 public constant FEE_DIVISOR = 10000;\n  uint256 private constant MAX_ERROR_COUNT = 15;\n\n  /**\n   * @notice Double mapping of signers to nonce groups to nonce states\n   * @dev The nonce group is computed as nonce / 256, so each group of 256 sequential nonces uses the same key\n   * @dev The nonce states are encoded as 256 bits, for each nonce in the group 0 means available and 1 means used\n   */\n  mapping(address => mapping(uint256 => uint256)) private _nonceGroups;\n\n  // Mapping of signer to authorized signatory\n  mapping(address => address) public override authorized;\n\n  // Mapping of signatory address to a minimum valid nonce\n  mapping(address => uint256) public signatoryMinimumNonce;\n\n  uint256 public protocolFee;\n  address public protocolFeeWallet;\n  bytes4 public immutable requiredSenderKind;\n\n  // Mapping of ERC165 interface ID to token adapter\n  mapping(bytes4 => IAdapter) public adapters;\n\n  /**\n   * @notice Swap constructor\n   * @dev Sets domain and version for EIP712 signatures\n   * @param _adapters IAdapter[] array of token adapters\n   * @param _protocolFee uin256 protocol fee to be assessed on swaps\n   * @param _protocolFeeWallet address destination for protocol fees\n   */\n  constructor(\n    IAdapter[] memory _adapters,\n    bytes4 _requiredSenderKind,\n    uint256 _protocolFee,\n    address _protocolFeeWallet\n  ) EIP712(DOMAIN_NAME, DOMAIN_VERSION) {\n    if (_protocolFee >= FEE_DIVISOR) revert FeeInvalid();\n    if (_protocolFeeWallet == address(0)) revert FeeWalletInvalid();\n    if (_adapters.length == 0) revert AdaptersInvalid();\n\n    DOMAIN_SEPARATOR = _domainSeparatorV4();\n\n    uint256 adaptersLength = _adapters.length;\n    for (uint256 i; i < adaptersLength; ) {\n      adapters[_adapters[i].interfaceId()] = _adapters[i];\n      unchecked {\n        ++i;\n      }\n    }\n    requiredSenderKind = _requiredSenderKind;\n    protocolFee = _protocolFee;\n    protocolFeeWallet = _protocolFeeWallet;\n  }\n\n  /**\n   * @notice Atomic Token Swap\n   * @param recipient address Wallet to receive sender proceeds\n   * @param maxRoyalty uint256 Max to avoid unexpected royalties\n   * @param order Order to settle\n   */\n  function swap(\n    address recipient,\n    uint256 maxRoyalty,\n    Order calldata order\n  ) external {\n    // Ensure order is valid for signer\n    _check(order);\n\n    // Ensure msg.sender matches order if specified\n    if (order.sender.wallet != address(0) && order.sender.wallet != msg.sender)\n      revert SenderInvalid();\n\n    // Transfer from sender to signer\n    _transfer(\n      msg.sender,\n      order.signer.wallet,\n      order.sender.amount,\n      order.sender.id,\n      order.sender.token,\n      order.sender.kind\n    );\n\n    // Transfer from signer to recipient\n    _transfer(\n      order.signer.wallet,\n      recipient,\n      order.signer.amount,\n      order.signer.id,\n      order.signer.token,\n      order.signer.kind\n    );\n\n    // Transfer from sender to affiliate if specified\n    if (order.affiliateWallet != address(0)) {\n      _transfer(\n        msg.sender,\n        order.affiliateWallet,\n        order.affiliateAmount,\n        order.sender.id,\n        order.sender.token,\n        order.sender.kind\n      );\n    }\n\n    // Transfer protocol fee from sender\n    uint256 protocolFeeAmount = (order.sender.amount * protocolFee) /\n      FEE_DIVISOR;\n    if (protocolFeeAmount > 0) {\n      _transfer(\n        msg.sender,\n        protocolFeeWallet,\n        protocolFeeAmount,\n        order.sender.id,\n        order.sender.token,\n        order.sender.kind\n      );\n    }\n\n    // Transfer royalty from sender if required by signer token\n    if (supportsRoyalties(order.signer.token)) {\n      address royaltyRecipient;\n      uint256 royaltyAmount;\n      (royaltyRecipient, royaltyAmount) = IERC2981(order.signer.token)\n        .royaltyInfo(order.signer.id, order.sender.amount);\n      if (royaltyAmount > 0) {\n        if (royaltyAmount > maxRoyalty) revert RoyaltyExceedsMax(royaltyAmount);\n        _transfer(\n          msg.sender,\n          royaltyRecipient,\n          royaltyAmount,\n          order.sender.id,\n          order.sender.token,\n          order.sender.kind\n        );\n      }\n    }\n\n    emit Swap(\n      order.nonce,\n      order.signer.wallet,\n      order.signer.amount,\n      order.signer.id,\n      order.signer.token,\n      msg.sender,\n      order.sender.amount,\n      order.sender.id,\n      order.sender.token,\n      order.affiliateWallet,\n      order.affiliateAmount\n    );\n  }\n\n  /**\n   * @notice Set the protocol fee\n   * @param _protocolFee uint256 Value of the fee in basis points\n   */\n  function setProtocolFee(uint256 _protocolFee) external onlyOwner {\n    // Ensure the fee is less than divisor\n    if (_protocolFee >= FEE_DIVISOR) revert FeeInvalid();\n    protocolFee = _protocolFee;\n    emit SetProtocolFee(_protocolFee);\n  }\n\n  /**\n   * @notice Set the protocol fee wallet\n   * @param _protocolFeeWallet address Wallet to transfer fee to\n   */\n  function setProtocolFeeWallet(address _protocolFeeWallet) external onlyOwner {\n    // Ensure the new fee wallet is not null\n    if (_protocolFeeWallet == address(0)) revert FeeWalletInvalid();\n    protocolFeeWallet = _protocolFeeWallet;\n    emit SetProtocolFeeWallet(_protocolFeeWallet);\n  }\n\n  /**\n   * @notice Authorize a signer\n   * @param signatory address Wallet of the signer to authorize\n   * @dev Emits an Authorize event\n   */\n  function authorize(address signatory) external override {\n    if (signatory == address(0)) revert SignatoryInvalid();\n    authorized[msg.sender] = signatory;\n    emit Authorize(signatory, msg.sender);\n  }\n\n  /**\n   * @notice Revoke the signatory\n   * @dev Emits a Revoke event\n   */\n  function revoke() external override {\n    address tmp = authorized[msg.sender];\n    delete authorized[msg.sender];\n    emit Revoke(tmp, msg.sender);\n  }\n\n  /**\n   * @notice Cancel one or more nonces\n   * @dev Cancelled nonces are marked as used\n   * @dev Emits a Cancel event\n   * @dev Out of gas may occur in arrays of length > 400\n   * @param nonces uint256[] List of nonces to cancel\n   */\n  function cancel(uint256[] calldata nonces) external override {\n    for (uint256 i; i < nonces.length; ) {\n      uint256 nonce = nonces[i];\n      _markNonceAsUsed(msg.sender, nonce);\n      emit Cancel(nonce, msg.sender);\n      unchecked {\n        ++i;\n      }\n    }\n  }\n\n  /**\n   * @notice Cancels all orders below a nonce value\n   * @dev Emits a CancelUpTo event\n   * @param minimumNonce uint256 Minimum valid nonce\n   */\n  function cancelUpTo(uint256 minimumNonce) external {\n    signatoryMinimumNonce[msg.sender] = minimumNonce;\n    emit CancelUpTo(minimumNonce, msg.sender);\n  }\n\n  /**\n   * @notice Checks an order for errors\n   * @param senderWallet address Wallet that would send the order\n   * @param order Order that would be settled\n   * @return bytes32[] errors\n   */\n  function check(\n    address senderWallet,\n    Order calldata order\n  ) external view returns (bytes32[] memory) {\n    bytes32[] memory errors = new bytes32[](MAX_ERROR_COUNT);\n    uint256 count;\n\n    // Validate as the authorized signatory if set\n    address signatory = order.signer.wallet;\n    if (authorized[signatory] != address(0)) {\n      signatory = authorized[signatory];\n    }\n\n    if (\n      !SignatureChecker.isValidSignatureNow(\n        signatory,\n        _getOrderHash(order),\n        abi.encodePacked(order.r, order.s, order.v)\n      )\n    ) {\n      errors[count++] = \"Unauthorized\";\n    } else if (nonceUsed(signatory, order.nonce)) {\n      errors[count++] = \"NonceAlreadyUsed\";\n    } else if (order.nonce < signatoryMinimumNonce[signatory]) {\n      errors[count++] = \"NonceTooLow\";\n    }\n\n    if (order.expiry < block.timestamp) {\n      errors[count++] = \"OrderExpired\";\n    }\n\n    if (\n      order.sender.wallet != address(0) && order.sender.wallet != senderWallet\n    ) {\n      errors[count++] = \"SenderInvalid\";\n    }\n\n    IAdapter senderTokenAdapter = adapters[order.sender.kind];\n\n    if (address(senderTokenAdapter) == address(0)) {\n      errors[count++] = \"SenderTokenKindUnknown\";\n    } else {\n      if (order.sender.kind != requiredSenderKind) {\n        errors[count++] = \"SenderTokenInvalid\";\n      } else {\n        uint256 protocolFeeAmount = (order.sender.amount * protocolFee) /\n          FEE_DIVISOR;\n        uint256 totalSenderAmount = order.sender.amount +\n          protocolFeeAmount +\n          order.affiliateAmount;\n        if (supportsRoyalties(order.signer.token)) {\n          (, uint256 royaltyAmount) = IERC2981(order.signer.token).royaltyInfo(\n            order.signer.id,\n            order.sender.amount\n          );\n          totalSenderAmount += royaltyAmount;\n        }\n        Party memory sender = Party(\n          senderWallet,\n          order.sender.token,\n          order.sender.kind,\n          order.sender.id,\n          totalSenderAmount\n        );\n        if (senderWallet != address(0)) {\n          if (!senderTokenAdapter.hasAllowance(sender)) {\n            errors[count++] = \"SenderAllowanceLow\";\n          }\n          if (!senderTokenAdapter.hasBalance(sender)) {\n            errors[count++] = \"SenderBalanceLow\";\n          }\n        }\n        if (!senderTokenAdapter.hasValidParams(sender)) {\n          errors[count++] = \"AmountOrIDInvalid\";\n        }\n        if (order.sender.amount < order.affiliateAmount) {\n          errors[count++] = \"AffiliateAmountInvalid\";\n        }\n      }\n    }\n\n    IAdapter signerTokenAdapter = adapters[order.signer.kind];\n\n    if (address(signerTokenAdapter) == address(0)) {\n      errors[count++] = \"SignerTokenKindUnknown\";\n    } else {\n      if (!signerTokenAdapter.hasAllowance(order.signer)) {\n        errors[count++] = \"SignerAllowanceLow\";\n      }\n      if (!signerTokenAdapter.hasBalance(order.signer)) {\n        errors[count++] = \"SignerBalanceLow\";\n      }\n      if (!signerTokenAdapter.hasValidParams(order.signer)) {\n        errors[count++] = \"AmountOrIDInvalid\";\n      }\n    }\n\n    // Truncate errors array to actual count\n    if (count != errors.length) {\n      assembly {\n        mstore(errors, count)\n      }\n    }\n\n    return errors;\n  }\n\n  /**\n   * @notice Returns true if the nonce has been used\n   * @param signer address Address of the signer\n   * @param nonce uint256 Nonce being checked\n   */\n  function nonceUsed(\n    address signer,\n    uint256 nonce\n  ) public view override returns (bool) {\n    uint256 groupKey = nonce / 256;\n    uint256 indexInGroup = nonce % 256;\n    return (_nonceGroups[signer][groupKey] >> indexInGroup) & 1 == 1;\n  }\n\n  /**\n   * @notice Marks a nonce as used for the given signatory\n   * @param signatory  address Address of the signer for which to mark the nonce as used\n   * @param nonce uint256 Nonce to be marked as used\n   */\n  function _markNonceAsUsed(address signatory, uint256 nonce) private {\n    uint256 groupKey = nonce / 256;\n    uint256 indexInGroup = nonce % 256;\n    uint256 group = _nonceGroups[signatory][groupKey];\n\n    // Revert if nonce is already used\n    if ((group >> indexInGroup) & 1 == 1) {\n      revert NonceAlreadyUsed(nonce);\n    }\n\n    _nonceGroups[signatory][groupKey] = group | (uint256(1) << indexInGroup);\n  }\n\n  /**\n   * @notice Checks whether a token implements EIP-2981\n   * @param token address token to check\n   */\n  function supportsRoyalties(address token) private view returns (bool) {\n    try IERC165(token).supportsInterface(type(IERC2981).interfaceId) returns (\n      bool result\n    ) {\n      return result;\n    } catch {\n      return false;\n    }\n  }\n\n  /**\n   * @notice Tests whether signature and signer are valid\n   * @param order Order to validate\n   */\n  function _check(Order calldata order) private {\n    // Ensure the sender token is the required kind\n    if (order.sender.kind != requiredSenderKind) revert SenderTokenInvalid();\n\n    // Ensure the sender amount is greater than affiliate amount\n    if (order.sender.amount < order.affiliateAmount)\n      revert AffiliateAmountInvalid();\n\n    // Validate as the authorized signatory if set\n    address signatory = order.signer.wallet;\n    if (authorized[signatory] != address(0)) {\n      signatory = authorized[signatory];\n    }\n\n    // Ensure the signature is correct for the order\n    if (\n      !SignatureChecker.isValidSignatureNow(\n        signatory,\n        _getOrderHash(order),\n        abi.encodePacked(order.r, order.s, order.v)\n      )\n    ) revert Unauthorized();\n\n    // Ensure the nonce is not yet used and if not mark it used\n    _markNonceAsUsed(signatory, order.nonce);\n\n    // Ensure the nonce is not below the minimum nonce set by cancelUpTo\n    if (order.nonce < signatoryMinimumNonce[signatory]) revert NonceTooLow();\n\n    // Ensure the expiry is not passed\n    if (order.expiry <= block.timestamp) revert OrderExpired();\n  }\n\n  /**\n   * @notice Hashes an order into bytes32\n   * @dev EIP-191 header and domain separator included\n   * @param order Order The order to be hashed\n   * @return bytes32 A keccak256 abi.encodePacked value\n   */\n  function _getOrderHash(Order calldata order) private view returns (bytes32) {\n    return\n      _hashTypedDataV4(\n        keccak256(\n          abi.encode(\n            ORDER_TYPEHASH,\n            order.nonce,\n            order.expiry,\n            protocolFee,\n            keccak256(abi.encode(PARTY_TYPEHASH, order.signer)),\n            keccak256(abi.encode(PARTY_TYPEHASH, order.sender)),\n            order.affiliateWallet,\n            order.affiliateAmount\n          )\n        )\n      );\n  }\n\n  /**\n   * @notice Performs token transfer\n   * @param from address Wallet address to transfer from\n   * @param to address Wallet address to transfer to\n   * @param amount uint256 Amount for ERC-20\n   * @param id uint256 token ID for ERC-721, ERC-1155\n   * @param token address Contract address of token\n   * @param kind bytes4 EIP-165 interface ID of the token\n   */\n  function _transfer(\n    address from,\n    address to,\n    uint256 amount,\n    uint256 id,\n    address token,\n    bytes4 kind\n  ) private {\n    IAdapter adapter = adapters[kind];\n    if (address(adapter) == address(0)) revert TokenKindUnknown();\n    // Use delegatecall so underlying transfer is called as Swap\n    (bool success, ) = address(adapter).delegatecall(\n      abi.encodeWithSelector(\n        adapter.transfer.selector,\n        from,\n        to,\n        amount,\n        id,\n        token\n      )\n    );\n    if (!success) revert TransferFailed(from, to);\n  }\n}\n"},"contracts/test/ERC721Royalty.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.23;\n\nimport \"@openzeppelin/contracts/token/common/ERC2981.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/utils/Counters.sol\";\n\ncontract ERC721Royalty is ERC2981, ERC721, Ownable {\n  using Counters for Counters.Counter;\n  Counters.Counter private _tokenIds;\n\n  constructor() ERC721(\"Test Token\", \"TT\") {\n    _setDefaultRoyalty(msg.sender, 100);\n  }\n\n  function supportsInterface(\n    bytes4 interfaceId\n  ) public view virtual override(ERC721, ERC2981) returns (bool) {\n    return super.supportsInterface(interfaceId);\n  }\n\n  function _burn(uint256 tokenId) internal virtual override {\n    super._burn(tokenId);\n    _resetTokenRoyalty(tokenId);\n  }\n\n  function burn(uint256 tokenId) public onlyOwner {\n    _burn(tokenId);\n  }\n\n  function mint(address recipient) public onlyOwner returns (uint256) {\n    _tokenIds.increment();\n\n    uint256 newItemId = _tokenIds.current();\n    _safeMint(recipient, newItemId);\n\n    return newItemId;\n  }\n\n  function mintWithRoyalty(\n    address recipient,\n    address royaltyReceiver,\n    uint96 feeNumerator\n  ) public onlyOwner {\n    uint256 tokenId = mint(recipient);\n    _setTokenRoyalty(tokenId, royaltyReceiver, feeNumerator);\n  }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":999999},"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"sources":{"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[2511],"Ownable":[112]},"id":113,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:0"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":2,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":113,"sourceUnit":2512,"src":"127:30:0","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4,"name":"Context","nameLocations":["683:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":2511,"src":"683:7:0"},"id":5,"nodeType":"InheritanceSpecifier","src":"683:7:0"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":3,"nodeType":"StructuredDocumentation","src":"159:494:0","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":112,"linearizedBaseContracts":[112,2511],"name":"Ownable","nameLocation":"672:7:0","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":7,"mutability":"mutable","name":"_owner","nameLocation":"713:6:0","nodeType":"VariableDeclaration","scope":112,"src":"697:22:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":13,"name":"OwnershipTransferred","nameLocation":"732:20:0","nodeType":"EventDefinition","parameters":{"id":12,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:0","nodeType":"VariableDeclaration","scope":13,"src":"753:29:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:0","nodeType":"VariableDeclaration","scope":13,"src":"784:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:0"},"src":"726:84:0"},{"body":{"id":22,"nodeType":"Block","src":"926:49:0","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":18,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2493,"src":"955:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":19,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"955:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111,"src":"936:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":20,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21,"nodeType":"ExpressionStatement","src":"936:32:0"}]},"documentation":{"id":14,"nodeType":"StructuredDocumentation","src":"816:91:0","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":23,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15,"nodeType":"ParameterList","parameters":[],"src":"923:2:0"},"returnParameters":{"id":16,"nodeType":"ParameterList","parameters":[],"src":"926:0:0"},"scope":112,"src":"912:63:0","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":30,"nodeType":"Block","src":"1084:41:0","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":26,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54,"src":"1094:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":27,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28,"nodeType":"ExpressionStatement","src":"1094:13:0"},{"id":29,"nodeType":"PlaceholderStatement","src":"1117:1:0"}]},"documentation":{"id":24,"nodeType":"StructuredDocumentation","src":"981:77:0","text":" @dev Throws if called by any account other than the owner."},"id":31,"name":"onlyOwner","nameLocation":"1072:9:0","nodeType":"ModifierDefinition","parameters":{"id":25,"nodeType":"ParameterList","parameters":[],"src":"1081:2:0"},"src":"1063:62:0","virtual":false,"visibility":"internal"},{"body":{"id":39,"nodeType":"Block","src":"1256:30:0","statements":[{"expression":{"id":37,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"1273:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":36,"id":38,"nodeType":"Return","src":"1266:13:0"}]},"documentation":{"id":32,"nodeType":"StructuredDocumentation","src":"1131:65:0","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":40,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:0","nodeType":"FunctionDefinition","parameters":{"id":33,"nodeType":"ParameterList","parameters":[],"src":"1215:2:0"},"returnParameters":{"id":36,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":40,"src":"1247:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:0"},"scope":112,"src":"1201:85:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":53,"nodeType":"Block","src":"1404:85:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":45,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"1422:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":46,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":47,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2493,"src":"1433:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":48,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1433:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":50,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":44,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52,"nodeType":"ExpressionStatement","src":"1414:68:0"}]},"documentation":{"id":41,"nodeType":"StructuredDocumentation","src":"1292:62:0","text":" @dev Throws if the sender is not the owner."},"id":54,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:0","nodeType":"FunctionDefinition","parameters":{"id":42,"nodeType":"ParameterList","parameters":[],"src":"1379:2:0"},"returnParameters":{"id":43,"nodeType":"ParameterList","parameters":[],"src":"1404:0:0"},"scope":112,"src":"1359:130:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":67,"nodeType":"Block","src":"1878:47:0","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":63,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1915:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":62,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1907:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61,"name":"address","nodeType":"ElementaryTypeName","src":"1907:7:0","typeDescriptions":{}}},"id":64,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1907:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111,"src":"1888:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":65,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1888:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66,"nodeType":"ExpressionStatement","src":"1888:30:0"}]},"documentation":{"id":55,"nodeType":"StructuredDocumentation","src":"1495:324:0","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","id":68,"implemented":true,"kind":"function","modifiers":[{"id":58,"kind":"modifierInvocation","modifierName":{"id":57,"name":"onlyOwner","nameLocations":["1868:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"1868:9:0"},"nodeType":"ModifierInvocation","src":"1868:9:0"}],"name":"renounceOwnership","nameLocation":"1833:17:0","nodeType":"FunctionDefinition","parameters":{"id":56,"nodeType":"ParameterList","parameters":[],"src":"1850:2:0"},"returnParameters":{"id":59,"nodeType":"ParameterList","parameters":[],"src":"1878:0:0"},"scope":112,"src":"1824:101:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":90,"nodeType":"Block","src":"2144:128:0","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":82,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71,"src":"2162:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2182:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2174:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78,"name":"address","nodeType":"ElementaryTypeName","src":"2174:7:0","typeDescriptions":{}}},"id":81,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2174:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2162:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":83,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2186:40:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":76,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2154:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":84,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85,"nodeType":"ExpressionStatement","src":"2154:73:0"},{"expression":{"arguments":[{"id":87,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71,"src":"2256:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":86,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111,"src":"2237:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":88,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2237:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89,"nodeType":"ExpressionStatement","src":"2237:28:0"}]},"documentation":{"id":69,"nodeType":"StructuredDocumentation","src":"1931:138:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":91,"implemented":true,"kind":"function","modifiers":[{"id":74,"kind":"modifierInvocation","modifierName":{"id":73,"name":"onlyOwner","nameLocations":["2134:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"2134:9:0"},"nodeType":"ModifierInvocation","src":"2134:9:0"}],"name":"transferOwnership","nameLocation":"2083:17:0","nodeType":"FunctionDefinition","parameters":{"id":72,"nodeType":"ParameterList","parameters":[{"constant":false,"id":71,"mutability":"mutable","name":"newOwner","nameLocation":"2109:8:0","nodeType":"VariableDeclaration","scope":91,"src":"2101:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70,"name":"address","nodeType":"ElementaryTypeName","src":"2101:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2100:18:0"},"returnParameters":{"id":75,"nodeType":"ParameterList","parameters":[],"src":"2144:0:0"},"scope":112,"src":"2074:198:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":110,"nodeType":"Block","src":"2489:124:0","statements":[{"assignments":[98],"declarations":[{"constant":false,"id":98,"mutability":"mutable","name":"oldOwner","nameLocation":"2507:8:0","nodeType":"VariableDeclaration","scope":110,"src":"2499:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":97,"name":"address","nodeType":"ElementaryTypeName","src":"2499:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":100,"initialValue":{"id":99,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"2518:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2499:25:0"},{"expression":{"id":103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":101,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"2534:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":102,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94,"src":"2543:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2534:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":104,"nodeType":"ExpressionStatement","src":"2534:17:0"},{"eventCall":{"arguments":[{"id":106,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":98,"src":"2587:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":107,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94,"src":"2597:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":105,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"2566:20:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2566:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109,"nodeType":"EmitStatement","src":"2561:45:0"}]},"documentation":{"id":92,"nodeType":"StructuredDocumentation","src":"2278:143:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":111,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2435:18:0","nodeType":"FunctionDefinition","parameters":{"id":95,"nodeType":"ParameterList","parameters":[{"constant":false,"id":94,"mutability":"mutable","name":"newOwner","nameLocation":"2462:8:0","nodeType":"VariableDeclaration","scope":111,"src":"2454:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":93,"name":"address","nodeType":"ElementaryTypeName","src":"2454:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2453:18:0"},"returnParameters":{"id":96,"nodeType":"ParameterList","parameters":[],"src":"2489:0:0"},"scope":112,"src":"2426:187:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":113,"src":"654:1961:0","usedErrors":[],"usedEvents":[13]}],"src":"102:2514:0"},"id":0},"@openzeppelin/contracts/access/Ownable2Step.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable2Step.sol","exportedSymbols":{"Context":[2511],"Ownable":[112],"Ownable2Step":[195]},"id":196,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":114,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:1"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"./Ownable.sol","id":115,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":196,"sourceUnit":113,"src":"132:23:1","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":117,"name":"Ownable","nameLocations":["633:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":112,"src":"633:7:1"},"id":118,"nodeType":"InheritanceSpecifier","src":"633:7:1"}],"canonicalName":"Ownable2Step","contractDependencies":[],"contractKind":"contract","documentation":{"id":116,"nodeType":"StructuredDocumentation","src":"157:441:1","text":" @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)."},"fullyImplemented":true,"id":195,"linearizedBaseContracts":[195,112,2511],"name":"Ownable2Step","nameLocation":"617:12:1","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":120,"mutability":"mutable","name":"_pendingOwner","nameLocation":"663:13:1","nodeType":"VariableDeclaration","scope":195,"src":"647:29:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":119,"name":"address","nodeType":"ElementaryTypeName","src":"647:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"eventSelector":"38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700","id":126,"name":"OwnershipTransferStarted","nameLocation":"689:24:1","nodeType":"EventDefinition","parameters":{"id":125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"730:13:1","nodeType":"VariableDeclaration","scope":126,"src":"714:29:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121,"name":"address","nodeType":"ElementaryTypeName","src":"714:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":124,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"761:8:1","nodeType":"VariableDeclaration","scope":126,"src":"745:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":123,"name":"address","nodeType":"ElementaryTypeName","src":"745:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"713:57:1"},"src":"683:88:1"},{"body":{"id":134,"nodeType":"Block","src":"909:37:1","statements":[{"expression":{"id":132,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"926:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":131,"id":133,"nodeType":"Return","src":"919:20:1"}]},"documentation":{"id":127,"nodeType":"StructuredDocumentation","src":"777:65:1","text":" @dev Returns the address of the pending owner."},"functionSelector":"e30c3978","id":135,"implemented":true,"kind":"function","modifiers":[],"name":"pendingOwner","nameLocation":"856:12:1","nodeType":"FunctionDefinition","parameters":{"id":128,"nodeType":"ParameterList","parameters":[],"src":"868:2:1"},"returnParameters":{"id":131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":130,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":135,"src":"900:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":129,"name":"address","nodeType":"ElementaryTypeName","src":"900:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"899:9:1"},"scope":195,"src":"847:99:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[91],"body":{"id":154,"nodeType":"Block","src":"1218:99:1","statements":[{"expression":{"id":146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":144,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"1228:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":145,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"1244:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1228:24:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":147,"nodeType":"ExpressionStatement","src":"1228:24:1"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":149,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"1292:5:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1292:7:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":151,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"1301:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":148,"name":"OwnershipTransferStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126,"src":"1267:24:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1267:43:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":153,"nodeType":"EmitStatement","src":"1262:48:1"}]},"documentation":{"id":136,"nodeType":"StructuredDocumentation","src":"952:182:1","text":" @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":155,"implemented":true,"kind":"function","modifiers":[{"id":142,"kind":"modifierInvocation","modifierName":{"id":141,"name":"onlyOwner","nameLocations":["1208:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"1208:9:1"},"nodeType":"ModifierInvocation","src":"1208:9:1"}],"name":"transferOwnership","nameLocation":"1148:17:1","nodeType":"FunctionDefinition","overrides":{"id":140,"nodeType":"OverrideSpecifier","overrides":[],"src":"1199:8:1"},"parameters":{"id":139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"newOwner","nameLocation":"1174:8:1","nodeType":"VariableDeclaration","scope":155,"src":"1166:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":137,"name":"address","nodeType":"ElementaryTypeName","src":"1166:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1165:18:1"},"returnParameters":{"id":143,"nodeType":"ParameterList","parameters":[],"src":"1218:0:1"},"scope":195,"src":"1139:178:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[111],"body":{"id":171,"nodeType":"Block","src":"1573:81:1","statements":[{"expression":{"id":163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1583:20:1","subExpression":{"id":162,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120,"src":"1590:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":164,"nodeType":"ExpressionStatement","src":"1583:20:1"},{"expression":{"arguments":[{"id":168,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":158,"src":"1638:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":165,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1613:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Ownable2Step_$195_$","typeString":"type(contract super Ownable2Step)"}},"id":167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1619:18:1","memberName":"_transferOwnership","nodeType":"MemberAccess","referencedDeclaration":111,"src":"1613:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1613:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":170,"nodeType":"ExpressionStatement","src":"1613:34:1"}]},"documentation":{"id":156,"nodeType":"StructuredDocumentation","src":"1323:173:1","text":" @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction."},"id":172,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"1510:18:1","nodeType":"FunctionDefinition","overrides":{"id":160,"nodeType":"OverrideSpecifier","overrides":[],"src":"1564:8:1"},"parameters":{"id":159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":158,"mutability":"mutable","name":"newOwner","nameLocation":"1537:8:1","nodeType":"VariableDeclaration","scope":172,"src":"1529:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":157,"name":"address","nodeType":"ElementaryTypeName","src":"1529:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1528:18:1"},"returnParameters":{"id":161,"nodeType":"ParameterList","parameters":[],"src":"1573:0:1"},"scope":195,"src":"1501:153:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":193,"nodeType":"Block","src":"1776:170:1","statements":[{"assignments":[177],"declarations":[{"constant":false,"id":177,"mutability":"mutable","name":"sender","nameLocation":"1794:6:1","nodeType":"VariableDeclaration","scope":193,"src":"1786:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":176,"name":"address","nodeType":"ElementaryTypeName","src":"1786:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":180,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":178,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2493,"src":"1803:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1803:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1786:29:1"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":182,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":135,"src":"1833:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1833:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":184,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177,"src":"1851:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1833:24:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572","id":186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1859:43:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","typeString":"literal_string \"Ownable2Step: caller is not the new owner\""},"value":"Ownable2Step: caller is not the new owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","typeString":"literal_string \"Ownable2Step: caller is not the new owner\""}],"id":181,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1825:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1825:78:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":188,"nodeType":"ExpressionStatement","src":"1825:78:1"},{"expression":{"arguments":[{"id":190,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177,"src":"1932:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":189,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[172],"referencedDeclaration":172,"src":"1913:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1913:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":192,"nodeType":"ExpressionStatement","src":"1913:26:1"}]},"documentation":{"id":173,"nodeType":"StructuredDocumentation","src":"1660:69:1","text":" @dev The new owner accepts the ownership transfer."},"functionSelector":"79ba5097","id":194,"implemented":true,"kind":"function","modifiers":[],"name":"acceptOwnership","nameLocation":"1743:15:1","nodeType":"FunctionDefinition","parameters":{"id":174,"nodeType":"ParameterList","parameters":[],"src":"1758:2:1"},"returnParameters":{"id":175,"nodeType":"ParameterList","parameters":[],"src":"1776:0:1"},"scope":195,"src":"1734:212:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":196,"src":"599:1349:1","usedErrors":[],"usedEvents":[13,126]}],"src":"107:1842:1"},"id":1},"@openzeppelin/contracts/interfaces/IERC1271.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1271.sol","exportedSymbols":{"IERC1271":[209]},"id":210,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":197,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"92:23:2"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1271","contractDependencies":[],"contractKind":"interface","documentation":{"id":198,"nodeType":"StructuredDocumentation","src":"117:189:2","text":" @dev Interface of the ERC1271 standard signature validation method for\n contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271].\n _Available since v4.1._"},"fullyImplemented":false,"id":209,"linearizedBaseContracts":[209],"name":"IERC1271","nameLocation":"317:8:2","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":199,"nodeType":"StructuredDocumentation","src":"332:220:2","text":" @dev Should return whether the signature provided is valid for the provided data\n @param hash      Hash of the data to be signed\n @param signature Signature byte array associated with _data"},"functionSelector":"1626ba7e","id":208,"implemented":false,"kind":"function","modifiers":[],"name":"isValidSignature","nameLocation":"566:16:2","nodeType":"FunctionDefinition","parameters":{"id":204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":201,"mutability":"mutable","name":"hash","nameLocation":"591:4:2","nodeType":"VariableDeclaration","scope":208,"src":"583:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"583:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":203,"mutability":"mutable","name":"signature","nameLocation":"610:9:2","nodeType":"VariableDeclaration","scope":208,"src":"597:22:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":202,"name":"bytes","nodeType":"ElementaryTypeName","src":"597:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"582:38:2"},"returnParameters":{"id":207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206,"mutability":"mutable","name":"magicValue","nameLocation":"651:10:2","nodeType":"VariableDeclaration","scope":208,"src":"644:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":205,"name":"bytes4","nodeType":"ElementaryTypeName","src":"644:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"643:19:2"},"scope":209,"src":"557:106:2","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":210,"src":"307:358:2","usedErrors":[],"usedEvents":[]}],"src":"92:574:2"},"id":2},"@openzeppelin/contracts/interfaces/IERC2981.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC2981.sol","exportedSymbols":{"IERC165":[3845],"IERC2981":[228]},"id":229,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":211,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:3"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../utils/introspection/IERC165.sol","id":212,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":229,"sourceUnit":3846,"src":"132:44:3","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":214,"name":"IERC165","nameLocations":["490:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3845,"src":"490:7:3"},"id":215,"nodeType":"InheritanceSpecifier","src":"490:7:3"}],"canonicalName":"IERC2981","contractDependencies":[],"contractKind":"interface","documentation":{"id":213,"nodeType":"StructuredDocumentation","src":"178:289:3","text":" @dev Interface for the NFT Royalty Standard.\n A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal\n support for royalty payments across all NFT marketplaces and ecosystem participants.\n _Available since v4.5._"},"fullyImplemented":false,"id":228,"linearizedBaseContracts":[228,3845],"name":"IERC2981","nameLocation":"478:8:3","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":216,"nodeType":"StructuredDocumentation","src":"504:231:3","text":" @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of\n exchange. The royalty amount is denominated and should be paid in that same unit of exchange."},"functionSelector":"2a55205a","id":227,"implemented":false,"kind":"function","modifiers":[],"name":"royaltyInfo","nameLocation":"749:11:3","nodeType":"FunctionDefinition","parameters":{"id":221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":218,"mutability":"mutable","name":"tokenId","nameLocation":"778:7:3","nodeType":"VariableDeclaration","scope":227,"src":"770:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":217,"name":"uint256","nodeType":"ElementaryTypeName","src":"770:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":220,"mutability":"mutable","name":"salePrice","nameLocation":"803:9:3","nodeType":"VariableDeclaration","scope":227,"src":"795:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":219,"name":"uint256","nodeType":"ElementaryTypeName","src":"795:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:58:3"},"returnParameters":{"id":226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":223,"mutability":"mutable","name":"receiver","nameLocation":"850:8:3","nodeType":"VariableDeclaration","scope":227,"src":"842:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":222,"name":"address","nodeType":"ElementaryTypeName","src":"842:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":225,"mutability":"mutable","name":"royaltyAmount","nameLocation":"868:13:3","nodeType":"VariableDeclaration","scope":227,"src":"860:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":224,"name":"uint256","nodeType":"ElementaryTypeName","src":"860:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"841:41:3"},"scope":228,"src":"740:143:3","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":229,"src":"468:417:3","usedErrors":[],"usedEvents":[]}],"src":"107:779:3"},"id":3},"@openzeppelin/contracts/interfaces/IERC5267.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC5267.sol","exportedSymbols":{"IERC5267":[253]},"id":254,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":230,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:4"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC5267","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":253,"linearizedBaseContracts":[253],"name":"IERC5267","nameLocation":"142:8:4","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":231,"nodeType":"StructuredDocumentation","src":"157:84:4","text":" @dev MAY be emitted to signal that the domain could have changed."},"eventSelector":"0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31","id":233,"name":"EIP712DomainChanged","nameLocation":"252:19:4","nodeType":"EventDefinition","parameters":{"id":232,"nodeType":"ParameterList","parameters":[],"src":"271:2:4"},"src":"246:28:4"},{"documentation":{"id":234,"nodeType":"StructuredDocumentation","src":"280:140:4","text":" @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n signature."},"functionSelector":"84b0196e","id":252,"implemented":false,"kind":"function","modifiers":[],"name":"eip712Domain","nameLocation":"434:12:4","nodeType":"FunctionDefinition","parameters":{"id":235,"nodeType":"ParameterList","parameters":[],"src":"446:2:4"},"returnParameters":{"id":251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":237,"mutability":"mutable","name":"fields","nameLocation":"516:6:4","nodeType":"VariableDeclaration","scope":252,"src":"509:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":236,"name":"bytes1","nodeType":"ElementaryTypeName","src":"509:6:4","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"},{"constant":false,"id":239,"mutability":"mutable","name":"name","nameLocation":"550:4:4","nodeType":"VariableDeclaration","scope":252,"src":"536:18:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":238,"name":"string","nodeType":"ElementaryTypeName","src":"536:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":241,"mutability":"mutable","name":"version","nameLocation":"582:7:4","nodeType":"VariableDeclaration","scope":252,"src":"568:21:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":240,"name":"string","nodeType":"ElementaryTypeName","src":"568:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":243,"mutability":"mutable","name":"chainId","nameLocation":"611:7:4","nodeType":"VariableDeclaration","scope":252,"src":"603:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":242,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":245,"mutability":"mutable","name":"verifyingContract","nameLocation":"640:17:4","nodeType":"VariableDeclaration","scope":252,"src":"632:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":244,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":247,"mutability":"mutable","name":"salt","nameLocation":"679:4:4","nodeType":"VariableDeclaration","scope":252,"src":"671:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":246,"name":"bytes32","nodeType":"ElementaryTypeName","src":"671:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":250,"mutability":"mutable","name":"extensions","nameLocation":"714:10:4","nodeType":"VariableDeclaration","scope":252,"src":"697:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":248,"name":"uint256","nodeType":"ElementaryTypeName","src":"697:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":249,"nodeType":"ArrayTypeName","src":"697:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"495:239:4"},"scope":253,"src":"425:310:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":254,"src":"132:605:4","usedErrors":[],"usedEvents":[233]}],"src":"107:631:4"},"id":4},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","exportedSymbols":{"IERC1155":[375],"IERC165":[3845]},"id":376,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":255,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:5"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":256,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":376,"sourceUnit":3846,"src":"135:47:5","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":258,"name":"IERC165","nameLocations":["372:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":3845,"src":"372:7:5"},"id":259,"nodeType":"InheritanceSpecifier","src":"372:7:5"}],"canonicalName":"IERC1155","contractDependencies":[],"contractKind":"interface","documentation":{"id":257,"nodeType":"StructuredDocumentation","src":"184:165:5","text":" @dev Required interface of an ERC1155 compliant contract, as defined in the\n https://eips.ethereum.org/EIPS/eip-1155[EIP].\n _Available since v3.1._"},"fullyImplemented":false,"id":375,"linearizedBaseContracts":[375,3845],"name":"IERC1155","nameLocation":"360:8:5","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":260,"nodeType":"StructuredDocumentation","src":"386:121:5","text":" @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`."},"eventSelector":"c3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62","id":272,"name":"TransferSingle","nameLocation":"518:14:5","nodeType":"EventDefinition","parameters":{"id":271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":262,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"549:8:5","nodeType":"VariableDeclaration","scope":272,"src":"533:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":261,"name":"address","nodeType":"ElementaryTypeName","src":"533:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":264,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"575:4:5","nodeType":"VariableDeclaration","scope":272,"src":"559:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":263,"name":"address","nodeType":"ElementaryTypeName","src":"559:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":266,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"597:2:5","nodeType":"VariableDeclaration","scope":272,"src":"581:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":265,"name":"address","nodeType":"ElementaryTypeName","src":"581:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":268,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"609:2:5","nodeType":"VariableDeclaration","scope":272,"src":"601:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":267,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":270,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"621:5:5","nodeType":"VariableDeclaration","scope":272,"src":"613:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":269,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"532:95:5"},"src":"512:116:5"},{"anonymous":false,"documentation":{"id":273,"nodeType":"StructuredDocumentation","src":"634:144:5","text":" @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n transfers."},"eventSelector":"4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb","id":287,"name":"TransferBatch","nameLocation":"789:13:5","nodeType":"EventDefinition","parameters":{"id":286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":275,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"828:8:5","nodeType":"VariableDeclaration","scope":287,"src":"812:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":274,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":277,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"862:4:5","nodeType":"VariableDeclaration","scope":287,"src":"846:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":276,"name":"address","nodeType":"ElementaryTypeName","src":"846:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":279,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"892:2:5","nodeType":"VariableDeclaration","scope":287,"src":"876:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":278,"name":"address","nodeType":"ElementaryTypeName","src":"876:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":282,"indexed":false,"mutability":"mutable","name":"ids","nameLocation":"914:3:5","nodeType":"VariableDeclaration","scope":287,"src":"904:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":280,"name":"uint256","nodeType":"ElementaryTypeName","src":"904:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":281,"nodeType":"ArrayTypeName","src":"904:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":285,"indexed":false,"mutability":"mutable","name":"values","nameLocation":"937:6:5","nodeType":"VariableDeclaration","scope":287,"src":"927:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":283,"name":"uint256","nodeType":"ElementaryTypeName","src":"927:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":284,"nodeType":"ArrayTypeName","src":"927:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"802:147:5"},"src":"783:167:5"},{"anonymous":false,"documentation":{"id":288,"nodeType":"StructuredDocumentation","src":"956:147:5","text":" @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n `approved`."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":296,"name":"ApprovalForAll","nameLocation":"1114:14:5","nodeType":"EventDefinition","parameters":{"id":295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":290,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1145:7:5","nodeType":"VariableDeclaration","scope":296,"src":"1129:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":289,"name":"address","nodeType":"ElementaryTypeName","src":"1129:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":292,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"1170:8:5","nodeType":"VariableDeclaration","scope":296,"src":"1154:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":291,"name":"address","nodeType":"ElementaryTypeName","src":"1154:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":294,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"1185:8:5","nodeType":"VariableDeclaration","scope":296,"src":"1180:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":293,"name":"bool","nodeType":"ElementaryTypeName","src":"1180:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1128:66:5"},"src":"1108:87:5"},{"anonymous":false,"documentation":{"id":297,"nodeType":"StructuredDocumentation","src":"1201:343:5","text":" @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n If an {URI} event was emitted for `id`, the standard\n https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n returned by {IERC1155MetadataURI-uri}."},"eventSelector":"6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b","id":303,"name":"URI","nameLocation":"1555:3:5","nodeType":"EventDefinition","parameters":{"id":302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":299,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1566:5:5","nodeType":"VariableDeclaration","scope":303,"src":"1559:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":298,"name":"string","nodeType":"ElementaryTypeName","src":"1559:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":301,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1589:2:5","nodeType":"VariableDeclaration","scope":303,"src":"1573:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":300,"name":"uint256","nodeType":"ElementaryTypeName","src":"1573:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1558:34:5"},"src":"1549:44:5"},{"documentation":{"id":304,"nodeType":"StructuredDocumentation","src":"1599:173:5","text":" @dev Returns the amount of tokens of token type `id` owned by `account`.\n Requirements:\n - `account` cannot be the zero address."},"functionSelector":"00fdd58e","id":313,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1786:9:5","nodeType":"FunctionDefinition","parameters":{"id":309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":306,"mutability":"mutable","name":"account","nameLocation":"1804:7:5","nodeType":"VariableDeclaration","scope":313,"src":"1796:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":305,"name":"address","nodeType":"ElementaryTypeName","src":"1796:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":308,"mutability":"mutable","name":"id","nameLocation":"1821:2:5","nodeType":"VariableDeclaration","scope":313,"src":"1813:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":307,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1795:29:5"},"returnParameters":{"id":312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":313,"src":"1848:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":310,"name":"uint256","nodeType":"ElementaryTypeName","src":"1848:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1847:9:5"},"scope":375,"src":"1777:80:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":314,"nodeType":"StructuredDocumentation","src":"1863:188:5","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n Requirements:\n - `accounts` and `ids` must have the same length."},"functionSelector":"4e1273f4","id":326,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfBatch","nameLocation":"2065:14:5","nodeType":"FunctionDefinition","parameters":{"id":321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":317,"mutability":"mutable","name":"accounts","nameLocation":"2108:8:5","nodeType":"VariableDeclaration","scope":326,"src":"2089:27:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":315,"name":"address","nodeType":"ElementaryTypeName","src":"2089:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":316,"nodeType":"ArrayTypeName","src":"2089:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":320,"mutability":"mutable","name":"ids","nameLocation":"2145:3:5","nodeType":"VariableDeclaration","scope":326,"src":"2126:22:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":318,"name":"uint256","nodeType":"ElementaryTypeName","src":"2126:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":319,"nodeType":"ArrayTypeName","src":"2126:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2079:75:5"},"returnParameters":{"id":325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":326,"src":"2178:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":322,"name":"uint256","nodeType":"ElementaryTypeName","src":"2178:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":323,"nodeType":"ArrayTypeName","src":"2178:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2177:18:5"},"scope":375,"src":"2056:140:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":327,"nodeType":"StructuredDocumentation","src":"2202:248:5","text":" @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the caller."},"functionSelector":"a22cb465","id":334,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"2464:17:5","nodeType":"FunctionDefinition","parameters":{"id":332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":329,"mutability":"mutable","name":"operator","nameLocation":"2490:8:5","nodeType":"VariableDeclaration","scope":334,"src":"2482:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":328,"name":"address","nodeType":"ElementaryTypeName","src":"2482:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":331,"mutability":"mutable","name":"approved","nameLocation":"2505:8:5","nodeType":"VariableDeclaration","scope":334,"src":"2500:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":330,"name":"bool","nodeType":"ElementaryTypeName","src":"2500:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2481:33:5"},"returnParameters":{"id":333,"nodeType":"ParameterList","parameters":[],"src":"2523:0:5"},"scope":375,"src":"2455:69:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":335,"nodeType":"StructuredDocumentation","src":"2530:135:5","text":" @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n See {setApprovalForAll}."},"functionSelector":"e985e9c5","id":344,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"2679:16:5","nodeType":"FunctionDefinition","parameters":{"id":340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":337,"mutability":"mutable","name":"account","nameLocation":"2704:7:5","nodeType":"VariableDeclaration","scope":344,"src":"2696:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":336,"name":"address","nodeType":"ElementaryTypeName","src":"2696:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":339,"mutability":"mutable","name":"operator","nameLocation":"2721:8:5","nodeType":"VariableDeclaration","scope":344,"src":"2713:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":338,"name":"address","nodeType":"ElementaryTypeName","src":"2713:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2695:35:5"},"returnParameters":{"id":343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":344,"src":"2754:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":341,"name":"bool","nodeType":"ElementaryTypeName","src":"2754:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2753:6:5"},"scope":375,"src":"2670:90:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":345,"nodeType":"StructuredDocumentation","src":"2766:556:5","text":" @dev Transfers `amount` tokens of token type `id` from `from` to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n - `from` must have a balance of tokens of type `id` of at least `amount`.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value."},"functionSelector":"f242432a","id":358,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3336:16:5","nodeType":"FunctionDefinition","parameters":{"id":356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":347,"mutability":"mutable","name":"from","nameLocation":"3361:4:5","nodeType":"VariableDeclaration","scope":358,"src":"3353:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":346,"name":"address","nodeType":"ElementaryTypeName","src":"3353:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":349,"mutability":"mutable","name":"to","nameLocation":"3375:2:5","nodeType":"VariableDeclaration","scope":358,"src":"3367:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":348,"name":"address","nodeType":"ElementaryTypeName","src":"3367:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":351,"mutability":"mutable","name":"id","nameLocation":"3387:2:5","nodeType":"VariableDeclaration","scope":358,"src":"3379:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":350,"name":"uint256","nodeType":"ElementaryTypeName","src":"3379:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":353,"mutability":"mutable","name":"amount","nameLocation":"3399:6:5","nodeType":"VariableDeclaration","scope":358,"src":"3391:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":352,"name":"uint256","nodeType":"ElementaryTypeName","src":"3391:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":355,"mutability":"mutable","name":"data","nameLocation":"3422:4:5","nodeType":"VariableDeclaration","scope":358,"src":"3407:19:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":354,"name":"bytes","nodeType":"ElementaryTypeName","src":"3407:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3352:75:5"},"returnParameters":{"id":357,"nodeType":"ParameterList","parameters":[],"src":"3436:0:5"},"scope":375,"src":"3327:110:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":359,"nodeType":"StructuredDocumentation","src":"3443:390:5","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n Emits a {TransferBatch} event.\n Requirements:\n - `ids` and `amounts` must have the same length.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value."},"functionSelector":"2eb2c2d6","id":374,"implemented":false,"kind":"function","modifiers":[],"name":"safeBatchTransferFrom","nameLocation":"3847:21:5","nodeType":"FunctionDefinition","parameters":{"id":372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":361,"mutability":"mutable","name":"from","nameLocation":"3886:4:5","nodeType":"VariableDeclaration","scope":374,"src":"3878:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":360,"name":"address","nodeType":"ElementaryTypeName","src":"3878:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":363,"mutability":"mutable","name":"to","nameLocation":"3908:2:5","nodeType":"VariableDeclaration","scope":374,"src":"3900:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":362,"name":"address","nodeType":"ElementaryTypeName","src":"3900:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":366,"mutability":"mutable","name":"ids","nameLocation":"3939:3:5","nodeType":"VariableDeclaration","scope":374,"src":"3920:22:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":364,"name":"uint256","nodeType":"ElementaryTypeName","src":"3920:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":365,"nodeType":"ArrayTypeName","src":"3920:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":369,"mutability":"mutable","name":"amounts","nameLocation":"3971:7:5","nodeType":"VariableDeclaration","scope":374,"src":"3952:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":367,"name":"uint256","nodeType":"ElementaryTypeName","src":"3952:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":368,"nodeType":"ArrayTypeName","src":"3952:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":371,"mutability":"mutable","name":"data","nameLocation":"4003:4:5","nodeType":"VariableDeclaration","scope":374,"src":"3988:19:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":370,"name":"bytes","nodeType":"ElementaryTypeName","src":"3988:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3868:145:5"},"returnParameters":{"id":373,"nodeType":"ParameterList","parameters":[],"src":"4022:0:5"},"scope":375,"src":"3838:185:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":376,"src":"350:3675:5","usedErrors":[],"usedEvents":[272,287,296,303]}],"src":"110:3916:5"},"id":5},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[453]},"id":454,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":377,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:6"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":378,"nodeType":"StructuredDocumentation","src":"131:70:6","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":453,"linearizedBaseContracts":[453],"name":"IERC20","nameLocation":"212:6:6","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":379,"nodeType":"StructuredDocumentation","src":"225:158:6","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":387,"name":"Transfer","nameLocation":"394:8:6","nodeType":"EventDefinition","parameters":{"id":386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":381,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:6","nodeType":"VariableDeclaration","scope":387,"src":"403:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":380,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":383,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:6","nodeType":"VariableDeclaration","scope":387,"src":"425:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":382,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":385,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:6","nodeType":"VariableDeclaration","scope":387,"src":"445:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":384,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:6"},"src":"388:72:6"},{"anonymous":false,"documentation":{"id":388,"nodeType":"StructuredDocumentation","src":"466:148:6","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":396,"name":"Approval","nameLocation":"625:8:6","nodeType":"EventDefinition","parameters":{"id":395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":390,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:6","nodeType":"VariableDeclaration","scope":396,"src":"634:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":389,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":392,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:6","nodeType":"VariableDeclaration","scope":396,"src":"657:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":391,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":394,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:6","nodeType":"VariableDeclaration","scope":396,"src":"682:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":393,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:6"},"src":"619:78:6"},{"documentation":{"id":397,"nodeType":"StructuredDocumentation","src":"703:66:6","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":402,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:6","nodeType":"FunctionDefinition","parameters":{"id":398,"nodeType":"ParameterList","parameters":[],"src":"794:2:6"},"returnParameters":{"id":401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":400,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":402,"src":"820:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":399,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:6"},"scope":453,"src":"774:55:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":403,"nodeType":"StructuredDocumentation","src":"835:72:6","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":410,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:6","nodeType":"FunctionDefinition","parameters":{"id":406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":405,"mutability":"mutable","name":"account","nameLocation":"939:7:6","nodeType":"VariableDeclaration","scope":410,"src":"931:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":404,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:6"},"returnParameters":{"id":409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":410,"src":"971:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":407,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:6"},"scope":453,"src":"912:68:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":411,"nodeType":"StructuredDocumentation","src":"986:202:6","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":420,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:6","nodeType":"FunctionDefinition","parameters":{"id":416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":413,"mutability":"mutable","name":"to","nameLocation":"1219:2:6","nodeType":"VariableDeclaration","scope":420,"src":"1211:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":412,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":415,"mutability":"mutable","name":"amount","nameLocation":"1231:6:6","nodeType":"VariableDeclaration","scope":420,"src":"1223:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":414,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:6"},"returnParameters":{"id":419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":420,"src":"1257:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":417,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:6"},"scope":453,"src":"1193:70:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":421,"nodeType":"StructuredDocumentation","src":"1269:264:6","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":430,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:6","nodeType":"FunctionDefinition","parameters":{"id":426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":423,"mutability":"mutable","name":"owner","nameLocation":"1565:5:6","nodeType":"VariableDeclaration","scope":430,"src":"1557:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":422,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":425,"mutability":"mutable","name":"spender","nameLocation":"1580:7:6","nodeType":"VariableDeclaration","scope":430,"src":"1572:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":424,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:6"},"returnParameters":{"id":429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":428,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":430,"src":"1612:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":427,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:6"},"scope":453,"src":"1538:83:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":431,"nodeType":"StructuredDocumentation","src":"1627:642:6","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":440,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:6","nodeType":"FunctionDefinition","parameters":{"id":436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":433,"mutability":"mutable","name":"spender","nameLocation":"2299:7:6","nodeType":"VariableDeclaration","scope":440,"src":"2291:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":432,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":435,"mutability":"mutable","name":"amount","nameLocation":"2316:6:6","nodeType":"VariableDeclaration","scope":440,"src":"2308:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":434,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:6"},"returnParameters":{"id":439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":440,"src":"2342:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":437,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:6"},"scope":453,"src":"2274:74:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":441,"nodeType":"StructuredDocumentation","src":"2354:287:6","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":452,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:6","nodeType":"FunctionDefinition","parameters":{"id":448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":443,"mutability":"mutable","name":"from","nameLocation":"2676:4:6","nodeType":"VariableDeclaration","scope":452,"src":"2668:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":442,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":445,"mutability":"mutable","name":"to","nameLocation":"2690:2:6","nodeType":"VariableDeclaration","scope":452,"src":"2682:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":444,"name":"address","nodeType":"ElementaryTypeName","src":"2682:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":447,"mutability":"mutable","name":"amount","nameLocation":"2702:6:6","nodeType":"VariableDeclaration","scope":452,"src":"2694:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":446,"name":"uint256","nodeType":"ElementaryTypeName","src":"2694:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:42:6"},"returnParameters":{"id":451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":452,"src":"2728:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":449,"name":"bool","nodeType":"ElementaryTypeName","src":"2728:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2727:6:6"},"scope":453,"src":"2646:88:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":454,"src":"202:2534:6","usedErrors":[],"usedEvents":[387,396]}],"src":"106:2631:6"},"id":6},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[489]},"id":490,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":455,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"123:23:7"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":456,"nodeType":"StructuredDocumentation","src":"148:1963:7","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all.\n ==== Security Considerations\n There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n considered as an intention to spend the allowance in any specific way. The second is that because permits have\n built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n generally recommended is:\n ```solidity\n function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n     doThing(..., value);\n }\n function doThing(..., uint256 value) public {\n     token.safeTransferFrom(msg.sender, address(this), value);\n     ...\n }\n ```\n Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n {SafeERC20-safeTransferFrom}).\n Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n contracts should have entry points that don't rely on permit."},"fullyImplemented":false,"id":489,"linearizedBaseContracts":[489],"name":"IERC20Permit","nameLocation":"2122:12:7","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":457,"nodeType":"StructuredDocumentation","src":"2141:850:7","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section].\n CAUTION: See Security Considerations above."},"functionSelector":"d505accf","id":474,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"3005:6:7","nodeType":"FunctionDefinition","parameters":{"id":472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":459,"mutability":"mutable","name":"owner","nameLocation":"3029:5:7","nodeType":"VariableDeclaration","scope":474,"src":"3021:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":458,"name":"address","nodeType":"ElementaryTypeName","src":"3021:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":461,"mutability":"mutable","name":"spender","nameLocation":"3052:7:7","nodeType":"VariableDeclaration","scope":474,"src":"3044:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":460,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":463,"mutability":"mutable","name":"value","nameLocation":"3077:5:7","nodeType":"VariableDeclaration","scope":474,"src":"3069:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":462,"name":"uint256","nodeType":"ElementaryTypeName","src":"3069:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":465,"mutability":"mutable","name":"deadline","nameLocation":"3100:8:7","nodeType":"VariableDeclaration","scope":474,"src":"3092:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":464,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":467,"mutability":"mutable","name":"v","nameLocation":"3124:1:7","nodeType":"VariableDeclaration","scope":474,"src":"3118:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":466,"name":"uint8","nodeType":"ElementaryTypeName","src":"3118:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":469,"mutability":"mutable","name":"r","nameLocation":"3143:1:7","nodeType":"VariableDeclaration","scope":474,"src":"3135:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":468,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3135:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":471,"mutability":"mutable","name":"s","nameLocation":"3162:1:7","nodeType":"VariableDeclaration","scope":474,"src":"3154:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":470,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3154:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3011:158:7"},"returnParameters":{"id":473,"nodeType":"ParameterList","parameters":[],"src":"3178:0:7"},"scope":489,"src":"2996:183:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":475,"nodeType":"StructuredDocumentation","src":"3185:294:7","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":482,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"3493:6:7","nodeType":"FunctionDefinition","parameters":{"id":478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":477,"mutability":"mutable","name":"owner","nameLocation":"3508:5:7","nodeType":"VariableDeclaration","scope":482,"src":"3500:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":476,"name":"address","nodeType":"ElementaryTypeName","src":"3500:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3499:15:7"},"returnParameters":{"id":481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":480,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":482,"src":"3538:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":479,"name":"uint256","nodeType":"ElementaryTypeName","src":"3538:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3537:9:7"},"scope":489,"src":"3484:63:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":483,"nodeType":"StructuredDocumentation","src":"3553:128:7","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":488,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"3748:16:7","nodeType":"FunctionDefinition","parameters":{"id":484,"nodeType":"ParameterList","parameters":[],"src":"3764:2:7"},"returnParameters":{"id":487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":488,"src":"3790:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3790:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3789:9:7"},"scope":489,"src":"3739:60:7","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":490,"src":"2112:1689:7","usedErrors":[],"usedEvents":[]}],"src":"123:3679:7"},"id":7},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[2481],"IERC20":[453],"IERC20Permit":[489],"SafeERC20":[865]},"id":866,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":491,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:8"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":492,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":866,"sourceUnit":454,"src":"140:23:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol","file":"../extensions/IERC20Permit.sol","id":493,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":866,"sourceUnit":490,"src":"164:40:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":494,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":866,"sourceUnit":2482,"src":"205:36:8","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":495,"nodeType":"StructuredDocumentation","src":"243:457:8","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":865,"linearizedBaseContracts":[865],"name":"SafeERC20","nameLocation":"709:9:8","nodeType":"ContractDefinition","nodes":[{"global":false,"id":498,"libraryName":{"id":496,"name":"Address","nameLocations":["731:7:8"],"nodeType":"IdentifierPath","referencedDeclaration":2481,"src":"731:7:8"},"nodeType":"UsingForDirective","src":"725:26:8","typeName":{"id":497,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":521,"nodeType":"Block","src":"1013:103:8","statements":[{"expression":{"arguments":[{"id":510,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"1043:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":513,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"1073:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:8:8","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":420,"src":"1073:14:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1088:8:8","memberName":"selector","nodeType":"MemberAccess","src":"1073:23:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":516,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"1098:2:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":517,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"1102:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":511,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1050:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1054:18:8","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1050:22:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:58:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":509,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":816,"src":"1023:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$453_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:86:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":520,"nodeType":"ExpressionStatement","src":"1023:86:8"}]},"documentation":{"id":499,"nodeType":"StructuredDocumentation","src":"757:179:8","text":" @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":522,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"950:12:8","nodeType":"FunctionDefinition","parameters":{"id":507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":502,"mutability":"mutable","name":"token","nameLocation":"970:5:8","nodeType":"VariableDeclaration","scope":522,"src":"963:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},"typeName":{"id":501,"nodeType":"UserDefinedTypeName","pathNode":{"id":500,"name":"IERC20","nameLocations":["963:6:8"],"nodeType":"IdentifierPath","referencedDeclaration":453,"src":"963:6:8"},"referencedDeclaration":453,"src":"963:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":504,"mutability":"mutable","name":"to","nameLocation":"985:2:8","nodeType":"VariableDeclaration","scope":522,"src":"977:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":503,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":506,"mutability":"mutable","name":"value","nameLocation":"997:5:8","nodeType":"VariableDeclaration","scope":522,"src":"989:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":505,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"962:41:8"},"returnParameters":{"id":508,"nodeType":"ParameterList","parameters":[],"src":"1013:0:8"},"scope":865,"src":"941:175:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":548,"nodeType":"Block","src":"1445:113:8","statements":[{"expression":{"arguments":[{"id":536,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":526,"src":"1475:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":539,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":526,"src":"1505:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1511:12:8","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":452,"src":"1505:18:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1524:8:8","memberName":"selector","nodeType":"MemberAccess","src":"1505:27:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":542,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":528,"src":"1534:4:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":543,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"1540:2:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":544,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"1544:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":537,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1482:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1486:18:8","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1482:22:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:68:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":535,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":816,"src":"1455:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$453_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1455:96:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":547,"nodeType":"ExpressionStatement","src":"1455:96:8"}]},"documentation":{"id":523,"nodeType":"StructuredDocumentation","src":"1122:228:8","text":" @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."},"id":549,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1364:16:8","nodeType":"FunctionDefinition","parameters":{"id":533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":526,"mutability":"mutable","name":"token","nameLocation":"1388:5:8","nodeType":"VariableDeclaration","scope":549,"src":"1381:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},"typeName":{"id":525,"nodeType":"UserDefinedTypeName","pathNode":{"id":524,"name":"IERC20","nameLocations":["1381:6:8"],"nodeType":"IdentifierPath","referencedDeclaration":453,"src":"1381:6:8"},"referencedDeclaration":453,"src":"1381:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":528,"mutability":"mutable","name":"from","nameLocation":"1403:4:8","nodeType":"VariableDeclaration","scope":549,"src":"1395:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":527,"name":"address","nodeType":"ElementaryTypeName","src":"1395:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":530,"mutability":"mutable","name":"to","nameLocation":"1417:2:8","nodeType":"VariableDeclaration","scope":549,"src":"1409:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":529,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":532,"mutability":"mutable","name":"value","nameLocation":"1429:5:8","nodeType":"VariableDeclaration","scope":549,"src":"1421:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":531,"name":"uint256","nodeType":"ElementaryTypeName","src":"1421:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1380:55:8"},"returnParameters":{"id":534,"nodeType":"ParameterList","parameters":[],"src":"1445:0:8"},"scope":865,"src":"1355:203:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":592,"nodeType":"Block","src":"1894:497:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":561,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"2143:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2152:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2143:10:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":564,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2142:12:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":569,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2183:4:8","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$865","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$865","typeString":"library SafeERC20"}],"id":568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2175:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":567,"name":"address","nodeType":"ElementaryTypeName","src":"2175:7:8","typeDescriptions":{}}},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2175:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":571,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":555,"src":"2190:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":565,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":553,"src":"2159:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2165:9:8","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":430,"src":"2159:15:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2159:39:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2159:44:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":575,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2158:46:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2142:62:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2218:56:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":560,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2121:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:163:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":579,"nodeType":"ExpressionStatement","src":"2121:163:8"},{"expression":{"arguments":[{"id":581,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":553,"src":"2314:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":584,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":553,"src":"2344:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2350:7:8","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":440,"src":"2344:13:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2358:8:8","memberName":"selector","nodeType":"MemberAccess","src":"2344:22:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":587,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":555,"src":"2368:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":588,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"2377:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":582,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2321:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2325:18:8","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2321:22:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2321:62:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":580,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":816,"src":"2294:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$453_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2294:90:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":591,"nodeType":"ExpressionStatement","src":"2294:90:8"}]},"documentation":{"id":550,"nodeType":"StructuredDocumentation","src":"1564:249:8","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":593,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1827:11:8","nodeType":"FunctionDefinition","parameters":{"id":558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":553,"mutability":"mutable","name":"token","nameLocation":"1846:5:8","nodeType":"VariableDeclaration","scope":593,"src":"1839:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},"typeName":{"id":552,"nodeType":"UserDefinedTypeName","pathNode":{"id":551,"name":"IERC20","nameLocations":["1839:6:8"],"nodeType":"IdentifierPath","referencedDeclaration":453,"src":"1839:6:8"},"referencedDeclaration":453,"src":"1839:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":555,"mutability":"mutable","name":"spender","nameLocation":"1861:7:8","nodeType":"VariableDeclaration","scope":593,"src":"1853:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":554,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":557,"mutability":"mutable","name":"value","nameLocation":"1878:5:8","nodeType":"VariableDeclaration","scope":593,"src":"1870:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":556,"name":"uint256","nodeType":"ElementaryTypeName","src":"1870:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:46:8"},"returnParameters":{"id":559,"nodeType":"ParameterList","parameters":[],"src":"1894:0:8"},"scope":865,"src":"1818:573:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":629,"nodeType":"Block","src":"2668:194:8","statements":[{"assignments":[605],"declarations":[{"constant":false,"id":605,"mutability":"mutable","name":"oldAllowance","nameLocation":"2686:12:8","nodeType":"VariableDeclaration","scope":629,"src":"2678:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":604,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":614,"initialValue":{"arguments":[{"arguments":[{"id":610,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2725:4:8","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$865","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$865","typeString":"library SafeERC20"}],"id":609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2717:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":608,"name":"address","nodeType":"ElementaryTypeName","src":"2717:7:8","typeDescriptions":{}}},"id":611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2717:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":612,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"2732:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":606,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"2701:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2707:9:8","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":430,"src":"2701:15:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2701:39:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2678:62:8"},{"expression":{"arguments":[{"id":616,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"2770:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":619,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"2800:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:7:8","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":440,"src":"2800:13:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2814:8:8","memberName":"selector","nodeType":"MemberAccess","src":"2800:22:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":622,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"2824:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":623,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":605,"src":"2833:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":624,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":601,"src":"2848:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2833:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":617,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2777:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2781:18:8","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2777:22:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2777:77:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":615,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":816,"src":"2750:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$453_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:105:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":628,"nodeType":"ExpressionStatement","src":"2750:105:8"}]},"documentation":{"id":594,"nodeType":"StructuredDocumentation","src":"2397:180:8","text":" @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":630,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2591:21:8","nodeType":"FunctionDefinition","parameters":{"id":602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":597,"mutability":"mutable","name":"token","nameLocation":"2620:5:8","nodeType":"VariableDeclaration","scope":630,"src":"2613:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},"typeName":{"id":596,"nodeType":"UserDefinedTypeName","pathNode":{"id":595,"name":"IERC20","nameLocations":["2613:6:8"],"nodeType":"IdentifierPath","referencedDeclaration":453,"src":"2613:6:8"},"referencedDeclaration":453,"src":"2613:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":599,"mutability":"mutable","name":"spender","nameLocation":"2635:7:8","nodeType":"VariableDeclaration","scope":630,"src":"2627:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":598,"name":"address","nodeType":"ElementaryTypeName","src":"2627:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":601,"mutability":"mutable","name":"value","nameLocation":"2652:5:8","nodeType":"VariableDeclaration","scope":630,"src":"2644:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":600,"name":"uint256","nodeType":"ElementaryTypeName","src":"2644:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2612:46:8"},"returnParameters":{"id":603,"nodeType":"ParameterList","parameters":[],"src":"2668:0:8"},"scope":865,"src":"2582:280:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":674,"nodeType":"Block","src":"3139:321:8","statements":[{"id":673,"nodeType":"UncheckedBlock","src":"3149:305:8","statements":[{"assignments":[642],"declarations":[{"constant":false,"id":642,"mutability":"mutable","name":"oldAllowance","nameLocation":"3181:12:8","nodeType":"VariableDeclaration","scope":673,"src":"3173:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":641,"name":"uint256","nodeType":"ElementaryTypeName","src":"3173:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":651,"initialValue":{"arguments":[{"arguments":[{"id":647,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3220:4:8","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$865","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$865","typeString":"library SafeERC20"}],"id":646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3212:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":645,"name":"address","nodeType":"ElementaryTypeName","src":"3212:7:8","typeDescriptions":{}}},"id":648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":649,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":636,"src":"3227:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":643,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"3196:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3202:9:8","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":430,"src":"3196:15:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3196:39:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3173:62:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":653,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"3257:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":654,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"3273:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3257:21:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3280:43:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3249:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3249:75:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":658,"nodeType":"ExpressionStatement","src":"3249:75:8"},{"expression":{"arguments":[{"id":660,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"3358:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":663,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":634,"src":"3388:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:7:8","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":440,"src":"3388:13:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3402:8:8","memberName":"selector","nodeType":"MemberAccess","src":"3388:22:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":666,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":636,"src":"3412:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":667,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"3421:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":668,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"3436:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3421:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":661,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3365:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3369:18:8","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3365:22:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3365:77:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":659,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":816,"src":"3338:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$453_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:105:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":672,"nodeType":"ExpressionStatement","src":"3338:105:8"}]}]},"documentation":{"id":631,"nodeType":"StructuredDocumentation","src":"2868:180:8","text":" @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"id":675,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"3062:21:8","nodeType":"FunctionDefinition","parameters":{"id":639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":634,"mutability":"mutable","name":"token","nameLocation":"3091:5:8","nodeType":"VariableDeclaration","scope":675,"src":"3084:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},"typeName":{"id":633,"nodeType":"UserDefinedTypeName","pathNode":{"id":632,"name":"IERC20","nameLocations":["3084:6:8"],"nodeType":"IdentifierPath","referencedDeclaration":453,"src":"3084:6:8"},"referencedDeclaration":453,"src":"3084:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":636,"mutability":"mutable","name":"spender","nameLocation":"3106:7:8","nodeType":"VariableDeclaration","scope":675,"src":"3098:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":635,"name":"address","nodeType":"ElementaryTypeName","src":"3098:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":638,"mutability":"mutable","name":"value","nameLocation":"3123:5:8","nodeType":"VariableDeclaration","scope":675,"src":"3115:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":637,"name":"uint256","nodeType":"ElementaryTypeName","src":"3115:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3083:46:8"},"returnParameters":{"id":640,"nodeType":"ParameterList","parameters":[],"src":"3139:0:8"},"scope":865,"src":"3053:407:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":721,"nodeType":"Block","src":"3856:333:8","statements":[{"assignments":[687],"declarations":[{"constant":false,"id":687,"mutability":"mutable","name":"approvalCall","nameLocation":"3879:12:8","nodeType":"VariableDeclaration","scope":721,"src":"3866:25:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":686,"name":"bytes","nodeType":"ElementaryTypeName","src":"3866:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":696,"initialValue":{"arguments":[{"expression":{"expression":{"id":690,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"3917:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3923:7:8","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":440,"src":"3917:13:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3931:8:8","memberName":"selector","nodeType":"MemberAccess","src":"3917:22:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":693,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":681,"src":"3941:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":694,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"3950:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":688,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3894:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3898:18:8","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3894:22:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:62:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3866:90:8"},{"condition":{"id":701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3971:45:8","subExpression":{"arguments":[{"id":698,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"3996:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},{"id":699,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"4003:12:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":697,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":864,"src":"3972:23:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$453_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3972:44:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":720,"nodeType":"IfStatement","src":"3967:216:8","trueBody":{"id":719,"nodeType":"Block","src":"4018:165:8","statements":[{"expression":{"arguments":[{"id":703,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"4052:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":706,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"4082:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4088:7:8","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":440,"src":"4082:13:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4096:8:8","memberName":"selector","nodeType":"MemberAccess","src":"4082:22:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":709,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":681,"src":"4106:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4115:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":704,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4059:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4063:18:8","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4059:22:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4059:58:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":702,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":816,"src":"4032:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$453_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:86:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":713,"nodeType":"ExpressionStatement","src":"4032:86:8"},{"expression":{"arguments":[{"id":715,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"4152:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},{"id":716,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"4159:12:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":714,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":816,"src":"4132:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$453_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4132:40:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":718,"nodeType":"ExpressionStatement","src":"4132:40:8"}]}}]},"documentation":{"id":676,"nodeType":"StructuredDocumentation","src":"3466:308:8","text":" @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n to be set to zero before setting it to a non-zero value, such as USDT."},"id":722,"implemented":true,"kind":"function","modifiers":[],"name":"forceApprove","nameLocation":"3788:12:8","nodeType":"FunctionDefinition","parameters":{"id":684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":679,"mutability":"mutable","name":"token","nameLocation":"3808:5:8","nodeType":"VariableDeclaration","scope":722,"src":"3801:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},"typeName":{"id":678,"nodeType":"UserDefinedTypeName","pathNode":{"id":677,"name":"IERC20","nameLocations":["3801:6:8"],"nodeType":"IdentifierPath","referencedDeclaration":453,"src":"3801:6:8"},"referencedDeclaration":453,"src":"3801:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":681,"mutability":"mutable","name":"spender","nameLocation":"3823:7:8","nodeType":"VariableDeclaration","scope":722,"src":"3815:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":680,"name":"address","nodeType":"ElementaryTypeName","src":"3815:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":683,"mutability":"mutable","name":"value","nameLocation":"3840:5:8","nodeType":"VariableDeclaration","scope":722,"src":"3832:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":682,"name":"uint256","nodeType":"ElementaryTypeName","src":"3832:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3800:46:8"},"returnParameters":{"id":685,"nodeType":"ParameterList","parameters":[],"src":"3856:0:8"},"scope":865,"src":"3779:410:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":778,"nodeType":"Block","src":"4556:257:8","statements":[{"assignments":[744],"declarations":[{"constant":false,"id":744,"mutability":"mutable","name":"nonceBefore","nameLocation":"4574:11:8","nodeType":"VariableDeclaration","scope":778,"src":"4566:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":743,"name":"uint256","nodeType":"ElementaryTypeName","src":"4566:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":749,"initialValue":{"arguments":[{"id":747,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"4601:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":745,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":726,"src":"4588:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$489","typeString":"contract IERC20Permit"}},"id":746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4594:6:8","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":482,"src":"4588:12:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4566:41:8"},{"expression":{"arguments":[{"id":753,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"4630:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":754,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":730,"src":"4637:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":755,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"4646:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":756,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":734,"src":"4653:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":757,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"4663:1:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":758,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":738,"src":"4666:1:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":759,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":740,"src":"4669:1:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":750,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":726,"src":"4617:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$489","typeString":"contract IERC20Permit"}},"id":752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4623:6:8","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":474,"src":"4617:12:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4617:54:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":761,"nodeType":"ExpressionStatement","src":"4617:54:8"},{"assignments":[763],"declarations":[{"constant":false,"id":763,"mutability":"mutable","name":"nonceAfter","nameLocation":"4689:10:8","nodeType":"VariableDeclaration","scope":778,"src":"4681:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":762,"name":"uint256","nodeType":"ElementaryTypeName","src":"4681:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":768,"initialValue":{"arguments":[{"id":766,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"4715:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":764,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":726,"src":"4702:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$489","typeString":"contract IERC20Permit"}},"id":765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4708:6:8","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":482,"src":"4702:12:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4702:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4681:40:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":770,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":763,"src":"4739:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":771,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":744,"src":"4753:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4767:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4753:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4739:29:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4770:35:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":769,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4731:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4731:75:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":777,"nodeType":"ExpressionStatement","src":"4731:75:8"}]},"documentation":{"id":723,"nodeType":"StructuredDocumentation","src":"4195:141:8","text":" @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n Revert on invalid signature."},"id":779,"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"4350:10:8","nodeType":"FunctionDefinition","parameters":{"id":741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":726,"mutability":"mutable","name":"token","nameLocation":"4383:5:8","nodeType":"VariableDeclaration","scope":779,"src":"4370:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$489","typeString":"contract IERC20Permit"},"typeName":{"id":725,"nodeType":"UserDefinedTypeName","pathNode":{"id":724,"name":"IERC20Permit","nameLocations":["4370:12:8"],"nodeType":"IdentifierPath","referencedDeclaration":489,"src":"4370:12:8"},"referencedDeclaration":489,"src":"4370:12:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$489","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":728,"mutability":"mutable","name":"owner","nameLocation":"4406:5:8","nodeType":"VariableDeclaration","scope":779,"src":"4398:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":727,"name":"address","nodeType":"ElementaryTypeName","src":"4398:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":730,"mutability":"mutable","name":"spender","nameLocation":"4429:7:8","nodeType":"VariableDeclaration","scope":779,"src":"4421:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":729,"name":"address","nodeType":"ElementaryTypeName","src":"4421:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":732,"mutability":"mutable","name":"value","nameLocation":"4454:5:8","nodeType":"VariableDeclaration","scope":779,"src":"4446:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":731,"name":"uint256","nodeType":"ElementaryTypeName","src":"4446:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":734,"mutability":"mutable","name":"deadline","nameLocation":"4477:8:8","nodeType":"VariableDeclaration","scope":779,"src":"4469:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":733,"name":"uint256","nodeType":"ElementaryTypeName","src":"4469:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":736,"mutability":"mutable","name":"v","nameLocation":"4501:1:8","nodeType":"VariableDeclaration","scope":779,"src":"4495:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":735,"name":"uint8","nodeType":"ElementaryTypeName","src":"4495:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":738,"mutability":"mutable","name":"r","nameLocation":"4520:1:8","nodeType":"VariableDeclaration","scope":779,"src":"4512:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4512:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":740,"mutability":"mutable","name":"s","nameLocation":"4539:1:8","nodeType":"VariableDeclaration","scope":779,"src":"4531:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4531:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4360:186:8"},"returnParameters":{"id":742,"nodeType":"ParameterList","parameters":[],"src":"4556:0:8"},"scope":865,"src":"4341:472:8","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":815,"nodeType":"Block","src":"5266:572:8","statements":[{"assignments":[789],"declarations":[{"constant":false,"id":789,"mutability":"mutable","name":"returndata","nameLocation":"5628:10:8","nodeType":"VariableDeclaration","scope":815,"src":"5615:23:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":788,"name":"bytes","nodeType":"ElementaryTypeName","src":"5615:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":798,"initialValue":{"arguments":[{"id":795,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"5669:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:34:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":792,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":783,"src":"5649:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}],"id":791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5641:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":790,"name":"address","nodeType":"ElementaryTypeName","src":"5641:7:8","typeDescriptions":{}}},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5656:12:8","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":2241,"src":"5641:27:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:69:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5615:95:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":800,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"5728:10:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5739:6:8","memberName":"length","nodeType":"MemberAccess","src":"5728:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5749:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5728:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":806,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"5765:10:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5778:4:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":807,"name":"bool","nodeType":"ElementaryTypeName","src":"5778:4:8","typeDescriptions":{}}}],"id":809,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5777:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":804,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5754:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5758:6:8","memberName":"decode","nodeType":"MemberAccess","src":"5754:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5754:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5728:56:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5786:44:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":799,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5720:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5720:111:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":814,"nodeType":"ExpressionStatement","src":"5720:111:8"}]},"documentation":{"id":780,"nodeType":"StructuredDocumentation","src":"4819:372:8","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":816,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"5205:19:8","nodeType":"FunctionDefinition","parameters":{"id":786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":783,"mutability":"mutable","name":"token","nameLocation":"5232:5:8","nodeType":"VariableDeclaration","scope":816,"src":"5225:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},"typeName":{"id":782,"nodeType":"UserDefinedTypeName","pathNode":{"id":781,"name":"IERC20","nameLocations":["5225:6:8"],"nodeType":"IdentifierPath","referencedDeclaration":453,"src":"5225:6:8"},"referencedDeclaration":453,"src":"5225:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":785,"mutability":"mutable","name":"data","nameLocation":"5252:4:8","nodeType":"VariableDeclaration","scope":816,"src":"5239:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":784,"name":"bytes","nodeType":"ElementaryTypeName","src":"5239:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5224:33:8"},"returnParameters":{"id":787,"nodeType":"ParameterList","parameters":[],"src":"5266:0:8"},"scope":865,"src":"5196:642:8","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":863,"nodeType":"Block","src":"6428:505:8","statements":[{"assignments":[828,830],"declarations":[{"constant":false,"id":828,"mutability":"mutable","name":"success","nameLocation":"6729:7:8","nodeType":"VariableDeclaration","scope":863,"src":"6724:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":827,"name":"bool","nodeType":"ElementaryTypeName","src":"6724:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":830,"mutability":"mutable","name":"returndata","nameLocation":"6751:10:8","nodeType":"VariableDeclaration","scope":863,"src":"6738:23:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":829,"name":"bytes","nodeType":"ElementaryTypeName","src":"6738:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":838,"initialValue":{"arguments":[{"id":836,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":822,"src":"6785:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":833,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"6773:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}],"id":832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6765:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":831,"name":"address","nodeType":"ElementaryTypeName","src":"6765:7:8","typeDescriptions":{}}},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6780:4:8","memberName":"call","nodeType":"MemberAccess","src":"6765:19:8","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6723:67:8"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":839,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":828,"src":"6819:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":840,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":830,"src":"6831:10:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6842:6:8","memberName":"length","nodeType":"MemberAccess","src":"6831:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6852:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6831:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":846,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":830,"src":"6868:10:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6881:4:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":847,"name":"bool","nodeType":"ElementaryTypeName","src":"6881:4:8","typeDescriptions":{}}}],"id":849,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6880:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":844,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6857:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6861:6:8","memberName":"decode","nodeType":"MemberAccess","src":"6857:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6857:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6831:56:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":852,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6830:58:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:69:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"arguments":[{"id":858,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"6919:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}],"id":857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6911:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":856,"name":"address","nodeType":"ElementaryTypeName","src":"6911:7:8","typeDescriptions":{}}},"id":859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":854,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"6892:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$2481_$","typeString":"type(library Address)"}},"id":855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6900:10:8","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":2169,"src":"6892:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6892:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:107:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":826,"id":862,"nodeType":"Return","src":"6800:126:8"}]},"documentation":{"id":817,"nodeType":"StructuredDocumentation","src":"5844:490:8","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead."},"id":864,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturnBool","nameLocation":"6348:23:8","nodeType":"FunctionDefinition","parameters":{"id":823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":820,"mutability":"mutable","name":"token","nameLocation":"6379:5:8","nodeType":"VariableDeclaration","scope":864,"src":"6372:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"},"typeName":{"id":819,"nodeType":"UserDefinedTypeName","pathNode":{"id":818,"name":"IERC20","nameLocations":["6372:6:8"],"nodeType":"IdentifierPath","referencedDeclaration":453,"src":"6372:6:8"},"referencedDeclaration":453,"src":"6372:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":822,"mutability":"mutable","name":"data","nameLocation":"6399:4:8","nodeType":"VariableDeclaration","scope":864,"src":"6386:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":821,"name":"bytes","nodeType":"ElementaryTypeName","src":"6386:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6371:33:8"},"returnParameters":{"id":826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":864,"src":"6422:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":824,"name":"bool","nodeType":"ElementaryTypeName","src":"6422:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6421:6:8"},"scope":865,"src":"6339:594:8","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":866,"src":"701:6234:8","usedErrors":[],"usedEvents":[]}],"src":"115:6821:8"},"id":8},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Address":[2481],"Context":[2511],"ERC165":[3833],"ERC721":[1792],"IERC165":[3845],"IERC721":[1908],"IERC721Metadata":[1953],"IERC721Receiver":[1926],"Math":[4711],"SignedMath":[4816],"Strings":[3140]},"id":1793,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":867,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:9"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":868,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1793,"sourceUnit":1909,"src":"132:23:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"./IERC721Receiver.sol","id":869,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1793,"sourceUnit":1927,"src":"156:31:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":870,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1793,"sourceUnit":1954,"src":"188:42:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":871,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1793,"sourceUnit":2482,"src":"231:33:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":872,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1793,"sourceUnit":2512,"src":"265:33:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":873,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1793,"sourceUnit":3141,"src":"299:33:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":874,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1793,"sourceUnit":3834,"src":"333:46:9","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":876,"name":"Context","nameLocations":["647:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":2511,"src":"647:7:9"},"id":877,"nodeType":"InheritanceSpecifier","src":"647:7:9"},{"baseName":{"id":878,"name":"ERC165","nameLocations":["656:6:9"],"nodeType":"IdentifierPath","referencedDeclaration":3833,"src":"656:6:9"},"id":879,"nodeType":"InheritanceSpecifier","src":"656:6:9"},{"baseName":{"id":880,"name":"IERC721","nameLocations":["664:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":1908,"src":"664:7:9"},"id":881,"nodeType":"InheritanceSpecifier","src":"664:7:9"},{"baseName":{"id":882,"name":"IERC721Metadata","nameLocations":["673:15:9"],"nodeType":"IdentifierPath","referencedDeclaration":1953,"src":"673:15:9"},"id":883,"nodeType":"InheritanceSpecifier","src":"673:15:9"}],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":875,"nodeType":"StructuredDocumentation","src":"381:246:9","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":1792,"linearizedBaseContracts":[1792,1953,1908,3833,3845,2511],"name":"ERC721","nameLocation":"637:6:9","nodeType":"ContractDefinition","nodes":[{"global":false,"id":886,"libraryName":{"id":884,"name":"Address","nameLocations":["701:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":2481,"src":"701:7:9"},"nodeType":"UsingForDirective","src":"695:26:9","typeName":{"id":885,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":889,"libraryName":{"id":887,"name":"Strings","nameLocations":["732:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":3140,"src":"732:7:9"},"nodeType":"UsingForDirective","src":"726:26:9","typeName":{"id":888,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":891,"mutability":"mutable","name":"_name","nameLocation":"791:5:9","nodeType":"VariableDeclaration","scope":1792,"src":"776:20:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":890,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":893,"mutability":"mutable","name":"_symbol","nameLocation":"838:7:9","nodeType":"VariableDeclaration","scope":1792,"src":"823:22:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":892,"name":"string","nodeType":"ElementaryTypeName","src":"823:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":897,"mutability":"mutable","name":"_owners","nameLocation":"934:7:9","nodeType":"VariableDeclaration","scope":1792,"src":"898:43:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":896,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":894,"name":"uint256","nodeType":"ElementaryTypeName","src":"906:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"898:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":895,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":901,"mutability":"mutable","name":"_balances","nameLocation":"1028:9:9","nodeType":"VariableDeclaration","scope":1792,"src":"992:45:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":900,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":898,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"992:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":899,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":905,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1129:15:9","nodeType":"VariableDeclaration","scope":1792,"src":"1093:51:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":904,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":902,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1093:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":903,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":911,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1252:18:9","nodeType":"VariableDeclaration","scope":1792,"src":"1199:71:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":910,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":906,"name":"address","nodeType":"ElementaryTypeName","src":"1207:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1199:44:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":909,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":907,"name":"address","nodeType":"ElementaryTypeName","src":"1226:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1218:24:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":908,"name":"bool","nodeType":"ElementaryTypeName","src":"1237:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":927,"nodeType":"Block","src":"1446:57:9","statements":[{"expression":{"id":921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":919,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"1456:5:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":920,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":914,"src":"1464:5:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1456:13:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":922,"nodeType":"ExpressionStatement","src":"1456:13:9"},{"expression":{"id":925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":923,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":893,"src":"1479:7:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":924,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":916,"src":"1489:7:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1479:17:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":926,"nodeType":"ExpressionStatement","src":"1479:17:9"}]},"documentation":{"id":912,"nodeType":"StructuredDocumentation","src":"1277:108:9","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":928,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":914,"mutability":"mutable","name":"name_","nameLocation":"1416:5:9","nodeType":"VariableDeclaration","scope":928,"src":"1402:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":913,"name":"string","nodeType":"ElementaryTypeName","src":"1402:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":916,"mutability":"mutable","name":"symbol_","nameLocation":"1437:7:9","nodeType":"VariableDeclaration","scope":928,"src":"1423:21:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":915,"name":"string","nodeType":"ElementaryTypeName","src":"1423:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1401:44:9"},"returnParameters":{"id":918,"nodeType":"ParameterList","parameters":[],"src":"1446:0:9"},"scope":1792,"src":"1390:113:9","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3832,3844],"body":{"id":958,"nodeType":"Block","src":"1678:192:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":939,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"1707:11:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":941,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"1727:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$1908_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$1908_$","typeString":"type(contract IERC721)"}],"id":940,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1722:4:9","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1722:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$1908","typeString":"type(contract IERC721)"}},"id":943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1736:11:9","memberName":"interfaceId","nodeType":"MemberAccess","src":"1722:25:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1707:40:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":945,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"1763:11:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":947,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1953,"src":"1783:15:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$1953_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$1953_$","typeString":"type(contract IERC721Metadata)"}],"id":946,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1778:4:9","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1778:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$1953","typeString":"type(contract IERC721Metadata)"}},"id":949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1800:11:9","memberName":"interfaceId","nodeType":"MemberAccess","src":"1778:33:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1763:48:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:104:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":954,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":931,"src":"1851:11:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":952,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1827:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$1792_$","typeString":"type(contract super ERC721)"}},"id":953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1833:17:9","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":3832,"src":"1827:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1827:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:156:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":938,"id":957,"nodeType":"Return","src":"1688:175:9"}]},"documentation":{"id":929,"nodeType":"StructuredDocumentation","src":"1509:56:9","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":959,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1579:17:9","nodeType":"FunctionDefinition","overrides":{"id":935,"nodeType":"OverrideSpecifier","overrides":[{"id":933,"name":"ERC165","nameLocations":["1646:6:9"],"nodeType":"IdentifierPath","referencedDeclaration":3833,"src":"1646:6:9"},{"id":934,"name":"IERC165","nameLocations":["1654:7:9"],"nodeType":"IdentifierPath","referencedDeclaration":3845,"src":"1654:7:9"}],"src":"1637:25:9"},"parameters":{"id":932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":931,"mutability":"mutable","name":"interfaceId","nameLocation":"1604:11:9","nodeType":"VariableDeclaration","scope":959,"src":"1597:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":930,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1597:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1596:20:9"},"returnParameters":{"id":938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":937,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":959,"src":"1672:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":936,"name":"bool","nodeType":"ElementaryTypeName","src":"1672:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1671:6:9"},"scope":1792,"src":"1570:300:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1833],"body":{"id":982,"nodeType":"Block","src":"2010:123:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":969,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"2028:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2045:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2037:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":970,"name":"address","nodeType":"ElementaryTypeName","src":"2037:7:9","typeDescriptions":{}}},"id":973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2037:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2028:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572","id":975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2049:43:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""},"value":"ERC721: address zero is not a valid owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""}],"id":968,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2020:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2020:73:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":977,"nodeType":"ExpressionStatement","src":"2020:73:9"},{"expression":{"baseExpression":{"id":978,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"2110:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":980,"indexExpression":{"id":979,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"2120:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2110:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":967,"id":981,"nodeType":"Return","src":"2103:23:9"}]},"documentation":{"id":960,"nodeType":"StructuredDocumentation","src":"1876:48:9","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":983,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1938:9:9","nodeType":"FunctionDefinition","overrides":{"id":964,"nodeType":"OverrideSpecifier","overrides":[],"src":"1983:8:9"},"parameters":{"id":963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":962,"mutability":"mutable","name":"owner","nameLocation":"1956:5:9","nodeType":"VariableDeclaration","scope":983,"src":"1948:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":961,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1947:15:9"},"returnParameters":{"id":967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":983,"src":"2001:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":965,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2000:9:9"},"scope":1792,"src":"1929:204:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1841],"body":{"id":1010,"nodeType":"Block","src":"2271:138:9","statements":[{"assignments":[993],"declarations":[{"constant":false,"id":993,"mutability":"mutable","name":"owner","nameLocation":"2289:5:9","nodeType":"VariableDeclaration","scope":1010,"src":"2281:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":992,"name":"address","nodeType":"ElementaryTypeName","src":"2281:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":997,"initialValue":{"arguments":[{"id":995,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":986,"src":"2306:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":994,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1293,"src":"2297:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2297:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2281:33:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":999,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":993,"src":"2332:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2349:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2341:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1000,"name":"address","nodeType":"ElementaryTypeName","src":"2341:7:9","typeDescriptions":{}}},"id":1003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2341:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2332:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":1005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2353:26:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":998,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2324:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2324:56:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1007,"nodeType":"ExpressionStatement","src":"2324:56:9"},{"expression":{"id":1008,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":993,"src":"2397:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":991,"id":1009,"nodeType":"Return","src":"2390:12:9"}]},"documentation":{"id":984,"nodeType":"StructuredDocumentation","src":"2139:46:9","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":1011,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2199:7:9","nodeType":"FunctionDefinition","overrides":{"id":988,"nodeType":"OverrideSpecifier","overrides":[],"src":"2244:8:9"},"parameters":{"id":987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":986,"mutability":"mutable","name":"tokenId","nameLocation":"2215:7:9","nodeType":"VariableDeclaration","scope":1011,"src":"2207:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":985,"name":"uint256","nodeType":"ElementaryTypeName","src":"2207:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2206:17:9"},"returnParameters":{"id":991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":990,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1011,"src":"2262:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":989,"name":"address","nodeType":"ElementaryTypeName","src":"2262:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2261:9:9"},"scope":1792,"src":"2190:219:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1938],"body":{"id":1020,"nodeType":"Block","src":"2540:29:9","statements":[{"expression":{"id":1018,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":891,"src":"2557:5:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1017,"id":1019,"nodeType":"Return","src":"2550:12:9"}]},"documentation":{"id":1012,"nodeType":"StructuredDocumentation","src":"2415:51:9","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":1021,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2480:4:9","nodeType":"FunctionDefinition","overrides":{"id":1014,"nodeType":"OverrideSpecifier","overrides":[],"src":"2507:8:9"},"parameters":{"id":1013,"nodeType":"ParameterList","parameters":[],"src":"2484:2:9"},"returnParameters":{"id":1017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1021,"src":"2525:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1015,"name":"string","nodeType":"ElementaryTypeName","src":"2525:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2524:15:9"},"scope":1792,"src":"2471:98:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1944],"body":{"id":1030,"nodeType":"Block","src":"2704:31:9","statements":[{"expression":{"id":1028,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":893,"src":"2721:7:9","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1027,"id":1029,"nodeType":"Return","src":"2714:14:9"}]},"documentation":{"id":1022,"nodeType":"StructuredDocumentation","src":"2575:53:9","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":1031,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2642:6:9","nodeType":"FunctionDefinition","overrides":{"id":1024,"nodeType":"OverrideSpecifier","overrides":[],"src":"2671:8:9"},"parameters":{"id":1023,"nodeType":"ParameterList","parameters":[],"src":"2648:2:9"},"returnParameters":{"id":1027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1031,"src":"2689:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1025,"name":"string","nodeType":"ElementaryTypeName","src":"2689:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2688:15:9"},"scope":1792,"src":"2633:102:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1952],"body":{"id":1069,"nodeType":"Block","src":"2889:188:9","statements":[{"expression":{"arguments":[{"id":1041,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"2914:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1040,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1688,"src":"2899:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":1042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2899:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1043,"nodeType":"ExpressionStatement","src":"2899:23:9"},{"assignments":[1045],"declarations":[{"constant":false,"id":1045,"mutability":"mutable","name":"baseURI","nameLocation":"2947:7:9","nodeType":"VariableDeclaration","scope":1069,"src":"2933:21:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1044,"name":"string","nodeType":"ElementaryTypeName","src":"2933:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1048,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":1046,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"2957:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":1047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2957:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2933:34:9"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1051,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1045,"src":"2990:7:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2984:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1049,"name":"bytes","nodeType":"ElementaryTypeName","src":"2984:5:9","typeDescriptions":{}}},"id":1052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2984:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2999:6:9","memberName":"length","nodeType":"MemberAccess","src":"2984:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3008:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2984:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":1066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3068:2:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":1067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2984:86:9","trueExpression":{"arguments":[{"arguments":[{"id":1060,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1045,"src":"3036:7:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1061,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"3045:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3053:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2970,"src":"3045:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":1063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3045:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1058,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3019:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3023:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"3019:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3019:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3012:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1056,"name":"string","nodeType":"ElementaryTypeName","src":"3012:6:9","typeDescriptions":{}}},"id":1065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3012:53:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1039,"id":1068,"nodeType":"Return","src":"2977:93:9"}]},"documentation":{"id":1032,"nodeType":"StructuredDocumentation","src":"2741:55:9","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":1070,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2810:8:9","nodeType":"FunctionDefinition","overrides":{"id":1036,"nodeType":"OverrideSpecifier","overrides":[],"src":"2856:8:9"},"parameters":{"id":1035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1034,"mutability":"mutable","name":"tokenId","nameLocation":"2827:7:9","nodeType":"VariableDeclaration","scope":1070,"src":"2819:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1033,"name":"uint256","nodeType":"ElementaryTypeName","src":"2819:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2818:17:9"},"returnParameters":{"id":1039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1070,"src":"2874:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1037,"name":"string","nodeType":"ElementaryTypeName","src":"2874:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2873:15:9"},"scope":1792,"src":"2801:276:9","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1078,"nodeType":"Block","src":"3385:26:9","statements":[{"expression":{"hexValue":"","id":1076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3402:2:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":1075,"id":1077,"nodeType":"Return","src":"3395:9:9"}]},"documentation":{"id":1071,"nodeType":"StructuredDocumentation","src":"3083:231:9","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":1079,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3328:8:9","nodeType":"FunctionDefinition","parameters":{"id":1072,"nodeType":"ParameterList","parameters":[],"src":"3336:2:9"},"returnParameters":{"id":1075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1079,"src":"3370:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1073,"name":"string","nodeType":"ElementaryTypeName","src":"3370:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3369:15:9"},"scope":1792,"src":"3319:92:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[1881],"body":{"id":1121,"nodeType":"Block","src":"3538:336:9","statements":[{"assignments":[1089],"declarations":[{"constant":false,"id":1089,"mutability":"mutable","name":"owner","nameLocation":"3556:5:9","nodeType":"VariableDeclaration","scope":1121,"src":"3548:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1088,"name":"address","nodeType":"ElementaryTypeName","src":"3548:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1094,"initialValue":{"arguments":[{"id":1092,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1084,"src":"3579:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1090,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"3564:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$1792_$","typeString":"type(contract ERC721)"}},"id":1091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3571:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1011,"src":"3564:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3564:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3548:39:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1096,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1082,"src":"3605:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1097,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"3611:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3605:11:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572","id":1099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3618:35:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""},"value":"ERC721: approval to current owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""}],"id":1095,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3597:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3597:57:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1101,"nodeType":"ExpressionStatement","src":"3597:57:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":1103,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2493,"src":"3686:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3686:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1105,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"3702:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3686:21:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1108,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1089,"src":"3728:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1109,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2493,"src":"3735:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3735:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1107,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1175,"src":"3711:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":1111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3711:37:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3686:62:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","id":1113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3762:63:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83","typeString":"literal_string \"ERC721: approve caller is not token owner or approved for all\""},"value":"ERC721: approve caller is not token owner or approved for all"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83","typeString":"literal_string \"ERC721: approve caller is not token owner or approved for all\""}],"id":1102,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3665:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3665:170:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1115,"nodeType":"ExpressionStatement","src":"3665:170:9"},{"expression":{"arguments":[{"id":1117,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1082,"src":"3855:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1118,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1084,"src":"3859:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1116,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"3846:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3846:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1120,"nodeType":"ExpressionStatement","src":"3846:21:9"}]},"documentation":{"id":1080,"nodeType":"StructuredDocumentation","src":"3417:46:9","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":1122,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3477:7:9","nodeType":"FunctionDefinition","overrides":{"id":1086,"nodeType":"OverrideSpecifier","overrides":[],"src":"3529:8:9"},"parameters":{"id":1085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1082,"mutability":"mutable","name":"to","nameLocation":"3493:2:9","nodeType":"VariableDeclaration","scope":1122,"src":"3485:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1081,"name":"address","nodeType":"ElementaryTypeName","src":"3485:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1084,"mutability":"mutable","name":"tokenId","nameLocation":"3505:7:9","nodeType":"VariableDeclaration","scope":1122,"src":"3497:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1083,"name":"uint256","nodeType":"ElementaryTypeName","src":"3497:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3484:29:9"},"returnParameters":{"id":1087,"nodeType":"ParameterList","parameters":[],"src":"3538:0:9"},"scope":1792,"src":"3468:406:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1897],"body":{"id":1139,"nodeType":"Block","src":"4020:82:9","statements":[{"expression":{"arguments":[{"id":1132,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1125,"src":"4045:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1131,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1688,"src":"4030:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":1133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4030:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1134,"nodeType":"ExpressionStatement","src":"4030:23:9"},{"expression":{"baseExpression":{"id":1135,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"4071:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1137,"indexExpression":{"id":1136,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1125,"src":"4087:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4071:24:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1130,"id":1138,"nodeType":"Return","src":"4064:31:9"}]},"documentation":{"id":1123,"nodeType":"StructuredDocumentation","src":"3880:50:9","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":1140,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"3944:11:9","nodeType":"FunctionDefinition","overrides":{"id":1127,"nodeType":"OverrideSpecifier","overrides":[],"src":"3993:8:9"},"parameters":{"id":1126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1125,"mutability":"mutable","name":"tokenId","nameLocation":"3964:7:9","nodeType":"VariableDeclaration","scope":1140,"src":"3956:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1124,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3955:17:9"},"returnParameters":{"id":1130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1140,"src":"4011:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1128,"name":"address","nodeType":"ElementaryTypeName","src":"4011:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4010:9:9"},"scope":1792,"src":"3935:167:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1889],"body":{"id":1156,"nodeType":"Block","src":"4253:69:9","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1150,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2493,"src":"4282:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4282:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1152,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1143,"src":"4296:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1153,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1145,"src":"4306:8:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1149,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1674,"src":"4263:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":1154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4263:52:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1155,"nodeType":"ExpressionStatement","src":"4263:52:9"}]},"documentation":{"id":1141,"nodeType":"StructuredDocumentation","src":"4108:56:9","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":1157,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4178:17:9","nodeType":"FunctionDefinition","overrides":{"id":1147,"nodeType":"OverrideSpecifier","overrides":[],"src":"4244:8:9"},"parameters":{"id":1146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"mutability":"mutable","name":"operator","nameLocation":"4204:8:9","nodeType":"VariableDeclaration","scope":1157,"src":"4196:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1142,"name":"address","nodeType":"ElementaryTypeName","src":"4196:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1145,"mutability":"mutable","name":"approved","nameLocation":"4219:8:9","nodeType":"VariableDeclaration","scope":1157,"src":"4214:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1144,"name":"bool","nodeType":"ElementaryTypeName","src":"4214:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4195:33:9"},"returnParameters":{"id":1148,"nodeType":"ParameterList","parameters":[],"src":"4253:0:9"},"scope":1792,"src":"4169:153:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1907],"body":{"id":1174,"nodeType":"Block","src":"4491:59:9","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":1168,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":911,"src":"4508:18:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":1170,"indexExpression":{"id":1169,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1160,"src":"4527:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:25:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1172,"indexExpression":{"id":1171,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"4534:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:35:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1167,"id":1173,"nodeType":"Return","src":"4501:42:9"}]},"documentation":{"id":1158,"nodeType":"StructuredDocumentation","src":"4328:55:9","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":1175,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4397:16:9","nodeType":"FunctionDefinition","overrides":{"id":1164,"nodeType":"OverrideSpecifier","overrides":[],"src":"4467:8:9"},"parameters":{"id":1163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1160,"mutability":"mutable","name":"owner","nameLocation":"4422:5:9","nodeType":"VariableDeclaration","scope":1175,"src":"4414:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1159,"name":"address","nodeType":"ElementaryTypeName","src":"4414:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1162,"mutability":"mutable","name":"operator","nameLocation":"4437:8:9","nodeType":"VariableDeclaration","scope":1175,"src":"4429:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1161,"name":"address","nodeType":"ElementaryTypeName","src":"4429:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4413:33:9"},"returnParameters":{"id":1167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1166,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1175,"src":"4485:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1165,"name":"bool","nodeType":"ElementaryTypeName","src":"4485:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4484:6:9"},"scope":1792,"src":"4388:162:9","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1873],"body":{"id":1201,"nodeType":"Block","src":"4701:207:9","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1188,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2493,"src":"4790:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4790:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1190,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"4804:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1187,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"4771:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":1191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4771:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564","id":1192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4814:47:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""},"value":"ERC721: caller is not token owner or approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""}],"id":1186,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4763:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4763:99:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1194,"nodeType":"ExpressionStatement","src":"4763:99:9"},{"expression":{"arguments":[{"id":1196,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"4883:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1197,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"4889:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1198,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1182,"src":"4893:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1195,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"4873:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1200,"nodeType":"ExpressionStatement","src":"4873:28:9"}]},"documentation":{"id":1176,"nodeType":"StructuredDocumentation","src":"4556:51:9","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":1202,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4621:12:9","nodeType":"FunctionDefinition","overrides":{"id":1184,"nodeType":"OverrideSpecifier","overrides":[],"src":"4692:8:9"},"parameters":{"id":1183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1178,"mutability":"mutable","name":"from","nameLocation":"4642:4:9","nodeType":"VariableDeclaration","scope":1202,"src":"4634:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1177,"name":"address","nodeType":"ElementaryTypeName","src":"4634:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1180,"mutability":"mutable","name":"to","nameLocation":"4656:2:9","nodeType":"VariableDeclaration","scope":1202,"src":"4648:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1179,"name":"address","nodeType":"ElementaryTypeName","src":"4648:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1182,"mutability":"mutable","name":"tokenId","nameLocation":"4668:7:9","nodeType":"VariableDeclaration","scope":1202,"src":"4660:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1181,"name":"uint256","nodeType":"ElementaryTypeName","src":"4660:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4633:43:9"},"returnParameters":{"id":1185,"nodeType":"ParameterList","parameters":[],"src":"4701:0:9"},"scope":1792,"src":"4612:296:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1863],"body":{"id":1220,"nodeType":"Block","src":"5067:56:9","statements":[{"expression":{"arguments":[{"id":1214,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"5094:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1215,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1207,"src":"5100:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1216,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"5104:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":1217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5113:2:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1213,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[1221,1251],"referencedDeclaration":1251,"src":"5077:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":1218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5077:39:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1219,"nodeType":"ExpressionStatement","src":"5077:39:9"}]},"documentation":{"id":1203,"nodeType":"StructuredDocumentation","src":"4914:55:9","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":1221,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4983:16:9","nodeType":"FunctionDefinition","overrides":{"id":1211,"nodeType":"OverrideSpecifier","overrides":[],"src":"5058:8:9"},"parameters":{"id":1210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1205,"mutability":"mutable","name":"from","nameLocation":"5008:4:9","nodeType":"VariableDeclaration","scope":1221,"src":"5000:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1204,"name":"address","nodeType":"ElementaryTypeName","src":"5000:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1207,"mutability":"mutable","name":"to","nameLocation":"5022:2:9","nodeType":"VariableDeclaration","scope":1221,"src":"5014:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1206,"name":"address","nodeType":"ElementaryTypeName","src":"5014:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1209,"mutability":"mutable","name":"tokenId","nameLocation":"5034:7:9","nodeType":"VariableDeclaration","scope":1221,"src":"5026:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1208,"name":"uint256","nodeType":"ElementaryTypeName","src":"5026:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4999:43:9"},"returnParameters":{"id":1212,"nodeType":"ParameterList","parameters":[],"src":"5067:0:9"},"scope":1792,"src":"4974:149:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1853],"body":{"id":1250,"nodeType":"Block","src":"5301:164:9","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1236,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2493,"src":"5338:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5338:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1238,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"5352:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1235,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"5319:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":1239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5319:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564","id":1240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5362:47:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""},"value":"ERC721: caller is not token owner or approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af","typeString":"literal_string \"ERC721: caller is not token owner or approved\""}],"id":1234,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5311:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5311:99:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1242,"nodeType":"ExpressionStatement","src":"5311:99:9"},{"expression":{"arguments":[{"id":1244,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1224,"src":"5434:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1245,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"5440:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1246,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"5444:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1247,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"5453:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1243,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1280,"src":"5420:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":1248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5420:38:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1249,"nodeType":"ExpressionStatement","src":"5420:38:9"}]},"documentation":{"id":1222,"nodeType":"StructuredDocumentation","src":"5129:55:9","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":1251,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5198:16:9","nodeType":"FunctionDefinition","overrides":{"id":1232,"nodeType":"OverrideSpecifier","overrides":[],"src":"5292:8:9"},"parameters":{"id":1231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1224,"mutability":"mutable","name":"from","nameLocation":"5223:4:9","nodeType":"VariableDeclaration","scope":1251,"src":"5215:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1223,"name":"address","nodeType":"ElementaryTypeName","src":"5215:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1226,"mutability":"mutable","name":"to","nameLocation":"5237:2:9","nodeType":"VariableDeclaration","scope":1251,"src":"5229:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1225,"name":"address","nodeType":"ElementaryTypeName","src":"5229:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1228,"mutability":"mutable","name":"tokenId","nameLocation":"5249:7:9","nodeType":"VariableDeclaration","scope":1251,"src":"5241:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1227,"name":"uint256","nodeType":"ElementaryTypeName","src":"5241:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1230,"mutability":"mutable","name":"data","nameLocation":"5271:4:9","nodeType":"VariableDeclaration","scope":1251,"src":"5258:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1229,"name":"bytes","nodeType":"ElementaryTypeName","src":"5258:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5214:62:9"},"returnParameters":{"id":1233,"nodeType":"ParameterList","parameters":[],"src":"5301:0:9"},"scope":1792,"src":"5189:276:9","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1279,"nodeType":"Block","src":"6428:165:9","statements":[{"expression":{"arguments":[{"id":1264,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1254,"src":"6448:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1265,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1256,"src":"6454:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1266,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"6458:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1263,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1618,"src":"6438:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6438:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1268,"nodeType":"ExpressionStatement","src":"6438:28:9"},{"expression":{"arguments":[{"arguments":[{"id":1271,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1254,"src":"6507:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1272,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1256,"src":"6513:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1273,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"6517:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1274,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1260,"src":"6526:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1270,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1750,"src":"6484:22:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":1275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6484:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":1276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6533:52:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":1269,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6476:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6476:110:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1278,"nodeType":"ExpressionStatement","src":"6476:110:9"}]},"documentation":{"id":1252,"nodeType":"StructuredDocumentation","src":"5471:850:9","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":1280,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"6335:13:9","nodeType":"FunctionDefinition","parameters":{"id":1261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1254,"mutability":"mutable","name":"from","nameLocation":"6357:4:9","nodeType":"VariableDeclaration","scope":1280,"src":"6349:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1253,"name":"address","nodeType":"ElementaryTypeName","src":"6349:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1256,"mutability":"mutable","name":"to","nameLocation":"6371:2:9","nodeType":"VariableDeclaration","scope":1280,"src":"6363:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1255,"name":"address","nodeType":"ElementaryTypeName","src":"6363:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1258,"mutability":"mutable","name":"tokenId","nameLocation":"6383:7:9","nodeType":"VariableDeclaration","scope":1280,"src":"6375:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1257,"name":"uint256","nodeType":"ElementaryTypeName","src":"6375:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1260,"mutability":"mutable","name":"data","nameLocation":"6405:4:9","nodeType":"VariableDeclaration","scope":1280,"src":"6392:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1259,"name":"bytes","nodeType":"ElementaryTypeName","src":"6392:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6348:62:9"},"returnParameters":{"id":1262,"nodeType":"ParameterList","parameters":[],"src":"6428:0:9"},"scope":1792,"src":"6326:267:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1292,"nodeType":"Block","src":"6777:40:9","statements":[{"expression":{"baseExpression":{"id":1288,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"6794:7:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1290,"indexExpression":{"id":1289,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1283,"src":"6802:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6794:16:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1287,"id":1291,"nodeType":"Return","src":"6787:23:9"}]},"documentation":{"id":1281,"nodeType":"StructuredDocumentation","src":"6599:98:9","text":" @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist"},"id":1293,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"6711:8:9","nodeType":"FunctionDefinition","parameters":{"id":1284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1283,"mutability":"mutable","name":"tokenId","nameLocation":"6728:7:9","nodeType":"VariableDeclaration","scope":1293,"src":"6720:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1282,"name":"uint256","nodeType":"ElementaryTypeName","src":"6720:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6719:17:9"},"returnParameters":{"id":1287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1293,"src":"6768:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1285,"name":"address","nodeType":"ElementaryTypeName","src":"6768:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6767:9:9"},"scope":1792,"src":"6702:115:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1310,"nodeType":"Block","src":"7191:55:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1302,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1296,"src":"7217:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1301,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1293,"src":"7208:8:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7208:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7237:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7229:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1304,"name":"address","nodeType":"ElementaryTypeName","src":"7229:7:9","typeDescriptions":{}}},"id":1307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7229:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7208:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1300,"id":1309,"nodeType":"Return","src":"7201:38:9"}]},"documentation":{"id":1294,"nodeType":"StructuredDocumentation","src":"6823:292:9","text":" @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."},"id":1311,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"7129:7:9","nodeType":"FunctionDefinition","parameters":{"id":1297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1296,"mutability":"mutable","name":"tokenId","nameLocation":"7145:7:9","nodeType":"VariableDeclaration","scope":1311,"src":"7137:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1295,"name":"uint256","nodeType":"ElementaryTypeName","src":"7137:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7136:17:9"},"returnParameters":{"id":1300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1311,"src":"7185:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1298,"name":"bool","nodeType":"ElementaryTypeName","src":"7185:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7184:6:9"},"scope":1792,"src":"7120:126:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1344,"nodeType":"Block","src":"7503:162:9","statements":[{"assignments":[1322],"declarations":[{"constant":false,"id":1322,"mutability":"mutable","name":"owner","nameLocation":"7521:5:9","nodeType":"VariableDeclaration","scope":1344,"src":"7513:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1321,"name":"address","nodeType":"ElementaryTypeName","src":"7513:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1327,"initialValue":{"arguments":[{"id":1325,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1316,"src":"7544:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1323,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"7529:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$1792_$","typeString":"type(contract ERC721)"}},"id":1324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7536:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1011,"src":"7529:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7529:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7513:39:9"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1328,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1314,"src":"7570:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1329,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1322,"src":"7581:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7570:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1332,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1322,"src":"7607:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1333,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1314,"src":"7614:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1331,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1175,"src":"7590:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":1334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7590:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7570:52:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1337,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1316,"src":"7638:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1336,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1140,"src":"7626:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7626:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1339,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1314,"src":"7650:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7626:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7570:87:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1342,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7569:89:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1320,"id":1343,"nodeType":"Return","src":"7562:96:9"}]},"documentation":{"id":1312,"nodeType":"StructuredDocumentation","src":"7252:147:9","text":" @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":1345,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"7413:18:9","nodeType":"FunctionDefinition","parameters":{"id":1317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1314,"mutability":"mutable","name":"spender","nameLocation":"7440:7:9","nodeType":"VariableDeclaration","scope":1345,"src":"7432:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1313,"name":"address","nodeType":"ElementaryTypeName","src":"7432:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1316,"mutability":"mutable","name":"tokenId","nameLocation":"7457:7:9","nodeType":"VariableDeclaration","scope":1345,"src":"7449:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1315,"name":"uint256","nodeType":"ElementaryTypeName","src":"7449:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7431:34:9"},"returnParameters":{"id":1320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1345,"src":"7497:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1318,"name":"bool","nodeType":"ElementaryTypeName","src":"7497:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7496:6:9"},"scope":1792,"src":"7404:261:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1359,"nodeType":"Block","src":"8060:43:9","statements":[{"expression":{"arguments":[{"id":1354,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"8080:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1355,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1350,"src":"8084:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":1356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8093:2:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":1353,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[1360,1389],"referencedDeclaration":1389,"src":"8070:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8070:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1358,"nodeType":"ExpressionStatement","src":"8070:26:9"}]},"documentation":{"id":1346,"nodeType":"StructuredDocumentation","src":"7671:319:9","text":" @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":1360,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8004:9:9","nodeType":"FunctionDefinition","parameters":{"id":1351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1348,"mutability":"mutable","name":"to","nameLocation":"8022:2:9","nodeType":"VariableDeclaration","scope":1360,"src":"8014:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1347,"name":"address","nodeType":"ElementaryTypeName","src":"8014:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1350,"mutability":"mutable","name":"tokenId","nameLocation":"8034:7:9","nodeType":"VariableDeclaration","scope":1360,"src":"8026:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1349,"name":"uint256","nodeType":"ElementaryTypeName","src":"8026:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8013:29:9"},"returnParameters":{"id":1352,"nodeType":"ParameterList","parameters":[],"src":"8060:0:9"},"scope":1792,"src":"7995:108:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1388,"nodeType":"Block","src":"8408:195:9","statements":[{"expression":{"arguments":[{"id":1371,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1363,"src":"8424:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1372,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"8428:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1370,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1466,"src":"8418:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8418:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1374,"nodeType":"ExpressionStatement","src":"8418:18:9"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":1379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8498:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8490:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1377,"name":"address","nodeType":"ElementaryTypeName","src":"8490:7:9","typeDescriptions":{}}},"id":1380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8490:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1381,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1363,"src":"8502:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1382,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"8506:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1383,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1367,"src":"8515:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1376,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1750,"src":"8467:22:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8467:53:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":1385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8534:52:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":1375,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8446:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8446:150:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1387,"nodeType":"ExpressionStatement","src":"8446:150:9"}]},"documentation":{"id":1361,"nodeType":"StructuredDocumentation","src":"8109:210:9","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":1389,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8333:9:9","nodeType":"FunctionDefinition","parameters":{"id":1368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1363,"mutability":"mutable","name":"to","nameLocation":"8351:2:9","nodeType":"VariableDeclaration","scope":1389,"src":"8343:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1362,"name":"address","nodeType":"ElementaryTypeName","src":"8343:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1365,"mutability":"mutable","name":"tokenId","nameLocation":"8363:7:9","nodeType":"VariableDeclaration","scope":1389,"src":"8355:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1364,"name":"uint256","nodeType":"ElementaryTypeName","src":"8355:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1367,"mutability":"mutable","name":"data","nameLocation":"8385:4:9","nodeType":"VariableDeclaration","scope":1389,"src":"8372:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1366,"name":"bytes","nodeType":"ElementaryTypeName","src":"8372:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8342:48:9"},"returnParameters":{"id":1369,"nodeType":"ParameterList","parameters":[],"src":"8408:0:9"},"scope":1792,"src":"8324:279:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1465,"nodeType":"Block","src":"8986:859:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1398,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"9004:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9018:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9010:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1399,"name":"address","nodeType":"ElementaryTypeName","src":"9010:7:9","typeDescriptions":{}}},"id":1402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9010:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9004:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","id":1404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9022:34:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""},"value":"ERC721: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""}],"id":1397,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8996:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8996:61:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1406,"nodeType":"ExpressionStatement","src":"8996:61:9"},{"expression":{"arguments":[{"id":1411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9075:17:9","subExpression":{"arguments":[{"id":1409,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"9084:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1408,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"9076:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":1410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9076:16:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":1412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9094:30:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":1407,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9067:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9067:58:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1414,"nodeType":"ExpressionStatement","src":"9067:58:9"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9165:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9157:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1416,"name":"address","nodeType":"ElementaryTypeName","src":"9157:7:9","typeDescriptions":{}}},"id":1419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9157:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1420,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"9169:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1421,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"9173:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9182:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1415,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"9136:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9136:48:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1424,"nodeType":"ExpressionStatement","src":"9136:48:9"},{"expression":{"arguments":[{"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9279:17:9","subExpression":{"arguments":[{"id":1427,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"9288:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1426,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"9280:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9280:16:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":1430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9298:30:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":1425,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9271:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9271:58:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1432,"nodeType":"ExpressionStatement","src":"9271:58:9"},{"id":1439,"nodeType":"UncheckedBlock","src":"9340:360:9","statements":[{"expression":{"id":1437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1433,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"9671:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1435,"indexExpression":{"id":1434,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"9681:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9671:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":1436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9688:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9671:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1438,"nodeType":"ExpressionStatement","src":"9671:18:9"}]},{"expression":{"id":1444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1440,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"9710:7:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1442,"indexExpression":{"id":1441,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"9718:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9710:16:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1443,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"9729:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9710:21:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1445,"nodeType":"ExpressionStatement","src":"9710:21:9"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9764:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9756:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1447,"name":"address","nodeType":"ElementaryTypeName","src":"9756:7:9","typeDescriptions":{}}},"id":1450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9756:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1451,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"9768:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1452,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"9772:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1446,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"9747:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9747:33:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1454,"nodeType":"EmitStatement","src":"9742:38:9"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":1458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9819:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9811:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1456,"name":"address","nodeType":"ElementaryTypeName","src":"9811:7:9","typeDescriptions":{}}},"id":1459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9811:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1460,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"9823:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1461,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"9827:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9836:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1455,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"9791:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9791:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1464,"nodeType":"ExpressionStatement","src":"9791:47:9"}]},"documentation":{"id":1390,"nodeType":"StructuredDocumentation","src":"8609:311:9","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":1466,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8934:5:9","nodeType":"FunctionDefinition","parameters":{"id":1395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1392,"mutability":"mutable","name":"to","nameLocation":"8948:2:9","nodeType":"VariableDeclaration","scope":1466,"src":"8940:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1391,"name":"address","nodeType":"ElementaryTypeName","src":"8940:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1394,"mutability":"mutable","name":"tokenId","nameLocation":"8960:7:9","nodeType":"VariableDeclaration","scope":1466,"src":"8952:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1393,"name":"uint256","nodeType":"ElementaryTypeName","src":"8952:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8939:29:9"},"returnParameters":{"id":1396,"nodeType":"ParameterList","parameters":[],"src":"8986:0:9"},"scope":1792,"src":"8925:920:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1532,"nodeType":"Block","src":"10220:713:9","statements":[{"assignments":[1473],"declarations":[{"constant":false,"id":1473,"mutability":"mutable","name":"owner","nameLocation":"10238:5:9","nodeType":"VariableDeclaration","scope":1532,"src":"10230:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1472,"name":"address","nodeType":"ElementaryTypeName","src":"10230:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1478,"initialValue":{"arguments":[{"id":1476,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"10261:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1474,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"10246:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$1792_$","typeString":"type(contract ERC721)"}},"id":1475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10253:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1011,"src":"10246:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10246:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10230:39:9"},{"expression":{"arguments":[{"id":1480,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"10301:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10316:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10308:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1481,"name":"address","nodeType":"ElementaryTypeName","src":"10308:7:9","typeDescriptions":{}}},"id":1484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10308:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1485,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"10320:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10329:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1479,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"10280:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10280:51:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1488,"nodeType":"ExpressionStatement","src":"10280:51:9"},{"expression":{"id":1494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1489,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"10433:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1492,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"10456:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1490,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"10441:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$1792_$","typeString":"type(contract ERC721)"}},"id":1491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10448:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1011,"src":"10441:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10441:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10433:31:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1495,"nodeType":"ExpressionStatement","src":"10433:31:9"},{"expression":{"id":1499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10502:31:9","subExpression":{"baseExpression":{"id":1496,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"10509:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1498,"indexExpression":{"id":1497,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"10525:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10509:24:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1500,"nodeType":"ExpressionStatement","src":"10502:31:9"},{"id":1507,"nodeType":"UncheckedBlock","src":"10544:237:9","statements":[{"expression":{"id":1505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1501,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"10749:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1503,"indexExpression":{"id":1502,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"10759:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10749:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":1504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10769:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10749:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1506,"nodeType":"ExpressionStatement","src":"10749:21:9"}]},{"expression":{"id":1511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10790:23:9","subExpression":{"baseExpression":{"id":1508,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"10797:7:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1510,"indexExpression":{"id":1509,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"10805:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10797:16:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1512,"nodeType":"ExpressionStatement","src":"10790:23:9"},{"eventCall":{"arguments":[{"id":1514,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"10838:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10853:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10845:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1515,"name":"address","nodeType":"ElementaryTypeName","src":"10845:7:9","typeDescriptions":{}}},"id":1518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10845:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1519,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"10857:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1513,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"10829:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10829:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1521,"nodeType":"EmitStatement","src":"10824:41:9"},{"expression":{"arguments":[{"id":1523,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"10896:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10911:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10903:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1524,"name":"address","nodeType":"ElementaryTypeName","src":"10903:7:9","typeDescriptions":{}}},"id":1527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10903:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1528,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1469,"src":"10915:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10924:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1522,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"10876:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10876:50:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1531,"nodeType":"ExpressionStatement","src":"10876:50:9"}]},"documentation":{"id":1467,"nodeType":"StructuredDocumentation","src":"9851:315:9","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":1533,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"10180:5:9","nodeType":"FunctionDefinition","parameters":{"id":1470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1469,"mutability":"mutable","name":"tokenId","nameLocation":"10194:7:9","nodeType":"VariableDeclaration","scope":1533,"src":"10186:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1468,"name":"uint256","nodeType":"ElementaryTypeName","src":"10186:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10185:17:9"},"returnParameters":{"id":1471,"nodeType":"ParameterList","parameters":[],"src":"10220:0:9"},"scope":1792,"src":"10171:762:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1617,"nodeType":"Block","src":"11336:1124:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1546,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"11369:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1544,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"11354:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$1792_$","typeString":"type(contract ERC721)"}},"id":1545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11361:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1011,"src":"11354:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11354:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1548,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"11381:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11354:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":1550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11387:39:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":1543,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11346:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11346:81:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1552,"nodeType":"ExpressionStatement","src":"11346:81:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1554,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"11445:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11459:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11451:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1555,"name":"address","nodeType":"ElementaryTypeName","src":"11451:7:9","typeDescriptions":{}}},"id":1558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11451:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11445:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373","id":1560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11463:38:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""},"value":"ERC721: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""}],"id":1553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11437:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11437:65:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1562,"nodeType":"ExpressionStatement","src":"11437:65:9"},{"expression":{"arguments":[{"id":1564,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"11534:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1565,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"11540:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1566,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"11544:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11553:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1563,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"11513:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11513:42:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1569,"nodeType":"ExpressionStatement","src":"11513:42:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1573,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"11670:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1571,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"11655:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$1792_$","typeString":"type(contract ERC721)"}},"id":1572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11662:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1011,"src":"11655:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11655:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1575,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"11682:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11655:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":1577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11688:39:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":1570,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11647:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11647:81:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1579,"nodeType":"ExpressionStatement","src":"11647:81:9"},{"expression":{"id":1583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11790:31:9","subExpression":{"baseExpression":{"id":1580,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"11797:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1582,"indexExpression":{"id":1581,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"11813:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11797:24:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1584,"nodeType":"ExpressionStatement","src":"11790:31:9"},{"id":1597,"nodeType":"UncheckedBlock","src":"11832:496:9","statements":[{"expression":{"id":1589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1585,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"12265:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1587,"indexExpression":{"id":1586,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"12275:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12265:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":1588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12284:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12265:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1590,"nodeType":"ExpressionStatement","src":"12265:20:9"},{"expression":{"id":1595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1591,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"12299:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1593,"indexExpression":{"id":1592,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"12309:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12299:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":1594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12316:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12299:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1596,"nodeType":"ExpressionStatement","src":"12299:18:9"}]},{"expression":{"id":1602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1598,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"12337:7:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1600,"indexExpression":{"id":1599,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"12345:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12337:16:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1601,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"12356:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12337:21:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1603,"nodeType":"ExpressionStatement","src":"12337:21:9"},{"eventCall":{"arguments":[{"id":1605,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"12383:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1606,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"12389:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1607,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"12393:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1604,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"12374:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12374:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1609,"nodeType":"EmitStatement","src":"12369:32:9"},{"expression":{"arguments":[{"id":1611,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"12432:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1612,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"12438:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1613,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"12442:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":1614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12451:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1610,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"12412:19:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12412:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1616,"nodeType":"ExpressionStatement","src":"12412:41:9"}]},"documentation":{"id":1534,"nodeType":"StructuredDocumentation","src":"10939:313:9","text":" @dev Transfers `tokenId` from `from` to `to`.\n  As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":1618,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"11266:9:9","nodeType":"FunctionDefinition","parameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1536,"mutability":"mutable","name":"from","nameLocation":"11284:4:9","nodeType":"VariableDeclaration","scope":1618,"src":"11276:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1535,"name":"address","nodeType":"ElementaryTypeName","src":"11276:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1538,"mutability":"mutable","name":"to","nameLocation":"11298:2:9","nodeType":"VariableDeclaration","scope":1618,"src":"11290:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1537,"name":"address","nodeType":"ElementaryTypeName","src":"11290:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1540,"mutability":"mutable","name":"tokenId","nameLocation":"11310:7:9","nodeType":"VariableDeclaration","scope":1618,"src":"11302:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1539,"name":"uint256","nodeType":"ElementaryTypeName","src":"11302:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11275:43:9"},"returnParameters":{"id":1542,"nodeType":"ParameterList","parameters":[],"src":"11336:0:9"},"scope":1792,"src":"11257:1203:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1641,"nodeType":"Block","src":"12636:107:9","statements":[{"expression":{"id":1630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1626,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"12646:15:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":1628,"indexExpression":{"id":1627,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"12662:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12646:24:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1629,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1621,"src":"12673:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12646:29:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1631,"nodeType":"ExpressionStatement","src":"12646:29:9"},{"eventCall":{"arguments":[{"arguments":[{"id":1635,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"12714:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1633,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"12699:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$1792_$","typeString":"type(contract ERC721)"}},"id":1634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12706:7:9","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1011,"src":"12699:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12699:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1637,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1621,"src":"12724:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1638,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"12728:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1632,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1816,"src":"12690:8:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12690:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1640,"nodeType":"EmitStatement","src":"12685:51:9"}]},"documentation":{"id":1619,"nodeType":"StructuredDocumentation","src":"12466:101:9","text":" @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event."},"id":1642,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"12581:8:9","nodeType":"FunctionDefinition","parameters":{"id":1624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1621,"mutability":"mutable","name":"to","nameLocation":"12598:2:9","nodeType":"VariableDeclaration","scope":1642,"src":"12590:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1620,"name":"address","nodeType":"ElementaryTypeName","src":"12590:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1623,"mutability":"mutable","name":"tokenId","nameLocation":"12610:7:9","nodeType":"VariableDeclaration","scope":1642,"src":"12602:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1622,"name":"uint256","nodeType":"ElementaryTypeName","src":"12602:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12589:29:9"},"returnParameters":{"id":1625,"nodeType":"ParameterList","parameters":[],"src":"12636:0:9"},"scope":1792,"src":"12572:171:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1673,"nodeType":"Block","src":"12972:184:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1653,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1645,"src":"12990:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1654,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"12999:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12990:17:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","id":1656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13009:27:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""},"value":"ERC721: approve to caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""}],"id":1652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12982:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12982:55:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1658,"nodeType":"ExpressionStatement","src":"12982:55:9"},{"expression":{"id":1665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1659,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":911,"src":"13047:18:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":1662,"indexExpression":{"id":1660,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1645,"src":"13066:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13047:25:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1663,"indexExpression":{"id":1661,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"13073:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13047:35:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1664,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1649,"src":"13085:8:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13047:46:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1666,"nodeType":"ExpressionStatement","src":"13047:46:9"},{"eventCall":{"arguments":[{"id":1668,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1645,"src":"13123:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1669,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"13130:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1670,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1649,"src":"13140:8:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1667,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1825,"src":"13108:14:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":1671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13108:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1672,"nodeType":"EmitStatement","src":"13103:46:9"}]},"documentation":{"id":1643,"nodeType":"StructuredDocumentation","src":"12749:125:9","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event."},"id":1674,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"12888:18:9","nodeType":"FunctionDefinition","parameters":{"id":1650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1645,"mutability":"mutable","name":"owner","nameLocation":"12915:5:9","nodeType":"VariableDeclaration","scope":1674,"src":"12907:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1644,"name":"address","nodeType":"ElementaryTypeName","src":"12907:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1647,"mutability":"mutable","name":"operator","nameLocation":"12930:8:9","nodeType":"VariableDeclaration","scope":1674,"src":"12922:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1646,"name":"address","nodeType":"ElementaryTypeName","src":"12922:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1649,"mutability":"mutable","name":"approved","nameLocation":"12945:8:9","nodeType":"VariableDeclaration","scope":1674,"src":"12940:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1648,"name":"bool","nodeType":"ElementaryTypeName","src":"12940:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12906:48:9"},"returnParameters":{"id":1651,"nodeType":"ParameterList","parameters":[],"src":"12972:0:9"},"scope":1792,"src":"12879:277:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1687,"nodeType":"Block","src":"13303:70:9","statements":[{"expression":{"arguments":[{"arguments":[{"id":1682,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1677,"src":"13329:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1681,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"13321:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":1683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13321:16:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":1684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13339:26:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":1680,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13313:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13313:53:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1686,"nodeType":"ExpressionStatement","src":"13313:53:9"}]},"documentation":{"id":1675,"nodeType":"StructuredDocumentation","src":"13162:73:9","text":" @dev Reverts if the `tokenId` has not been minted yet."},"id":1688,"implemented":true,"kind":"function","modifiers":[],"name":"_requireMinted","nameLocation":"13249:14:9","nodeType":"FunctionDefinition","parameters":{"id":1678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1677,"mutability":"mutable","name":"tokenId","nameLocation":"13272:7:9","nodeType":"VariableDeclaration","scope":1688,"src":"13264:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1676,"name":"uint256","nodeType":"ElementaryTypeName","src":"13264:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13263:17:9"},"returnParameters":{"id":1679,"nodeType":"ParameterList","parameters":[],"src":"13303:0:9"},"scope":1792,"src":"13240:133:9","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1749,"nodeType":"Block","src":"14080:676:9","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1702,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"14094:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14097:10:9","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":2169,"src":"14094:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":1704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14094:15:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1747,"nodeType":"Block","src":"14714:36:9","statements":[{"expression":{"hexValue":"74727565","id":1745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14735:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1701,"id":1746,"nodeType":"Return","src":"14728:11:9"}]},"id":1748,"nodeType":"IfStatement","src":"14090:660:9","trueBody":{"id":1744,"nodeType":"Block","src":"14111:597:9","statements":[{"clauses":[{"block":{"id":1724,"nodeType":"Block","src":"14225:91:9","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1718,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1716,"src":"14250:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":1719,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1926,"src":"14260:15:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$1926_$","typeString":"type(contract IERC721Receiver)"}},"id":1720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14276:16:9","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":1925,"src":"14260:32:9","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":1721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14293:8:9","memberName":"selector","nodeType":"MemberAccess","src":"14260:41:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"14250:51:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1701,"id":1723,"nodeType":"Return","src":"14243:58:9"}]},"errorName":"","id":1725,"nodeType":"TryCatchClause","parameters":{"id":1717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1716,"mutability":"mutable","name":"retval","nameLocation":"14217:6:9","nodeType":"VariableDeclaration","scope":1725,"src":"14210:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1715,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14210:6:9","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14209:15:9"},"src":"14201:115:9"},{"block":{"id":1741,"nodeType":"Block","src":"14345:353:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1729,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1727,"src":"14367:6:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14374:6:9","memberName":"length","nodeType":"MemberAccess","src":"14367:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14384:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14367:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1739,"nodeType":"Block","src":"14494:190:9","statements":[{"AST":{"nativeSrc":"14580:86:9","nodeType":"YulBlock","src":"14580:86:9","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14617:2:9","nodeType":"YulLiteral","src":"14617:2:9","type":"","value":"32"},{"name":"reason","nativeSrc":"14621:6:9","nodeType":"YulIdentifier","src":"14621:6:9"}],"functionName":{"name":"add","nativeSrc":"14613:3:9","nodeType":"YulIdentifier","src":"14613:3:9"},"nativeSrc":"14613:15:9","nodeType":"YulFunctionCall","src":"14613:15:9"},{"arguments":[{"name":"reason","nativeSrc":"14636:6:9","nodeType":"YulIdentifier","src":"14636:6:9"}],"functionName":{"name":"mload","nativeSrc":"14630:5:9","nodeType":"YulIdentifier","src":"14630:5:9"},"nativeSrc":"14630:13:9","nodeType":"YulFunctionCall","src":"14630:13:9"}],"functionName":{"name":"revert","nativeSrc":"14606:6:9","nodeType":"YulIdentifier","src":"14606:6:9"},"nativeSrc":"14606:38:9","nodeType":"YulFunctionCall","src":"14606:38:9"},"nativeSrc":"14606:38:9","nodeType":"YulExpressionStatement","src":"14606:38:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1727,"isOffset":false,"isSlot":false,"src":"14621:6:9","valueSize":1},{"declaration":1727,"isOffset":false,"isSlot":false,"src":"14636:6:9","valueSize":1}],"id":1738,"nodeType":"InlineAssembly","src":"14571:95:9"}]},"id":1740,"nodeType":"IfStatement","src":"14363:321:9","trueBody":{"id":1737,"nodeType":"Block","src":"14387:101:9","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":1734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14416:52:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":1733,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"14409:6:9","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":1735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14409:60:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1736,"nodeType":"ExpressionStatement","src":"14409:60:9"}]}}]},"errorName":"","id":1742,"nodeType":"TryCatchClause","parameters":{"id":1728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1727,"mutability":"mutable","name":"reason","nameLocation":"14337:6:9","nodeType":"VariableDeclaration","scope":1742,"src":"14324:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1726,"name":"bytes","nodeType":"ElementaryTypeName","src":"14324:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14323:21:9"},"src":"14317:381:9"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1709,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2493,"src":"14166:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14166:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1711,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"14180:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1712,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1695,"src":"14186:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1713,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"14195:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1706,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"14145:2:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1705,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1926,"src":"14129:15:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$1926_$","typeString":"type(contract IERC721Receiver)"}},"id":1707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14129:19:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$1926","typeString":"contract IERC721Receiver"}},"id":1708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14149:16:9","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":1925,"src":"14129:36:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":1714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14129:71:9","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":1743,"nodeType":"TryStatement","src":"14125:573:9"}]}}]},"documentation":{"id":1689,"nodeType":"StructuredDocumentation","src":"13379:541:9","text":" @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"},"id":1750,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"13934:22:9","nodeType":"FunctionDefinition","parameters":{"id":1698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1691,"mutability":"mutable","name":"from","nameLocation":"13974:4:9","nodeType":"VariableDeclaration","scope":1750,"src":"13966:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1690,"name":"address","nodeType":"ElementaryTypeName","src":"13966:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1693,"mutability":"mutable","name":"to","nameLocation":"13996:2:9","nodeType":"VariableDeclaration","scope":1750,"src":"13988:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1692,"name":"address","nodeType":"ElementaryTypeName","src":"13988:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1695,"mutability":"mutable","name":"tokenId","nameLocation":"14016:7:9","nodeType":"VariableDeclaration","scope":1750,"src":"14008:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1694,"name":"uint256","nodeType":"ElementaryTypeName","src":"14008:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1697,"mutability":"mutable","name":"data","nameLocation":"14046:4:9","nodeType":"VariableDeclaration","scope":1750,"src":"14033:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1696,"name":"bytes","nodeType":"ElementaryTypeName","src":"14033:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13956:100:9"},"returnParameters":{"id":1701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1750,"src":"14074:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1699,"name":"bool","nodeType":"ElementaryTypeName","src":"14074:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14073:6:9"},"scope":1792,"src":"13925:831:9","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":1762,"nodeType":"Block","src":"15586:2:9","statements":[]},"documentation":{"id":1751,"nodeType":"StructuredDocumentation","src":"14762:705:9","text":" @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`.\n - When `from` is zero, the tokens will be minted for `to`.\n - When `to` is zero, ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":1763,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"15481:20:9","nodeType":"FunctionDefinition","parameters":{"id":1760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1753,"mutability":"mutable","name":"from","nameLocation":"15510:4:9","nodeType":"VariableDeclaration","scope":1763,"src":"15502:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1752,"name":"address","nodeType":"ElementaryTypeName","src":"15502:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1755,"mutability":"mutable","name":"to","nameLocation":"15524:2:9","nodeType":"VariableDeclaration","scope":1763,"src":"15516:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1754,"name":"address","nodeType":"ElementaryTypeName","src":"15516:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1757,"mutability":"mutable","name":"firstTokenId","nameLocation":"15536:12:9","nodeType":"VariableDeclaration","scope":1763,"src":"15528:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1756,"name":"uint256","nodeType":"ElementaryTypeName","src":"15528:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1759,"mutability":"mutable","name":"batchSize","nameLocation":"15558:9:9","nodeType":"VariableDeclaration","scope":1763,"src":"15550:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1758,"name":"uint256","nodeType":"ElementaryTypeName","src":"15550:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15501:67:9"},"returnParameters":{"id":1761,"nodeType":"ParameterList","parameters":[],"src":"15586:0:9"},"scope":1792,"src":"15472:116:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1775,"nodeType":"Block","src":"16407:2:9","statements":[]},"documentation":{"id":1764,"nodeType":"StructuredDocumentation","src":"15594:695:9","text":" @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`.\n - When `from` is zero, the tokens were minted for `to`.\n - When `to` is zero, ``from``'s tokens were burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":1776,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"16303:19:9","nodeType":"FunctionDefinition","parameters":{"id":1773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1766,"mutability":"mutable","name":"from","nameLocation":"16331:4:9","nodeType":"VariableDeclaration","scope":1776,"src":"16323:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1765,"name":"address","nodeType":"ElementaryTypeName","src":"16323:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1768,"mutability":"mutable","name":"to","nameLocation":"16345:2:9","nodeType":"VariableDeclaration","scope":1776,"src":"16337:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1767,"name":"address","nodeType":"ElementaryTypeName","src":"16337:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1770,"mutability":"mutable","name":"firstTokenId","nameLocation":"16357:12:9","nodeType":"VariableDeclaration","scope":1776,"src":"16349:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1769,"name":"uint256","nodeType":"ElementaryTypeName","src":"16349:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1772,"mutability":"mutable","name":"batchSize","nameLocation":"16379:9:9","nodeType":"VariableDeclaration","scope":1776,"src":"16371:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1771,"name":"uint256","nodeType":"ElementaryTypeName","src":"16371:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16322:67:9"},"returnParameters":{"id":1774,"nodeType":"ParameterList","parameters":[],"src":"16407:0:9"},"scope":1792,"src":"16294:115:9","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1790,"nodeType":"Block","src":"16958:45:9","statements":[{"expression":{"id":1788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1784,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":901,"src":"16968:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1786,"indexExpression":{"id":1785,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1779,"src":"16978:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16968:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":1787,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1781,"src":"16990:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16968:28:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1789,"nodeType":"ExpressionStatement","src":"16968:28:9"}]},"documentation":{"id":1777,"nodeType":"StructuredDocumentation","src":"16415:409:9","text":" @dev Unsafe write access to the balances, used by extensions that \"mint\" tokens using an {ownerOf} override.\n WARNING: Anyone calling this MUST ensure that the balances remain consistent with the ownership. The invariant\n being that for any address `a` the value returned by `balanceOf(a)` must be equal to the number of tokens such\n that `ownerOf(tokenId)` is `a`."},"id":1791,"implemented":true,"kind":"function","modifiers":[],"name":"__unsafe_increaseBalance","nameLocation":"16891:24:9","nodeType":"FunctionDefinition","parameters":{"id":1782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1779,"mutability":"mutable","name":"account","nameLocation":"16924:7:9","nodeType":"VariableDeclaration","scope":1791,"src":"16916:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1778,"name":"address","nodeType":"ElementaryTypeName","src":"16916:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1781,"mutability":"mutable","name":"amount","nameLocation":"16941:6:9","nodeType":"VariableDeclaration","scope":1791,"src":"16933:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1780,"name":"uint256","nodeType":"ElementaryTypeName","src":"16933:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16915:33:9"},"returnParameters":{"id":1783,"nodeType":"ParameterList","parameters":[],"src":"16958:0:9"},"scope":1792,"src":"16882:121:9","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":1793,"src":"628:16377:9","usedErrors":[],"usedEvents":[1807,1816,1825]}],"src":"107:16899:9"},"id":9},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[3845],"IERC721":[1908]},"id":1909,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1794,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:10"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":1795,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1909,"sourceUnit":3846,"src":"133:47:10","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1797,"name":"IERC165","nameLocations":["271:7:10"],"nodeType":"IdentifierPath","referencedDeclaration":3845,"src":"271:7:10"},"id":1798,"nodeType":"InheritanceSpecifier","src":"271:7:10"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":1796,"nodeType":"StructuredDocumentation","src":"182:67:10","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":1908,"linearizedBaseContracts":[1908,3845],"name":"IERC721","nameLocation":"260:7:10","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1799,"nodeType":"StructuredDocumentation","src":"285:88:10","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":1807,"name":"Transfer","nameLocation":"384:8:10","nodeType":"EventDefinition","parameters":{"id":1806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1801,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"409:4:10","nodeType":"VariableDeclaration","scope":1807,"src":"393:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1800,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1803,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"431:2:10","nodeType":"VariableDeclaration","scope":1807,"src":"415:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1802,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1805,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"451:7:10","nodeType":"VariableDeclaration","scope":1807,"src":"435:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1804,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:67:10"},"src":"378:82:10"},{"anonymous":false,"documentation":{"id":1808,"nodeType":"StructuredDocumentation","src":"466:94:10","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":1816,"name":"Approval","nameLocation":"571:8:10","nodeType":"EventDefinition","parameters":{"id":1815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1810,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"596:5:10","nodeType":"VariableDeclaration","scope":1816,"src":"580:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1809,"name":"address","nodeType":"ElementaryTypeName","src":"580:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1812,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"619:8:10","nodeType":"VariableDeclaration","scope":1816,"src":"603:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1811,"name":"address","nodeType":"ElementaryTypeName","src":"603:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1814,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"645:7:10","nodeType":"VariableDeclaration","scope":1816,"src":"629:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1813,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"579:74:10"},"src":"565:89:10"},{"anonymous":false,"documentation":{"id":1817,"nodeType":"StructuredDocumentation","src":"660:117:10","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":1825,"name":"ApprovalForAll","nameLocation":"788:14:10","nodeType":"EventDefinition","parameters":{"id":1824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1819,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"819:5:10","nodeType":"VariableDeclaration","scope":1825,"src":"803:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1818,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1821,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"842:8:10","nodeType":"VariableDeclaration","scope":1825,"src":"826:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1820,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1823,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"857:8:10","nodeType":"VariableDeclaration","scope":1825,"src":"852:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1822,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"802:64:10"},"src":"782:85:10"},{"documentation":{"id":1826,"nodeType":"StructuredDocumentation","src":"873:76:10","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":1833,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"963:9:10","nodeType":"FunctionDefinition","parameters":{"id":1829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1828,"mutability":"mutable","name":"owner","nameLocation":"981:5:10","nodeType":"VariableDeclaration","scope":1833,"src":"973:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1827,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"972:15:10"},"returnParameters":{"id":1832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1831,"mutability":"mutable","name":"balance","nameLocation":"1019:7:10","nodeType":"VariableDeclaration","scope":1833,"src":"1011:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1830,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:17:10"},"scope":1908,"src":"954:74:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1834,"nodeType":"StructuredDocumentation","src":"1034:131:10","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":1841,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1179:7:10","nodeType":"FunctionDefinition","parameters":{"id":1837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1836,"mutability":"mutable","name":"tokenId","nameLocation":"1195:7:10","nodeType":"VariableDeclaration","scope":1841,"src":"1187:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:17:10"},"returnParameters":{"id":1840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1839,"mutability":"mutable","name":"owner","nameLocation":"1235:5:10","nodeType":"VariableDeclaration","scope":1841,"src":"1227:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1838,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1226:15:10"},"scope":1908,"src":"1170:72:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1842,"nodeType":"StructuredDocumentation","src":"1248:556:10","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":1853,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1818:16:10","nodeType":"FunctionDefinition","parameters":{"id":1851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1844,"mutability":"mutable","name":"from","nameLocation":"1843:4:10","nodeType":"VariableDeclaration","scope":1853,"src":"1835:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1843,"name":"address","nodeType":"ElementaryTypeName","src":"1835:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1846,"mutability":"mutable","name":"to","nameLocation":"1857:2:10","nodeType":"VariableDeclaration","scope":1853,"src":"1849:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1845,"name":"address","nodeType":"ElementaryTypeName","src":"1849:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1848,"mutability":"mutable","name":"tokenId","nameLocation":"1869:7:10","nodeType":"VariableDeclaration","scope":1853,"src":"1861:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1847,"name":"uint256","nodeType":"ElementaryTypeName","src":"1861:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1850,"mutability":"mutable","name":"data","nameLocation":"1893:4:10","nodeType":"VariableDeclaration","scope":1853,"src":"1878:19:10","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1849,"name":"bytes","nodeType":"ElementaryTypeName","src":"1878:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1834:64:10"},"returnParameters":{"id":1852,"nodeType":"ParameterList","parameters":[],"src":"1907:0:10"},"scope":1908,"src":"1809:99:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1854,"nodeType":"StructuredDocumentation","src":"1914:687:10","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":1863,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2615:16:10","nodeType":"FunctionDefinition","parameters":{"id":1861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1856,"mutability":"mutable","name":"from","nameLocation":"2640:4:10","nodeType":"VariableDeclaration","scope":1863,"src":"2632:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1855,"name":"address","nodeType":"ElementaryTypeName","src":"2632:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1858,"mutability":"mutable","name":"to","nameLocation":"2654:2:10","nodeType":"VariableDeclaration","scope":1863,"src":"2646:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1857,"name":"address","nodeType":"ElementaryTypeName","src":"2646:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1860,"mutability":"mutable","name":"tokenId","nameLocation":"2666:7:10","nodeType":"VariableDeclaration","scope":1863,"src":"2658:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1859,"name":"uint256","nodeType":"ElementaryTypeName","src":"2658:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2631:43:10"},"returnParameters":{"id":1862,"nodeType":"ParameterList","parameters":[],"src":"2683:0:10"},"scope":1908,"src":"2606:78:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1864,"nodeType":"StructuredDocumentation","src":"2690:732:10","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721\n or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must\n understand this adds an external call which potentially creates a reentrancy vulnerability.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":1873,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3436:12:10","nodeType":"FunctionDefinition","parameters":{"id":1871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1866,"mutability":"mutable","name":"from","nameLocation":"3457:4:10","nodeType":"VariableDeclaration","scope":1873,"src":"3449:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1865,"name":"address","nodeType":"ElementaryTypeName","src":"3449:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1868,"mutability":"mutable","name":"to","nameLocation":"3471:2:10","nodeType":"VariableDeclaration","scope":1873,"src":"3463:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1867,"name":"address","nodeType":"ElementaryTypeName","src":"3463:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1870,"mutability":"mutable","name":"tokenId","nameLocation":"3483:7:10","nodeType":"VariableDeclaration","scope":1873,"src":"3475:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1869,"name":"uint256","nodeType":"ElementaryTypeName","src":"3475:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3448:43:10"},"returnParameters":{"id":1872,"nodeType":"ParameterList","parameters":[],"src":"3500:0:10"},"scope":1908,"src":"3427:74:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1874,"nodeType":"StructuredDocumentation","src":"3507:452:10","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":1881,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3973:7:10","nodeType":"FunctionDefinition","parameters":{"id":1879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1876,"mutability":"mutable","name":"to","nameLocation":"3989:2:10","nodeType":"VariableDeclaration","scope":1881,"src":"3981:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1875,"name":"address","nodeType":"ElementaryTypeName","src":"3981:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1878,"mutability":"mutable","name":"tokenId","nameLocation":"4001:7:10","nodeType":"VariableDeclaration","scope":1881,"src":"3993:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1877,"name":"uint256","nodeType":"ElementaryTypeName","src":"3993:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3980:29:10"},"returnParameters":{"id":1880,"nodeType":"ParameterList","parameters":[],"src":"4018:0:10"},"scope":1908,"src":"3964:55:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1882,"nodeType":"StructuredDocumentation","src":"4025:309:10","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":1889,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4348:17:10","nodeType":"FunctionDefinition","parameters":{"id":1887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1884,"mutability":"mutable","name":"operator","nameLocation":"4374:8:10","nodeType":"VariableDeclaration","scope":1889,"src":"4366:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1883,"name":"address","nodeType":"ElementaryTypeName","src":"4366:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1886,"mutability":"mutable","name":"approved","nameLocation":"4389:8:10","nodeType":"VariableDeclaration","scope":1889,"src":"4384:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1885,"name":"bool","nodeType":"ElementaryTypeName","src":"4384:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4365:33:10"},"returnParameters":{"id":1888,"nodeType":"ParameterList","parameters":[],"src":"4407:0:10"},"scope":1908,"src":"4339:69:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1890,"nodeType":"StructuredDocumentation","src":"4414:139:10","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":1897,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4567:11:10","nodeType":"FunctionDefinition","parameters":{"id":1893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1892,"mutability":"mutable","name":"tokenId","nameLocation":"4587:7:10","nodeType":"VariableDeclaration","scope":1897,"src":"4579:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1891,"name":"uint256","nodeType":"ElementaryTypeName","src":"4579:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4578:17:10"},"returnParameters":{"id":1896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1895,"mutability":"mutable","name":"operator","nameLocation":"4627:8:10","nodeType":"VariableDeclaration","scope":1897,"src":"4619:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1894,"name":"address","nodeType":"ElementaryTypeName","src":"4619:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4618:18:10"},"scope":1908,"src":"4558:79:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1898,"nodeType":"StructuredDocumentation","src":"4643:138:10","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":1907,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4795:16:10","nodeType":"FunctionDefinition","parameters":{"id":1903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1900,"mutability":"mutable","name":"owner","nameLocation":"4820:5:10","nodeType":"VariableDeclaration","scope":1907,"src":"4812:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1899,"name":"address","nodeType":"ElementaryTypeName","src":"4812:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1902,"mutability":"mutable","name":"operator","nameLocation":"4835:8:10","nodeType":"VariableDeclaration","scope":1907,"src":"4827:16:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1901,"name":"address","nodeType":"ElementaryTypeName","src":"4827:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4811:33:10"},"returnParameters":{"id":1906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1907,"src":"4868:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1904,"name":"bool","nodeType":"ElementaryTypeName","src":"4868:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4867:6:10"},"scope":1908,"src":"4786:88:10","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1909,"src":"250:4626:10","usedErrors":[],"usedEvents":[1807,1816,1825]}],"src":"108:4769:10"},"id":10},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[1926]},"id":1927,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1910,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"116:23:11"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":1911,"nodeType":"StructuredDocumentation","src":"141:152:11","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":1926,"linearizedBaseContracts":[1926],"name":"IERC721Receiver","nameLocation":"304:15:11","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1912,"nodeType":"StructuredDocumentation","src":"326:493:11","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":1925,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"833:16:11","nodeType":"FunctionDefinition","parameters":{"id":1921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1914,"mutability":"mutable","name":"operator","nameLocation":"867:8:11","nodeType":"VariableDeclaration","scope":1925,"src":"859:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1913,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1916,"mutability":"mutable","name":"from","nameLocation":"893:4:11","nodeType":"VariableDeclaration","scope":1925,"src":"885:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1915,"name":"address","nodeType":"ElementaryTypeName","src":"885:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1918,"mutability":"mutable","name":"tokenId","nameLocation":"915:7:11","nodeType":"VariableDeclaration","scope":1925,"src":"907:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1917,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1920,"mutability":"mutable","name":"data","nameLocation":"947:4:11","nodeType":"VariableDeclaration","scope":1925,"src":"932:19:11","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1919,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"849:108:11"},"returnParameters":{"id":1924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1925,"src":"976:6:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1922,"name":"bytes4","nodeType":"ElementaryTypeName","src":"976:6:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"975:8:11"},"scope":1926,"src":"824:160:11","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1927,"src":"294:692:11","usedErrors":[],"usedEvents":[]}],"src":"116:871:11"},"id":11},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC165":[3845],"IERC721":[1908],"IERC721Metadata":[1953]},"id":1954,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1928,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:12"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":1929,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1954,"sourceUnit":1909,"src":"137:24:12","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1931,"name":"IERC721","nameLocations":["326:7:12"],"nodeType":"IdentifierPath","referencedDeclaration":1908,"src":"326:7:12"},"id":1932,"nodeType":"InheritanceSpecifier","src":"326:7:12"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":1930,"nodeType":"StructuredDocumentation","src":"163:133:12","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":1953,"linearizedBaseContracts":[1953,1908,3845],"name":"IERC721Metadata","nameLocation":"307:15:12","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1933,"nodeType":"StructuredDocumentation","src":"340:58:12","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":1938,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"412:4:12","nodeType":"FunctionDefinition","parameters":{"id":1934,"nodeType":"ParameterList","parameters":[],"src":"416:2:12"},"returnParameters":{"id":1937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1938,"src":"442:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1935,"name":"string","nodeType":"ElementaryTypeName","src":"442:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"441:15:12"},"scope":1953,"src":"403:54:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1939,"nodeType":"StructuredDocumentation","src":"463:60:12","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":1944,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"537:6:12","nodeType":"FunctionDefinition","parameters":{"id":1940,"nodeType":"ParameterList","parameters":[],"src":"543:2:12"},"returnParameters":{"id":1943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1944,"src":"569:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1941,"name":"string","nodeType":"ElementaryTypeName","src":"569:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"568:15:12"},"scope":1953,"src":"528:56:12","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1945,"nodeType":"StructuredDocumentation","src":"590:90:12","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":1952,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"694:8:12","nodeType":"FunctionDefinition","parameters":{"id":1948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1947,"mutability":"mutable","name":"tokenId","nameLocation":"711:7:12","nodeType":"VariableDeclaration","scope":1952,"src":"703:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1946,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:17:12"},"returnParameters":{"id":1951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1950,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1952,"src":"743:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1949,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"742:15:12"},"scope":1953,"src":"685:73:12","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1954,"src":"297:463:12","usedErrors":[],"usedEvents":[1807,1816,1825]}],"src":"112:649:12"},"id":12},"@openzeppelin/contracts/token/common/ERC2981.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/common/ERC2981.sol","exportedSymbols":{"ERC165":[3833],"ERC2981":[2151],"IERC165":[3845],"IERC2981":[228]},"id":2152,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1955,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:13"},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC2981.sol","file":"../../interfaces/IERC2981.sol","id":1956,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2152,"sourceUnit":229,"src":"133:39:13","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":1957,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2152,"sourceUnit":3834,"src":"173:46:13","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1959,"name":"IERC2981","nameLocations":["1125:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":228,"src":"1125:8:13"},"id":1960,"nodeType":"InheritanceSpecifier","src":"1125:8:13"},{"baseName":{"id":1961,"name":"ERC165","nameLocations":["1135:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":3833,"src":"1135:6:13"},"id":1962,"nodeType":"InheritanceSpecifier","src":"1135:6:13"}],"canonicalName":"ERC2981","contractDependencies":[],"contractKind":"contract","documentation":{"id":1958,"nodeType":"StructuredDocumentation","src":"221:874:13","text":" @dev Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information.\n Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for\n specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first.\n Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the\n fee is specified in basis points by default.\n IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See\n https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to\n voluntarily pay royalties together with sales, but note that this standard is not yet widely supported.\n _Available since v4.5._"},"fullyImplemented":true,"id":2151,"linearizedBaseContracts":[2151,3833,228,3845],"name":"ERC2981","nameLocation":"1114:7:13","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ERC2981.RoyaltyInfo","id":1967,"members":[{"constant":false,"id":1964,"mutability":"mutable","name":"receiver","nameLocation":"1185:8:13","nodeType":"VariableDeclaration","scope":1967,"src":"1177:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1963,"name":"address","nodeType":"ElementaryTypeName","src":"1177:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1966,"mutability":"mutable","name":"royaltyFraction","nameLocation":"1210:15:13","nodeType":"VariableDeclaration","scope":1967,"src":"1203:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":1965,"name":"uint96","nodeType":"ElementaryTypeName","src":"1203:6:13","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"name":"RoyaltyInfo","nameLocation":"1155:11:13","nodeType":"StructDefinition","scope":2151,"src":"1148:84:13","visibility":"public"},{"constant":false,"id":1970,"mutability":"mutable","name":"_defaultRoyaltyInfo","nameLocation":"1258:19:13","nodeType":"VariableDeclaration","scope":2151,"src":"1238:39:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage","typeString":"struct ERC2981.RoyaltyInfo"},"typeName":{"id":1969,"nodeType":"UserDefinedTypeName","pathNode":{"id":1968,"name":"RoyaltyInfo","nameLocations":["1238:11:13"],"nodeType":"IdentifierPath","referencedDeclaration":1967,"src":"1238:11:13"},"referencedDeclaration":1967,"src":"1238:11:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage_ptr","typeString":"struct ERC2981.RoyaltyInfo"}},"visibility":"private"},{"constant":false,"id":1975,"mutability":"mutable","name":"_tokenRoyaltyInfo","nameLocation":"1323:17:13","nodeType":"VariableDeclaration","scope":2151,"src":"1283:57:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$1967_storage_$","typeString":"mapping(uint256 => struct ERC2981.RoyaltyInfo)"},"typeName":{"id":1974,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1971,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1283:31:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$1967_storage_$","typeString":"mapping(uint256 => struct ERC2981.RoyaltyInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1973,"nodeType":"UserDefinedTypeName","pathNode":{"id":1972,"name":"RoyaltyInfo","nameLocations":["1302:11:13"],"nodeType":"IdentifierPath","referencedDeclaration":1967,"src":"1302:11:13"},"referencedDeclaration":1967,"src":"1302:11:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage_ptr","typeString":"struct ERC2981.RoyaltyInfo"}}},"visibility":"private"},{"baseFunctions":[3832,3844],"body":{"id":1998,"nodeType":"Block","src":"1516:105:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1986,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1978,"src":"1533:11:13","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1988,"name":"IERC2981","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"1553:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC2981_$228_$","typeString":"type(contract IERC2981)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC2981_$228_$","typeString":"type(contract IERC2981)"}],"id":1987,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1548:4:13","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1548:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC2981_$228","typeString":"type(contract IERC2981)"}},"id":1990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1563:11:13","memberName":"interfaceId","nodeType":"MemberAccess","src":"1548:26:13","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1533:41:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1994,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1978,"src":"1602:11:13","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":1992,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1578:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC2981_$2151_$","typeString":"type(contract super ERC2981)"}},"id":1993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1584:17:13","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":3832,"src":"1578:23:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1578:36:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1533:81:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1985,"id":1997,"nodeType":"Return","src":"1526:88:13"}]},"documentation":{"id":1976,"nodeType":"StructuredDocumentation","src":"1347:56:13","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":1999,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1417:17:13","nodeType":"FunctionDefinition","overrides":{"id":1982,"nodeType":"OverrideSpecifier","overrides":[{"id":1980,"name":"IERC165","nameLocations":["1484:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3845,"src":"1484:7:13"},{"id":1981,"name":"ERC165","nameLocations":["1493:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":3833,"src":"1493:6:13"}],"src":"1475:25:13"},"parameters":{"id":1979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1978,"mutability":"mutable","name":"interfaceId","nameLocation":"1442:11:13","nodeType":"VariableDeclaration","scope":1999,"src":"1435:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1977,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1435:6:13","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1434:20:13"},"returnParameters":{"id":1985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1984,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1999,"src":"1510:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1983,"name":"bool","nodeType":"ElementaryTypeName","src":"1510:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1509:6:13"},"scope":2151,"src":"1408:213:13","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[227],"body":{"id":2048,"nodeType":"Block","src":"1784:315:13","statements":[{"assignments":[2014],"declarations":[{"constant":false,"id":2014,"mutability":"mutable","name":"royalty","nameLocation":"1813:7:13","nodeType":"VariableDeclaration","scope":2048,"src":"1794:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo"},"typeName":{"id":2013,"nodeType":"UserDefinedTypeName","pathNode":{"id":2012,"name":"RoyaltyInfo","nameLocations":["1794:11:13"],"nodeType":"IdentifierPath","referencedDeclaration":1967,"src":"1794:11:13"},"referencedDeclaration":1967,"src":"1794:11:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage_ptr","typeString":"struct ERC2981.RoyaltyInfo"}},"visibility":"internal"}],"id":2018,"initialValue":{"baseExpression":{"id":2015,"name":"_tokenRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"1823:17:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$1967_storage_$","typeString":"mapping(uint256 => struct ERC2981.RoyaltyInfo storage ref)"}},"id":2017,"indexExpression":{"id":2016,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2002,"src":"1841:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1823:26:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"1794:55:13"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2019,"name":"royalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"1864:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"id":2020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1872:8:13","memberName":"receiver","nodeType":"MemberAccess","referencedDeclaration":1964,"src":"1864:16:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1892:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1884:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2021,"name":"address","nodeType":"ElementaryTypeName","src":"1884:7:13","typeDescriptions":{}}},"id":2024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1884:10:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1864:30:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2031,"nodeType":"IfStatement","src":"1860:90:13","trueBody":{"id":2030,"nodeType":"Block","src":"1896:54:13","statements":[{"expression":{"id":2028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2026,"name":"royalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"1910:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2027,"name":"_defaultRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1970,"src":"1920:19:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"src":"1910:29:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"id":2029,"nodeType":"ExpressionStatement","src":"1910:29:13"}]}},{"assignments":[2033],"declarations":[{"constant":false,"id":2033,"mutability":"mutable","name":"royaltyAmount","nameLocation":"1968:13:13","nodeType":"VariableDeclaration","scope":2048,"src":"1960:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2032,"name":"uint256","nodeType":"ElementaryTypeName","src":"1960:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2042,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2034,"name":"salePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2004,"src":"1985:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":2035,"name":"royalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"1997:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"id":2036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2005:15:13","memberName":"royaltyFraction","nodeType":"MemberAccess","referencedDeclaration":1966,"src":"1997:23:13","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"1985:35:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2038,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1984:37:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2039,"name":"_feeDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2058,"src":"2024:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint96_$","typeString":"function () pure returns (uint96)"}},"id":2040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2024:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"1984:57:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1960:81:13"},{"expression":{"components":[{"expression":{"id":2043,"name":"royalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2014,"src":"2060:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"id":2044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2068:8:13","memberName":"receiver","nodeType":"MemberAccess","referencedDeclaration":1964,"src":"2060:16:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2045,"name":"royaltyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2033,"src":"2078:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2046,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2059:33:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"functionReturnParameters":2011,"id":2047,"nodeType":"Return","src":"2052:40:13"}]},"documentation":{"id":2000,"nodeType":"StructuredDocumentation","src":"1627:39:13","text":" @inheritdoc IERC2981"},"functionSelector":"2a55205a","id":2049,"implemented":true,"kind":"function","modifiers":[],"name":"royaltyInfo","nameLocation":"1680:11:13","nodeType":"FunctionDefinition","overrides":{"id":2006,"nodeType":"OverrideSpecifier","overrides":[],"src":"1748:8:13"},"parameters":{"id":2005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2002,"mutability":"mutable","name":"tokenId","nameLocation":"1700:7:13","nodeType":"VariableDeclaration","scope":2049,"src":"1692:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2001,"name":"uint256","nodeType":"ElementaryTypeName","src":"1692:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2004,"mutability":"mutable","name":"salePrice","nameLocation":"1717:9:13","nodeType":"VariableDeclaration","scope":2049,"src":"1709:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2003,"name":"uint256","nodeType":"ElementaryTypeName","src":"1709:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1691:36:13"},"returnParameters":{"id":2011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2049,"src":"1766:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2007,"name":"address","nodeType":"ElementaryTypeName","src":"1766:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2010,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2049,"src":"1775:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2009,"name":"uint256","nodeType":"ElementaryTypeName","src":"1775:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1765:18:13"},"scope":2151,"src":"1671:428:13","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2057,"nodeType":"Block","src":"2440:29:13","statements":[{"expression":{"hexValue":"3130303030","id":2055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2457:5:13","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"functionReturnParameters":2054,"id":2056,"nodeType":"Return","src":"2450:12:13"}]},"documentation":{"id":2050,"nodeType":"StructuredDocumentation","src":"2105:264:13","text":" @dev The denominator with which to interpret the fee set in {_setTokenRoyalty} and {_setDefaultRoyalty} as a\n fraction of the sale price. Defaults to 10000 so fees are expressed in basis points, but may be customized by an\n override."},"id":2058,"implemented":true,"kind":"function","modifiers":[],"name":"_feeDenominator","nameLocation":"2383:15:13","nodeType":"FunctionDefinition","parameters":{"id":2051,"nodeType":"ParameterList","parameters":[],"src":"2398:2:13"},"returnParameters":{"id":2054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2053,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2058,"src":"2432:6:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2052,"name":"uint96","nodeType":"ElementaryTypeName","src":"2432:6:13","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"2431:8:13"},"scope":2151,"src":"2374:95:13","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":2091,"nodeType":"Block","src":"2814:243:13","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":2070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2067,"name":"feeNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2063,"src":"2832:12:13","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2068,"name":"_feeDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2058,"src":"2848:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint96_$","typeString":"function () pure returns (uint96)"}},"id":2069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2848:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"2832:33:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243323938313a20726f79616c7479206665652077696c6c206578636565642073616c655072696365","id":2071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2867:44:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d","typeString":"literal_string \"ERC2981: royalty fee will exceed salePrice\""},"value":"ERC2981: royalty fee will exceed salePrice"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d","typeString":"literal_string \"ERC2981: royalty fee will exceed salePrice\""}],"id":2066,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2824:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2824:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2073,"nodeType":"ExpressionStatement","src":"2824:88:13"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2075,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2061,"src":"2930:8:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2950:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2942:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2076,"name":"address","nodeType":"ElementaryTypeName","src":"2942:7:13","typeDescriptions":{}}},"id":2079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2942:10:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2930:22:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243323938313a20696e76616c6964207265636569766572","id":2081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2954:27:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_f66a1010ca1024f054dcd95a016427c9d452e7f1ceb553ccd3a5e37073a6ffff","typeString":"literal_string \"ERC2981: invalid receiver\""},"value":"ERC2981: invalid receiver"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f66a1010ca1024f054dcd95a016427c9d452e7f1ceb553ccd3a5e37073a6ffff","typeString":"literal_string \"ERC2981: invalid receiver\""}],"id":2074,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2922:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2922:60:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2083,"nodeType":"ExpressionStatement","src":"2922:60:13"},{"expression":{"id":2089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2084,"name":"_defaultRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1970,"src":"2993:19:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2086,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2061,"src":"3027:8:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2087,"name":"feeNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2063,"src":"3037:12:13","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":2085,"name":"RoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"3015:11:13","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RoyaltyInfo_$1967_storage_ptr_$","typeString":"type(struct ERC2981.RoyaltyInfo storage pointer)"}},"id":2088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3015:35:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"src":"2993:57:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"id":2090,"nodeType":"ExpressionStatement","src":"2993:57:13"}]},"documentation":{"id":2059,"nodeType":"StructuredDocumentation","src":"2475:250:13","text":" @dev Sets the royalty information that all ids in this contract will default to.\n Requirements:\n - `receiver` cannot be the zero address.\n - `feeNumerator` cannot be greater than the fee denominator."},"id":2092,"implemented":true,"kind":"function","modifiers":[],"name":"_setDefaultRoyalty","nameLocation":"2739:18:13","nodeType":"FunctionDefinition","parameters":{"id":2064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2061,"mutability":"mutable","name":"receiver","nameLocation":"2766:8:13","nodeType":"VariableDeclaration","scope":2092,"src":"2758:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2060,"name":"address","nodeType":"ElementaryTypeName","src":"2758:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2063,"mutability":"mutable","name":"feeNumerator","nameLocation":"2783:12:13","nodeType":"VariableDeclaration","scope":2092,"src":"2776:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2062,"name":"uint96","nodeType":"ElementaryTypeName","src":"2776:6:13","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"2757:39:13"},"returnParameters":{"id":2065,"nodeType":"ParameterList","parameters":[],"src":"2814:0:13"},"scope":2151,"src":"2730:327:13","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2099,"nodeType":"Block","src":"3178:43:13","statements":[{"expression":{"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3188:26:13","subExpression":{"id":2096,"name":"_defaultRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1970,"src":"3195:19:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2098,"nodeType":"ExpressionStatement","src":"3188:26:13"}]},"documentation":{"id":2093,"nodeType":"StructuredDocumentation","src":"3063:60:13","text":" @dev Removes default royalty information."},"id":2100,"implemented":true,"kind":"function","modifiers":[],"name":"_deleteDefaultRoyalty","nameLocation":"3137:21:13","nodeType":"FunctionDefinition","parameters":{"id":2094,"nodeType":"ParameterList","parameters":[],"src":"3158:2:13"},"returnParameters":{"id":2095,"nodeType":"ParameterList","parameters":[],"src":"3178:0:13"},"scope":2151,"src":"3128:93:13","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2137,"nodeType":"Block","src":"3590:252:13","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint96","typeString":"uint96"},"id":2114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2111,"name":"feeNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3608:12:13","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2112,"name":"_feeDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2058,"src":"3624:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint96_$","typeString":"function () pure returns (uint96)"}},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3624:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"3608:33:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243323938313a20726f79616c7479206665652077696c6c206578636565642073616c655072696365","id":2115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3643:44:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d","typeString":"literal_string \"ERC2981: royalty fee will exceed salePrice\""},"value":"ERC2981: royalty fee will exceed salePrice"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d","typeString":"literal_string \"ERC2981: royalty fee will exceed salePrice\""}],"id":2110,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3600:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3600:88:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2117,"nodeType":"ExpressionStatement","src":"3600:88:13"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2119,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2105,"src":"3706:8:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3726:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3718:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2120,"name":"address","nodeType":"ElementaryTypeName","src":"3718:7:13","typeDescriptions":{}}},"id":2123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3718:10:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3706:22:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243323938313a20496e76616c696420706172616d6574657273","id":2125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3730:29:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_d20a09dd8b4080dbbc254e38d9f607ef83a2c7a38b671ae8f8f162ffe46e2084","typeString":"literal_string \"ERC2981: Invalid parameters\""},"value":"ERC2981: Invalid parameters"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d20a09dd8b4080dbbc254e38d9f607ef83a2c7a38b671ae8f8f162ffe46e2084","typeString":"literal_string \"ERC2981: Invalid parameters\""}],"id":2118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3698:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3698:62:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2127,"nodeType":"ExpressionStatement","src":"3698:62:13"},{"expression":{"id":2135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2128,"name":"_tokenRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"3771:17:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$1967_storage_$","typeString":"mapping(uint256 => struct ERC2981.RoyaltyInfo storage ref)"}},"id":2130,"indexExpression":{"id":2129,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2103,"src":"3789:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3771:26:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2132,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2105,"src":"3812:8:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2133,"name":"feeNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"3822:12:13","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":2131,"name":"RoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"3800:11:13","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RoyaltyInfo_$1967_storage_ptr_$","typeString":"type(struct ERC2981.RoyaltyInfo storage pointer)"}},"id":2134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:35:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_memory_ptr","typeString":"struct ERC2981.RoyaltyInfo memory"}},"src":"3771:64:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"id":2136,"nodeType":"ExpressionStatement","src":"3771:64:13"}]},"documentation":{"id":2101,"nodeType":"StructuredDocumentation","src":"3227:259:13","text":" @dev Sets the royalty information for a specific token id, overriding the global default.\n Requirements:\n - `receiver` cannot be the zero address.\n - `feeNumerator` cannot be greater than the fee denominator."},"id":2138,"implemented":true,"kind":"function","modifiers":[],"name":"_setTokenRoyalty","nameLocation":"3500:16:13","nodeType":"FunctionDefinition","parameters":{"id":2108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2103,"mutability":"mutable","name":"tokenId","nameLocation":"3525:7:13","nodeType":"VariableDeclaration","scope":2138,"src":"3517:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2102,"name":"uint256","nodeType":"ElementaryTypeName","src":"3517:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2105,"mutability":"mutable","name":"receiver","nameLocation":"3542:8:13","nodeType":"VariableDeclaration","scope":2138,"src":"3534:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2104,"name":"address","nodeType":"ElementaryTypeName","src":"3534:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2107,"mutability":"mutable","name":"feeNumerator","nameLocation":"3559:12:13","nodeType":"VariableDeclaration","scope":2138,"src":"3552:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":2106,"name":"uint96","nodeType":"ElementaryTypeName","src":"3552:6:13","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"3516:56:13"},"returnParameters":{"id":2109,"nodeType":"ParameterList","parameters":[],"src":"3590:0:13"},"scope":2151,"src":"3491:351:13","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2149,"nodeType":"Block","src":"4010:50:13","statements":[{"expression":{"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4020:33:13","subExpression":{"baseExpression":{"id":2144,"name":"_tokenRoyaltyInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"4027:17:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$1967_storage_$","typeString":"mapping(uint256 => struct ERC2981.RoyaltyInfo storage ref)"}},"id":2146,"indexExpression":{"id":2145,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2141,"src":"4045:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4027:26:13","typeDescriptions":{"typeIdentifier":"t_struct$_RoyaltyInfo_$1967_storage","typeString":"struct ERC2981.RoyaltyInfo storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2148,"nodeType":"ExpressionStatement","src":"4020:33:13"}]},"documentation":{"id":2139,"nodeType":"StructuredDocumentation","src":"3848:95:13","text":" @dev Resets royalty information for the token id back to the global default."},"id":2150,"implemented":true,"kind":"function","modifiers":[],"name":"_resetTokenRoyalty","nameLocation":"3957:18:13","nodeType":"FunctionDefinition","parameters":{"id":2142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2141,"mutability":"mutable","name":"tokenId","nameLocation":"3984:7:13","nodeType":"VariableDeclaration","scope":2150,"src":"3976:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2140,"name":"uint256","nodeType":"ElementaryTypeName","src":"3976:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3975:17:13"},"returnParameters":{"id":2143,"nodeType":"ParameterList","parameters":[],"src":"4010:0:13"},"scope":2151,"src":"3948:112:13","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":2152,"src":"1096:2966:13","usedErrors":[],"usedEvents":[]}],"src":"108:3955:13"},"id":13},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[2481]},"id":2482,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2153,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:14"},{"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":2154,"nodeType":"StructuredDocumentation","src":"126:67:14","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":2481,"linearizedBaseContracts":[2481],"name":"Address","nameLocation":"202:7:14","nodeType":"ContractDefinition","nodes":[{"body":{"id":2168,"nodeType":"Block","src":"1478:254:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":2162,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2157,"src":"1702:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1710:4:14","memberName":"code","nodeType":"MemberAccess","src":"1702:12:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1715:6:14","memberName":"length","nodeType":"MemberAccess","src":"1702:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1724:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1702:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2161,"id":2167,"nodeType":"Return","src":"1695:30:14"}]},"documentation":{"id":2155,"nodeType":"StructuredDocumentation","src":"216:1191:14","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n  - an externally-owned account\n  - a contract in construction\n  - an address where a contract will be created\n  - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":2169,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1421:10:14","nodeType":"FunctionDefinition","parameters":{"id":2158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2157,"mutability":"mutable","name":"account","nameLocation":"1440:7:14","nodeType":"VariableDeclaration","scope":2169,"src":"1432:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2156,"name":"address","nodeType":"ElementaryTypeName","src":"1432:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1431:17:14"},"returnParameters":{"id":2161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2169,"src":"1472:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2159,"name":"bool","nodeType":"ElementaryTypeName","src":"1472:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1471:6:14"},"scope":2481,"src":"1412:320:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2202,"nodeType":"Block","src":"2718:241:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2180,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2744:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$2481","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$2481","typeString":"library Address"}],"id":2179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2736:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2178,"name":"address","nodeType":"ElementaryTypeName","src":"2736:7:14","typeDescriptions":{}}},"id":2181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2736:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2750:7:14","memberName":"balance","nodeType":"MemberAccess","src":"2736:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2183,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2174,"src":"2761:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2736:31:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":2185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2769:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":2177,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2728:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2187,"nodeType":"ExpressionStatement","src":"2728:73:14"},{"assignments":[2189,null],"declarations":[{"constant":false,"id":2189,"mutability":"mutable","name":"success","nameLocation":"2818:7:14","nodeType":"VariableDeclaration","scope":2202,"src":"2813:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2188,"name":"bool","nodeType":"ElementaryTypeName","src":"2813:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":2196,"initialValue":{"arguments":[{"hexValue":"","id":2194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2861:2:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":2190,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2172,"src":"2831:9:14","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2841:4:14","memberName":"call","nodeType":"MemberAccess","src":"2831:14:14","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":2192,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2174,"src":"2853:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2831:29:14","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2831:33:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2812:52:14"},{"expression":{"arguments":[{"id":2198,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2189,"src":"2882:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":2199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2891:60:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":2197,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2874:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2874:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2201,"nodeType":"ExpressionStatement","src":"2874:78:14"}]},"documentation":{"id":2170,"nodeType":"StructuredDocumentation","src":"1738:904:14","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":2203,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2656:9:14","nodeType":"FunctionDefinition","parameters":{"id":2175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2172,"mutability":"mutable","name":"recipient","nameLocation":"2682:9:14","nodeType":"VariableDeclaration","scope":2203,"src":"2666:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2171,"name":"address","nodeType":"ElementaryTypeName","src":"2666:15:14","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":2174,"mutability":"mutable","name":"amount","nameLocation":"2701:6:14","nodeType":"VariableDeclaration","scope":2203,"src":"2693:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2173,"name":"uint256","nodeType":"ElementaryTypeName","src":"2693:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2665:43:14"},"returnParameters":{"id":2176,"nodeType":"ParameterList","parameters":[],"src":"2718:0:14"},"scope":2481,"src":"2647:312:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2220,"nodeType":"Block","src":"3790:96:14","statements":[{"expression":{"arguments":[{"id":2214,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2206,"src":"3829:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2215,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2208,"src":"3837:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":2216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3843:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":2217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3846:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":2213,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2261,2305],"referencedDeclaration":2305,"src":"3807:21:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":2218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3807:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2212,"id":2219,"nodeType":"Return","src":"3800:79:14"}]},"documentation":{"id":2204,"nodeType":"StructuredDocumentation","src":"2965:731:14","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":2221,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3710:12:14","nodeType":"FunctionDefinition","parameters":{"id":2209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2206,"mutability":"mutable","name":"target","nameLocation":"3731:6:14","nodeType":"VariableDeclaration","scope":2221,"src":"3723:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2205,"name":"address","nodeType":"ElementaryTypeName","src":"3723:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2208,"mutability":"mutable","name":"data","nameLocation":"3752:4:14","nodeType":"VariableDeclaration","scope":2221,"src":"3739:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2207,"name":"bytes","nodeType":"ElementaryTypeName","src":"3739:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3722:35:14"},"returnParameters":{"id":2212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2221,"src":"3776:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2210,"name":"bytes","nodeType":"ElementaryTypeName","src":"3776:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3775:14:14"},"scope":2481,"src":"3701:185:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2240,"nodeType":"Block","src":"4255:76:14","statements":[{"expression":{"arguments":[{"id":2234,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2224,"src":"4294:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2235,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2226,"src":"4302:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":2236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4308:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":2237,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2228,"src":"4311:12:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2233,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2261,2305],"referencedDeclaration":2305,"src":"4272:21:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":2238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4272:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2232,"id":2239,"nodeType":"Return","src":"4265:59:14"}]},"documentation":{"id":2222,"nodeType":"StructuredDocumentation","src":"3892:211:14","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":2241,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4117:12:14","nodeType":"FunctionDefinition","parameters":{"id":2229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2224,"mutability":"mutable","name":"target","nameLocation":"4147:6:14","nodeType":"VariableDeclaration","scope":2241,"src":"4139:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2223,"name":"address","nodeType":"ElementaryTypeName","src":"4139:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2226,"mutability":"mutable","name":"data","nameLocation":"4176:4:14","nodeType":"VariableDeclaration","scope":2241,"src":"4163:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2225,"name":"bytes","nodeType":"ElementaryTypeName","src":"4163:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2228,"mutability":"mutable","name":"errorMessage","nameLocation":"4204:12:14","nodeType":"VariableDeclaration","scope":2241,"src":"4190:26:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2227,"name":"string","nodeType":"ElementaryTypeName","src":"4190:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4129:93:14"},"returnParameters":{"id":2232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2241,"src":"4241:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2230,"name":"bytes","nodeType":"ElementaryTypeName","src":"4241:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4240:14:14"},"scope":2481,"src":"4108:223:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2260,"nodeType":"Block","src":"4806:111:14","statements":[{"expression":{"arguments":[{"id":2254,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2244,"src":"4845:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2255,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2246,"src":"4853:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2256,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"4859:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":2257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4866:43:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":2253,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[2261,2305],"referencedDeclaration":2305,"src":"4823:21:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":2258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4823:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2252,"id":2259,"nodeType":"Return","src":"4816:94:14"}]},"documentation":{"id":2242,"nodeType":"StructuredDocumentation","src":"4337:351:14","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":2261,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4702:21:14","nodeType":"FunctionDefinition","parameters":{"id":2249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2244,"mutability":"mutable","name":"target","nameLocation":"4732:6:14","nodeType":"VariableDeclaration","scope":2261,"src":"4724:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2243,"name":"address","nodeType":"ElementaryTypeName","src":"4724:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2246,"mutability":"mutable","name":"data","nameLocation":"4753:4:14","nodeType":"VariableDeclaration","scope":2261,"src":"4740:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2245,"name":"bytes","nodeType":"ElementaryTypeName","src":"4740:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2248,"mutability":"mutable","name":"value","nameLocation":"4767:5:14","nodeType":"VariableDeclaration","scope":2261,"src":"4759:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2247,"name":"uint256","nodeType":"ElementaryTypeName","src":"4759:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4723:50:14"},"returnParameters":{"id":2252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2261,"src":"4792:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2250,"name":"bytes","nodeType":"ElementaryTypeName","src":"4792:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4791:14:14"},"scope":2481,"src":"4693:224:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2304,"nodeType":"Block","src":"5344:267:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2278,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5370:4:14","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$2481","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$2481","typeString":"library Address"}],"id":2277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5362:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2276,"name":"address","nodeType":"ElementaryTypeName","src":"5362:7:14","typeDescriptions":{}}},"id":2279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5362:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5376:7:14","memberName":"balance","nodeType":"MemberAccess","src":"5362:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2281,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"5387:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5362:30:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":2283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5394:40:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":2275,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5354:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5354:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2285,"nodeType":"ExpressionStatement","src":"5354:81:14"},{"assignments":[2287,2289],"declarations":[{"constant":false,"id":2287,"mutability":"mutable","name":"success","nameLocation":"5451:7:14","nodeType":"VariableDeclaration","scope":2304,"src":"5446:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2286,"name":"bool","nodeType":"ElementaryTypeName","src":"5446:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2289,"mutability":"mutable","name":"returndata","nameLocation":"5473:10:14","nodeType":"VariableDeclaration","scope":2304,"src":"5460:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2288,"name":"bytes","nodeType":"ElementaryTypeName","src":"5460:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2296,"initialValue":{"arguments":[{"id":2294,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2266,"src":"5513:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2290,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2264,"src":"5487:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5494:4:14","memberName":"call","nodeType":"MemberAccess","src":"5487:11:14","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":2292,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2268,"src":"5506:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5487:25:14","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5445:73:14"},{"expression":{"arguments":[{"id":2298,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2264,"src":"5562:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2299,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2287,"src":"5570:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2300,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"5579:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2301,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2270,"src":"5591:12:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2297,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"5535:26:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":2302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5535:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2274,"id":2303,"nodeType":"Return","src":"5528:76:14"}]},"documentation":{"id":2262,"nodeType":"StructuredDocumentation","src":"4923:237:14","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":2305,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5174:21:14","nodeType":"FunctionDefinition","parameters":{"id":2271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2264,"mutability":"mutable","name":"target","nameLocation":"5213:6:14","nodeType":"VariableDeclaration","scope":2305,"src":"5205:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2263,"name":"address","nodeType":"ElementaryTypeName","src":"5205:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2266,"mutability":"mutable","name":"data","nameLocation":"5242:4:14","nodeType":"VariableDeclaration","scope":2305,"src":"5229:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2265,"name":"bytes","nodeType":"ElementaryTypeName","src":"5229:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2268,"mutability":"mutable","name":"value","nameLocation":"5264:5:14","nodeType":"VariableDeclaration","scope":2305,"src":"5256:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2267,"name":"uint256","nodeType":"ElementaryTypeName","src":"5256:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2270,"mutability":"mutable","name":"errorMessage","nameLocation":"5293:12:14","nodeType":"VariableDeclaration","scope":2305,"src":"5279:26:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2269,"name":"string","nodeType":"ElementaryTypeName","src":"5279:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5195:116:14"},"returnParameters":{"id":2274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2305,"src":"5330:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2272,"name":"bytes","nodeType":"ElementaryTypeName","src":"5330:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5329:14:14"},"scope":2481,"src":"5165:446:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2321,"nodeType":"Block","src":"5888:97:14","statements":[{"expression":{"arguments":[{"id":2316,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"5924:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2317,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2310,"src":"5932:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":2318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5938:39:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":2315,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[2322,2351],"referencedDeclaration":2351,"src":"5905:18:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":2319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2314,"id":2320,"nodeType":"Return","src":"5898:80:14"}]},"documentation":{"id":2306,"nodeType":"StructuredDocumentation","src":"5617:166:14","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":2322,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5797:18:14","nodeType":"FunctionDefinition","parameters":{"id":2311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2308,"mutability":"mutable","name":"target","nameLocation":"5824:6:14","nodeType":"VariableDeclaration","scope":2322,"src":"5816:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2307,"name":"address","nodeType":"ElementaryTypeName","src":"5816:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2310,"mutability":"mutable","name":"data","nameLocation":"5845:4:14","nodeType":"VariableDeclaration","scope":2322,"src":"5832:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2309,"name":"bytes","nodeType":"ElementaryTypeName","src":"5832:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5815:35:14"},"returnParameters":{"id":2314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2313,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2322,"src":"5874:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2312,"name":"bytes","nodeType":"ElementaryTypeName","src":"5874:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5873:14:14"},"scope":2481,"src":"5788:197:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2350,"nodeType":"Block","src":"6327:168:14","statements":[{"assignments":[2335,2337],"declarations":[{"constant":false,"id":2335,"mutability":"mutable","name":"success","nameLocation":"6343:7:14","nodeType":"VariableDeclaration","scope":2350,"src":"6338:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2334,"name":"bool","nodeType":"ElementaryTypeName","src":"6338:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2337,"mutability":"mutable","name":"returndata","nameLocation":"6365:10:14","nodeType":"VariableDeclaration","scope":2350,"src":"6352:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2336,"name":"bytes","nodeType":"ElementaryTypeName","src":"6352:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2342,"initialValue":{"arguments":[{"id":2340,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"6397:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2338,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2325,"src":"6379:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6386:10:14","memberName":"staticcall","nodeType":"MemberAccess","src":"6379:17:14","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":2341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6379:23:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6337:65:14"},{"expression":{"arguments":[{"id":2344,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2325,"src":"6446:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2345,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2335,"src":"6454:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2346,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"6463:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2347,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2329,"src":"6475:12:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2343,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"6419:26:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":2348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6419:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2333,"id":2349,"nodeType":"Return","src":"6412:76:14"}]},"documentation":{"id":2323,"nodeType":"StructuredDocumentation","src":"5991:173:14","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":2351,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6178:18:14","nodeType":"FunctionDefinition","parameters":{"id":2330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2325,"mutability":"mutable","name":"target","nameLocation":"6214:6:14","nodeType":"VariableDeclaration","scope":2351,"src":"6206:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2324,"name":"address","nodeType":"ElementaryTypeName","src":"6206:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2327,"mutability":"mutable","name":"data","nameLocation":"6243:4:14","nodeType":"VariableDeclaration","scope":2351,"src":"6230:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2326,"name":"bytes","nodeType":"ElementaryTypeName","src":"6230:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2329,"mutability":"mutable","name":"errorMessage","nameLocation":"6271:12:14","nodeType":"VariableDeclaration","scope":2351,"src":"6257:26:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2328,"name":"string","nodeType":"ElementaryTypeName","src":"6257:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6196:93:14"},"returnParameters":{"id":2333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2332,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2351,"src":"6313:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2331,"name":"bytes","nodeType":"ElementaryTypeName","src":"6313:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6312:14:14"},"scope":2481,"src":"6169:326:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2367,"nodeType":"Block","src":"6771:101:14","statements":[{"expression":{"arguments":[{"id":2362,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2354,"src":"6809:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2363,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2356,"src":"6817:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":2364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6823:41:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":2361,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[2368,2397],"referencedDeclaration":2397,"src":"6788:20:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":2365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6788:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2360,"id":2366,"nodeType":"Return","src":"6781:84:14"}]},"documentation":{"id":2352,"nodeType":"StructuredDocumentation","src":"6501:168:14","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":2368,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6683:20:14","nodeType":"FunctionDefinition","parameters":{"id":2357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2354,"mutability":"mutable","name":"target","nameLocation":"6712:6:14","nodeType":"VariableDeclaration","scope":2368,"src":"6704:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2353,"name":"address","nodeType":"ElementaryTypeName","src":"6704:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2356,"mutability":"mutable","name":"data","nameLocation":"6733:4:14","nodeType":"VariableDeclaration","scope":2368,"src":"6720:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2355,"name":"bytes","nodeType":"ElementaryTypeName","src":"6720:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6703:35:14"},"returnParameters":{"id":2360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2368,"src":"6757:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2358,"name":"bytes","nodeType":"ElementaryTypeName","src":"6757:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6756:14:14"},"scope":2481,"src":"6674:198:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2396,"nodeType":"Block","src":"7213:170:14","statements":[{"assignments":[2381,2383],"declarations":[{"constant":false,"id":2381,"mutability":"mutable","name":"success","nameLocation":"7229:7:14","nodeType":"VariableDeclaration","scope":2396,"src":"7224:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2380,"name":"bool","nodeType":"ElementaryTypeName","src":"7224:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2383,"mutability":"mutable","name":"returndata","nameLocation":"7251:10:14","nodeType":"VariableDeclaration","scope":2396,"src":"7238:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2382,"name":"bytes","nodeType":"ElementaryTypeName","src":"7238:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2388,"initialValue":{"arguments":[{"id":2386,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"7285:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2384,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"7265:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7272:12:14","memberName":"delegatecall","nodeType":"MemberAccess","src":"7265:19:14","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":2387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7265:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7223:67:14"},{"expression":{"arguments":[{"id":2390,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"7334:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2391,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2381,"src":"7342:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":2392,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2383,"src":"7351:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2393,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2375,"src":"7363:12:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2389,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"7307:26:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":2394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7307:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2379,"id":2395,"nodeType":"Return","src":"7300:76:14"}]},"documentation":{"id":2369,"nodeType":"StructuredDocumentation","src":"6878:175:14","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":2397,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7067:20:14","nodeType":"FunctionDefinition","parameters":{"id":2376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2371,"mutability":"mutable","name":"target","nameLocation":"7105:6:14","nodeType":"VariableDeclaration","scope":2397,"src":"7097:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2370,"name":"address","nodeType":"ElementaryTypeName","src":"7097:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2373,"mutability":"mutable","name":"data","nameLocation":"7134:4:14","nodeType":"VariableDeclaration","scope":2397,"src":"7121:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2372,"name":"bytes","nodeType":"ElementaryTypeName","src":"7121:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2375,"mutability":"mutable","name":"errorMessage","nameLocation":"7162:12:14","nodeType":"VariableDeclaration","scope":2397,"src":"7148:26:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2374,"name":"string","nodeType":"ElementaryTypeName","src":"7148:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7087:93:14"},"returnParameters":{"id":2379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2397,"src":"7199:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2377,"name":"bytes","nodeType":"ElementaryTypeName","src":"7199:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7198:14:14"},"scope":2481,"src":"7058:325:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2435,"nodeType":"Block","src":"7865:434:14","statements":[{"condition":{"id":2411,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2402,"src":"7879:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2433,"nodeType":"Block","src":"8235:58:14","statements":[{"expression":{"arguments":[{"id":2429,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2404,"src":"8257:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2430,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2406,"src":"8269:12:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2428,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"8249:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8249:33:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2432,"nodeType":"ExpressionStatement","src":"8249:33:14"}]},"id":2434,"nodeType":"IfStatement","src":"7875:418:14","trueBody":{"id":2427,"nodeType":"Block","src":"7888:341:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2412,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2404,"src":"7906:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7917:6:14","memberName":"length","nodeType":"MemberAccess","src":"7906:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7927:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7906:22:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2424,"nodeType":"IfStatement","src":"7902:286:14","trueBody":{"id":2423,"nodeType":"Block","src":"7930:258:14","statements":[{"expression":{"arguments":[{"arguments":[{"id":2418,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2400,"src":"8132:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2417,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"8121:10:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":2419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8121:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":2420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8141:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":2416,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8113:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8113:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2422,"nodeType":"ExpressionStatement","src":"8113:60:14"}]}},{"expression":{"id":2425,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2404,"src":"8208:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2410,"id":2426,"nodeType":"Return","src":"8201:17:14"}]}}]},"documentation":{"id":2398,"nodeType":"StructuredDocumentation","src":"7389:277:14","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"id":2436,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7680:26:14","nodeType":"FunctionDefinition","parameters":{"id":2407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2400,"mutability":"mutable","name":"target","nameLocation":"7724:6:14","nodeType":"VariableDeclaration","scope":2436,"src":"7716:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2399,"name":"address","nodeType":"ElementaryTypeName","src":"7716:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2402,"mutability":"mutable","name":"success","nameLocation":"7745:7:14","nodeType":"VariableDeclaration","scope":2436,"src":"7740:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2401,"name":"bool","nodeType":"ElementaryTypeName","src":"7740:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2404,"mutability":"mutable","name":"returndata","nameLocation":"7775:10:14","nodeType":"VariableDeclaration","scope":2436,"src":"7762:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2403,"name":"bytes","nodeType":"ElementaryTypeName","src":"7762:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2406,"mutability":"mutable","name":"errorMessage","nameLocation":"7809:12:14","nodeType":"VariableDeclaration","scope":2436,"src":"7795:26:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2405,"name":"string","nodeType":"ElementaryTypeName","src":"7795:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7706:121:14"},"returnParameters":{"id":2410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2436,"src":"7851:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2408,"name":"bytes","nodeType":"ElementaryTypeName","src":"7851:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7850:14:14"},"scope":2481,"src":"7671:628:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2459,"nodeType":"Block","src":"8680:135:14","statements":[{"condition":{"id":2448,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2439,"src":"8694:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2457,"nodeType":"Block","src":"8751:58:14","statements":[{"expression":{"arguments":[{"id":2453,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2441,"src":"8773:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2454,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2443,"src":"8785:12:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2452,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"8765:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":2455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8765:33:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2456,"nodeType":"ExpressionStatement","src":"8765:33:14"}]},"id":2458,"nodeType":"IfStatement","src":"8690:119:14","trueBody":{"id":2451,"nodeType":"Block","src":"8703:42:14","statements":[{"expression":{"id":2449,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2441,"src":"8724:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":2447,"id":2450,"nodeType":"Return","src":"8717:17:14"}]}}]},"documentation":{"id":2437,"nodeType":"StructuredDocumentation","src":"8305:210:14","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"id":2460,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8529:16:14","nodeType":"FunctionDefinition","parameters":{"id":2444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2439,"mutability":"mutable","name":"success","nameLocation":"8560:7:14","nodeType":"VariableDeclaration","scope":2460,"src":"8555:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2438,"name":"bool","nodeType":"ElementaryTypeName","src":"8555:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2441,"mutability":"mutable","name":"returndata","nameLocation":"8590:10:14","nodeType":"VariableDeclaration","scope":2460,"src":"8577:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2440,"name":"bytes","nodeType":"ElementaryTypeName","src":"8577:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2443,"mutability":"mutable","name":"errorMessage","nameLocation":"8624:12:14","nodeType":"VariableDeclaration","scope":2460,"src":"8610:26:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2442,"name":"string","nodeType":"ElementaryTypeName","src":"8610:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8545:97:14"},"returnParameters":{"id":2447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2446,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2460,"src":"8666:12:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2445,"name":"bytes","nodeType":"ElementaryTypeName","src":"8666:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8665:14:14"},"scope":2481,"src":"8520:295:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2479,"nodeType":"Block","src":"8904:457:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2467,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2462,"src":"8980:10:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8991:6:14","memberName":"length","nodeType":"MemberAccess","src":"8980:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9000:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8980:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2477,"nodeType":"Block","src":"9310:45:14","statements":[{"expression":{"arguments":[{"id":2474,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2464,"src":"9331:12:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2473,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9324:6:14","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9324:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2476,"nodeType":"ExpressionStatement","src":"9324:20:14"}]},"id":2478,"nodeType":"IfStatement","src":"8976:379:14","trueBody":{"id":2472,"nodeType":"Block","src":"9003:301:14","statements":[{"AST":{"nativeSrc":"9161:133:14","nodeType":"YulBlock","src":"9161:133:14","statements":[{"nativeSrc":"9179:40:14","nodeType":"YulVariableDeclaration","src":"9179:40:14","value":{"arguments":[{"name":"returndata","nativeSrc":"9208:10:14","nodeType":"YulIdentifier","src":"9208:10:14"}],"functionName":{"name":"mload","nativeSrc":"9202:5:14","nodeType":"YulIdentifier","src":"9202:5:14"},"nativeSrc":"9202:17:14","nodeType":"YulFunctionCall","src":"9202:17:14"},"variables":[{"name":"returndata_size","nativeSrc":"9183:15:14","nodeType":"YulTypedName","src":"9183:15:14","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9247:2:14","nodeType":"YulLiteral","src":"9247:2:14","type":"","value":"32"},{"name":"returndata","nativeSrc":"9251:10:14","nodeType":"YulIdentifier","src":"9251:10:14"}],"functionName":{"name":"add","nativeSrc":"9243:3:14","nodeType":"YulIdentifier","src":"9243:3:14"},"nativeSrc":"9243:19:14","nodeType":"YulFunctionCall","src":"9243:19:14"},{"name":"returndata_size","nativeSrc":"9264:15:14","nodeType":"YulIdentifier","src":"9264:15:14"}],"functionName":{"name":"revert","nativeSrc":"9236:6:14","nodeType":"YulIdentifier","src":"9236:6:14"},"nativeSrc":"9236:44:14","nodeType":"YulFunctionCall","src":"9236:44:14"},"nativeSrc":"9236:44:14","nodeType":"YulExpressionStatement","src":"9236:44:14"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2462,"isOffset":false,"isSlot":false,"src":"9208:10:14","valueSize":1},{"declaration":2462,"isOffset":false,"isSlot":false,"src":"9251:10:14","valueSize":1}],"id":2471,"nodeType":"InlineAssembly","src":"9152:142:14"}]}}]},"id":2480,"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8830:7:14","nodeType":"FunctionDefinition","parameters":{"id":2465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2462,"mutability":"mutable","name":"returndata","nameLocation":"8851:10:14","nodeType":"VariableDeclaration","scope":2480,"src":"8838:23:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2461,"name":"bytes","nodeType":"ElementaryTypeName","src":"8838:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2464,"mutability":"mutable","name":"errorMessage","nameLocation":"8877:12:14","nodeType":"VariableDeclaration","scope":2480,"src":"8863:26:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2463,"name":"string","nodeType":"ElementaryTypeName","src":"8863:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8837:53:14"},"returnParameters":{"id":2466,"nodeType":"ParameterList","parameters":[],"src":"8904:0:14"},"scope":2481,"src":"8821:540:14","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":2482,"src":"194:9169:14","usedErrors":[],"usedEvents":[]}],"src":"101:9263:14"},"id":14},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[2511]},"id":2512,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2483,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:15"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":2484,"nodeType":"StructuredDocumentation","src":"126:496:15","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":2511,"linearizedBaseContracts":[2511],"name":"Context","nameLocation":"641:7:15","nodeType":"ContractDefinition","nodes":[{"body":{"id":2492,"nodeType":"Block","src":"717:34:15","statements":[{"expression":{"expression":{"id":2489,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"734:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"738:6:15","memberName":"sender","nodeType":"MemberAccess","src":"734:10:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2488,"id":2491,"nodeType":"Return","src":"727:17:15"}]},"id":2493,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"664:10:15","nodeType":"FunctionDefinition","parameters":{"id":2485,"nodeType":"ParameterList","parameters":[],"src":"674:2:15"},"returnParameters":{"id":2488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2493,"src":"708:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2486,"name":"address","nodeType":"ElementaryTypeName","src":"708:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"707:9:15"},"scope":2511,"src":"655:96:15","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2501,"nodeType":"Block","src":"824:32:15","statements":[{"expression":{"expression":{"id":2498,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"841:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:4:15","memberName":"data","nodeType":"MemberAccess","src":"841:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":2497,"id":2500,"nodeType":"Return","src":"834:15:15"}]},"id":2502,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"766:8:15","nodeType":"FunctionDefinition","parameters":{"id":2494,"nodeType":"ParameterList","parameters":[],"src":"774:2:15"},"returnParameters":{"id":2497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2502,"src":"808:14:15","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2495,"name":"bytes","nodeType":"ElementaryTypeName","src":"808:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"807:16:15"},"scope":2511,"src":"757:99:15","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2509,"nodeType":"Block","src":"934:25:15","statements":[{"expression":{"hexValue":"30","id":2507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2506,"id":2508,"nodeType":"Return","src":"944:8:15"}]},"id":2510,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"871:20:15","nodeType":"FunctionDefinition","parameters":{"id":2503,"nodeType":"ParameterList","parameters":[],"src":"891:2:15"},"returnParameters":{"id":2506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2510,"src":"925:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2504,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"924:9:15"},"scope":2511,"src":"862:97:15","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":2512,"src":"623:338:15","usedErrors":[],"usedEvents":[]}],"src":"101:861:15"},"id":15},"@openzeppelin/contracts/utils/Counters.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","exportedSymbols":{"Counters":[2585]},"id":2586,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2513,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"87:23:16"},{"abstract":false,"baseContracts":[],"canonicalName":"Counters","contractDependencies":[],"contractKind":"library","documentation":{"id":2514,"nodeType":"StructuredDocumentation","src":"112:311:16","text":" @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`"},"fullyImplemented":true,"id":2585,"linearizedBaseContracts":[2585],"name":"Counters","nameLocation":"432:8:16","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Counters.Counter","id":2517,"members":[{"constant":false,"id":2516,"mutability":"mutable","name":"_value","nameLocation":"794:6:16","nodeType":"VariableDeclaration","scope":2517,"src":"786:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2515,"name":"uint256","nodeType":"ElementaryTypeName","src":"786:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Counter","nameLocation":"454:7:16","nodeType":"StructDefinition","scope":2585,"src":"447:374:16","visibility":"public"},{"body":{"id":2528,"nodeType":"Block","src":"901:38:16","statements":[{"expression":{"expression":{"id":2525,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2520,"src":"918:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":2526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"926:6:16","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"918:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2524,"id":2527,"nodeType":"Return","src":"911:21:16"}]},"id":2529,"implemented":true,"kind":"function","modifiers":[],"name":"current","nameLocation":"836:7:16","nodeType":"FunctionDefinition","parameters":{"id":2521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2520,"mutability":"mutable","name":"counter","nameLocation":"860:7:16","nodeType":"VariableDeclaration","scope":2529,"src":"844:23:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":2519,"nodeType":"UserDefinedTypeName","pathNode":{"id":2518,"name":"Counter","nameLocations":["844:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":2517,"src":"844:7:16"},"referencedDeclaration":2517,"src":"844:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"843:25:16"},"returnParameters":{"id":2524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2529,"src":"892:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2522,"name":"uint256","nodeType":"ElementaryTypeName","src":"892:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:9:16"},"scope":2585,"src":"827:112:16","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2542,"nodeType":"Block","src":"998:70:16","statements":[{"id":2541,"nodeType":"UncheckedBlock","src":"1008:54:16","statements":[{"expression":{"id":2539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2535,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2532,"src":"1032:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":2537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1040:6:16","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"1032:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1032:19:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2540,"nodeType":"ExpressionStatement","src":"1032:19:16"}]}]},"id":2543,"implemented":true,"kind":"function","modifiers":[],"name":"increment","nameLocation":"954:9:16","nodeType":"FunctionDefinition","parameters":{"id":2533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2532,"mutability":"mutable","name":"counter","nameLocation":"980:7:16","nodeType":"VariableDeclaration","scope":2543,"src":"964:23:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":2531,"nodeType":"UserDefinedTypeName","pathNode":{"id":2530,"name":"Counter","nameLocations":["964:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":2517,"src":"964:7:16"},"referencedDeclaration":2517,"src":"964:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"963:25:16"},"returnParameters":{"id":2534,"nodeType":"ParameterList","parameters":[],"src":"998:0:16"},"scope":2585,"src":"945:123:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2570,"nodeType":"Block","src":"1127:176:16","statements":[{"assignments":[2550],"declarations":[{"constant":false,"id":2550,"mutability":"mutable","name":"value","nameLocation":"1145:5:16","nodeType":"VariableDeclaration","scope":2570,"src":"1137:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2549,"name":"uint256","nodeType":"ElementaryTypeName","src":"1137:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2553,"initialValue":{"expression":{"id":2551,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2546,"src":"1153:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":2552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1161:6:16","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"1153:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1137:30:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2555,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2550,"src":"1185:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1193:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1185:9:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f756e7465723a2064656372656d656e74206f766572666c6f77","id":2558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1196:29:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""},"value":"Counter: decrement overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f","typeString":"literal_string \"Counter: decrement overflow\""}],"id":2554,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1177:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1177:49:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2560,"nodeType":"ExpressionStatement","src":"1177:49:16"},{"id":2569,"nodeType":"UncheckedBlock","src":"1236:61:16","statements":[{"expression":{"id":2567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2561,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2546,"src":"1260:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":2563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1268:6:16","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"1260:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2564,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2550,"src":"1277:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1285:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1277:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1260:26:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2568,"nodeType":"ExpressionStatement","src":"1260:26:16"}]}]},"id":2571,"implemented":true,"kind":"function","modifiers":[],"name":"decrement","nameLocation":"1083:9:16","nodeType":"FunctionDefinition","parameters":{"id":2547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2546,"mutability":"mutable","name":"counter","nameLocation":"1109:7:16","nodeType":"VariableDeclaration","scope":2571,"src":"1093:23:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":2545,"nodeType":"UserDefinedTypeName","pathNode":{"id":2544,"name":"Counter","nameLocations":["1093:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":2517,"src":"1093:7:16"},"referencedDeclaration":2517,"src":"1093:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1092:25:16"},"returnParameters":{"id":2548,"nodeType":"ParameterList","parameters":[],"src":"1127:0:16"},"scope":2585,"src":"1074:229:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2583,"nodeType":"Block","src":"1358:35:16","statements":[{"expression":{"id":2581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2577,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"1368:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter storage pointer"}},"id":2579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1376:6:16","memberName":"_value","nodeType":"MemberAccess","referencedDeclaration":2516,"src":"1368:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1385:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1368:18:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2582,"nodeType":"ExpressionStatement","src":"1368:18:16"}]},"id":2584,"implemented":true,"kind":"function","modifiers":[],"name":"reset","nameLocation":"1318:5:16","nodeType":"FunctionDefinition","parameters":{"id":2575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2574,"mutability":"mutable","name":"counter","nameLocation":"1340:7:16","nodeType":"VariableDeclaration","scope":2584,"src":"1324:23:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter"},"typeName":{"id":2573,"nodeType":"UserDefinedTypeName","pathNode":{"id":2572,"name":"Counter","nameLocations":["1324:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":2517,"src":"1324:7:16"},"referencedDeclaration":2517,"src":"1324:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"internal"}],"src":"1323:25:16"},"returnParameters":{"id":2576,"nodeType":"ParameterList","parameters":[],"src":"1358:0:16"},"scope":2585,"src":"1309:84:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":2586,"src":"424:971:16","usedErrors":[],"usedEvents":[]}],"src":"87:1309:16"},"id":16},"@openzeppelin/contracts/utils/ShortStrings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/ShortStrings.sol","exportedSymbols":{"ShortString":[2590],"ShortStrings":[2801],"StorageSlot":[2911]},"id":2802,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2587,"literals":["solidity","^","0.8",".8"],"nodeType":"PragmaDirective","src":"106:23:17"},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"./StorageSlot.sol","id":2588,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2802,"sourceUnit":2912,"src":"131:27:17","symbolAliases":[],"unitAlias":""},{"canonicalName":"ShortString","id":2590,"name":"ShortString","nameLocation":"333:11:17","nodeType":"UserDefinedValueTypeDefinition","src":"328:28:17","underlyingType":{"id":2589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"348:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"abstract":false,"baseContracts":[],"canonicalName":"ShortStrings","contractDependencies":[],"contractKind":"library","documentation":{"id":2591,"nodeType":"StructuredDocumentation","src":"358:876:17","text":" @dev This library provides functions to convert short memory strings\n into a `ShortString` type that can be used as an immutable variable.\n Strings of arbitrary length can be optimized using this library if\n they are short enough (up to 31 bytes) by packing them with their\n length (1 byte) in a single EVM word (32 bytes). Additionally, a\n fallback mechanism can be used for every other case.\n Usage example:\n ```solidity\n contract Named {\n     using ShortStrings for *;\n     ShortString private immutable _name;\n     string private _nameFallback;\n     constructor(string memory contractName) {\n         _name = contractName.toShortStringWithFallback(_nameFallback);\n     }\n     function name() external view returns (string memory) {\n         return _name.toStringWithFallback(_nameFallback);\n     }\n }\n ```"},"fullyImplemented":true,"id":2801,"linearizedBaseContracts":[2801],"name":"ShortStrings","nameLocation":"1243:12:17","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2594,"mutability":"constant","name":"_FALLBACK_SENTINEL","nameLocation":"1350:18:17","nodeType":"VariableDeclaration","scope":2801,"src":"1325:112:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1325:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030304646","id":2593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:66:17","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0x00000000000000000000000000000000000000000000000000000000000000FF"},"visibility":"private"},{"errorSelector":"305a27a9","id":2598,"name":"StringTooLong","nameLocation":"1450:13:17","nodeType":"ErrorDefinition","parameters":{"id":2597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2596,"mutability":"mutable","name":"str","nameLocation":"1471:3:17","nodeType":"VariableDeclaration","scope":2598,"src":"1464:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2595,"name":"string","nodeType":"ElementaryTypeName","src":"1464:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1463:12:17"},"src":"1444:32:17"},{"errorSelector":"b3512b0c","id":2600,"name":"InvalidShortString","nameLocation":"1487:18:17","nodeType":"ErrorDefinition","parameters":{"id":2599,"nodeType":"ParameterList","parameters":[],"src":"1505:2:17"},"src":"1481:27:17"},{"body":{"id":2643,"nodeType":"Block","src":"1767:208:17","statements":[{"assignments":[2610],"declarations":[{"constant":false,"id":2610,"mutability":"mutable","name":"bstr","nameLocation":"1790:4:17","nodeType":"VariableDeclaration","scope":2643,"src":"1777:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2609,"name":"bytes","nodeType":"ElementaryTypeName","src":"1777:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2615,"initialValue":{"arguments":[{"id":2613,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2603,"src":"1803:3:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1797:5:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2611,"name":"bytes","nodeType":"ElementaryTypeName","src":"1797:5:17","typeDescriptions":{}}},"id":2614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1797:10:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1777:30:17"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2616,"name":"bstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"1821:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1826:6:17","memberName":"length","nodeType":"MemberAccess","src":"1821:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3331","id":2618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1835:2:17","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"1821:16:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2625,"nodeType":"IfStatement","src":"1817:72:17","trueBody":{"id":2624,"nodeType":"Block","src":"1839:50:17","statements":[{"errorCall":{"arguments":[{"id":2621,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2603,"src":"1874:3:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2620,"name":"StringTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2598,"src":"1860:13:17","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1860:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2623,"nodeType":"RevertStatement","src":"1853:25:17"}]}},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2634,"name":"bstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"1946:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1938:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1938:7:17","typeDescriptions":{}}},"id":2635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1938:13:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1930:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2630,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:17","typeDescriptions":{}}},"id":2636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1930:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"expression":{"id":2637,"name":"bstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"1955:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1960:6:17","memberName":"length","nodeType":"MemberAccess","src":"1955:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1930:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1922:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:17","typeDescriptions":{}}},"id":2640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1922:45:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2626,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2590,"src":"1905:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$2590_$","typeString":"type(ShortString)"}},"id":2627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1917:4:17","memberName":"wrap","nodeType":"MemberAccess","src":"1905:16:17","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_ShortString_$2590_$","typeString":"function (bytes32) pure returns (ShortString)"}},"id":2641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1905:63:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"functionReturnParameters":2608,"id":2642,"nodeType":"Return","src":"1898:70:17"}]},"documentation":{"id":2601,"nodeType":"StructuredDocumentation","src":"1514:170:17","text":" @dev Encode a string of at most 31 chars into a `ShortString`.\n This will trigger a `StringTooLong` error is the input string is too long."},"id":2644,"implemented":true,"kind":"function","modifiers":[],"name":"toShortString","nameLocation":"1698:13:17","nodeType":"FunctionDefinition","parameters":{"id":2604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2603,"mutability":"mutable","name":"str","nameLocation":"1726:3:17","nodeType":"VariableDeclaration","scope":2644,"src":"1712:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2602,"name":"string","nodeType":"ElementaryTypeName","src":"1712:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1711:19:17"},"returnParameters":{"id":2608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2644,"src":"1754:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"},"typeName":{"id":2606,"nodeType":"UserDefinedTypeName","pathNode":{"id":2605,"name":"ShortString","nameLocations":["1754:11:17"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"1754:11:17"},"referencedDeclaration":2590,"src":"1754:11:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"visibility":"internal"}],"src":"1753:13:17"},"scope":2801,"src":"1689:286:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2669,"nodeType":"Block","src":"2133:331:17","statements":[{"assignments":[2654],"declarations":[{"constant":false,"id":2654,"mutability":"mutable","name":"len","nameLocation":"2151:3:17","nodeType":"VariableDeclaration","scope":2669,"src":"2143:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2653,"name":"uint256","nodeType":"ElementaryTypeName","src":"2143:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2658,"initialValue":{"arguments":[{"id":2656,"name":"sstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2648,"src":"2168:4:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}],"id":2655,"name":"byteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2702,"src":"2157:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$2590_$returns$_t_uint256_$","typeString":"function (ShortString) pure returns (uint256)"}},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2157:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2143:30:17"},{"assignments":[2660],"declarations":[{"constant":false,"id":2660,"mutability":"mutable","name":"str","nameLocation":"2275:3:17","nodeType":"VariableDeclaration","scope":2669,"src":"2261:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2659,"name":"string","nodeType":"ElementaryTypeName","src":"2261:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2665,"initialValue":{"arguments":[{"hexValue":"3332","id":2663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2292:2:17","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":2662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2281:10:17","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":2661,"name":"string","nodeType":"ElementaryTypeName","src":"2285:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":2664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:14:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2261:34:17"},{"AST":{"nativeSrc":"2357:81:17","nodeType":"YulBlock","src":"2357:81:17","statements":[{"expression":{"arguments":[{"name":"str","nativeSrc":"2378:3:17","nodeType":"YulIdentifier","src":"2378:3:17"},{"name":"len","nativeSrc":"2383:3:17","nodeType":"YulIdentifier","src":"2383:3:17"}],"functionName":{"name":"mstore","nativeSrc":"2371:6:17","nodeType":"YulIdentifier","src":"2371:6:17"},"nativeSrc":"2371:16:17","nodeType":"YulFunctionCall","src":"2371:16:17"},"nativeSrc":"2371:16:17","nodeType":"YulExpressionStatement","src":"2371:16:17"},{"expression":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"2411:3:17","nodeType":"YulIdentifier","src":"2411:3:17"},{"kind":"number","nativeSrc":"2416:4:17","nodeType":"YulLiteral","src":"2416:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2407:3:17","nodeType":"YulIdentifier","src":"2407:3:17"},"nativeSrc":"2407:14:17","nodeType":"YulFunctionCall","src":"2407:14:17"},{"name":"sstr","nativeSrc":"2423:4:17","nodeType":"YulIdentifier","src":"2423:4:17"}],"functionName":{"name":"mstore","nativeSrc":"2400:6:17","nodeType":"YulIdentifier","src":"2400:6:17"},"nativeSrc":"2400:28:17","nodeType":"YulFunctionCall","src":"2400:28:17"},"nativeSrc":"2400:28:17","nodeType":"YulExpressionStatement","src":"2400:28:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2654,"isOffset":false,"isSlot":false,"src":"2383:3:17","valueSize":1},{"declaration":2648,"isOffset":false,"isSlot":false,"src":"2423:4:17","valueSize":1},{"declaration":2660,"isOffset":false,"isSlot":false,"src":"2378:3:17","valueSize":1},{"declaration":2660,"isOffset":false,"isSlot":false,"src":"2411:3:17","valueSize":1}],"id":2666,"nodeType":"InlineAssembly","src":"2348:90:17"},{"expression":{"id":2667,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2660,"src":"2454:3:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2652,"id":2668,"nodeType":"Return","src":"2447:10:17"}]},"documentation":{"id":2645,"nodeType":"StructuredDocumentation","src":"1981:73:17","text":" @dev Decode a `ShortString` back to a \"normal\" string."},"id":2670,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"2068:8:17","nodeType":"FunctionDefinition","parameters":{"id":2649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2648,"mutability":"mutable","name":"sstr","nameLocation":"2089:4:17","nodeType":"VariableDeclaration","scope":2670,"src":"2077:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"},"typeName":{"id":2647,"nodeType":"UserDefinedTypeName","pathNode":{"id":2646,"name":"ShortString","nameLocations":["2077:11:17"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"2077:11:17"},"referencedDeclaration":2590,"src":"2077:11:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"visibility":"internal"}],"src":"2076:18:17"},"returnParameters":{"id":2652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2670,"src":"2118:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2650,"name":"string","nodeType":"ElementaryTypeName","src":"2118:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2117:15:17"},"scope":2801,"src":"2059:405:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2701,"nodeType":"Block","src":"2606:175:17","statements":[{"assignments":[2680],"declarations":[{"constant":false,"id":2680,"mutability":"mutable","name":"result","nameLocation":"2624:6:17","nodeType":"VariableDeclaration","scope":2701,"src":"2616:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2679,"name":"uint256","nodeType":"ElementaryTypeName","src":"2616:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2690,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2685,"name":"sstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2674,"src":"2660:4:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}],"expression":{"id":2683,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2590,"src":"2641:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$2590_$","typeString":"type(ShortString)"}},"id":2684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2653:6:17","memberName":"unwrap","nodeType":"MemberAccess","src":"2641:18:17","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ShortString_$2590_$returns$_t_bytes32_$","typeString":"function (ShortString) pure returns (bytes32)"}},"id":2686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2633:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2681,"name":"uint256","nodeType":"ElementaryTypeName","src":"2633:7:17","typeDescriptions":{}}},"id":2687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2633:33:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646","id":2688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2669:4:17","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"2633:40:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2616:57:17"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2691,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2680,"src":"2687:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3331","id":2692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2696:2:17","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"2687:11:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2698,"nodeType":"IfStatement","src":"2683:69:17","trueBody":{"id":2697,"nodeType":"Block","src":"2700:52:17","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2694,"name":"InvalidShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2600,"src":"2721:18:17","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2721:20:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2696,"nodeType":"RevertStatement","src":"2714:27:17"}]}},{"expression":{"id":2699,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2680,"src":"2768:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2678,"id":2700,"nodeType":"Return","src":"2761:13:17"}]},"documentation":{"id":2671,"nodeType":"StructuredDocumentation","src":"2470:61:17","text":" @dev Return the length of a `ShortString`."},"id":2702,"implemented":true,"kind":"function","modifiers":[],"name":"byteLength","nameLocation":"2545:10:17","nodeType":"FunctionDefinition","parameters":{"id":2675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2674,"mutability":"mutable","name":"sstr","nameLocation":"2568:4:17","nodeType":"VariableDeclaration","scope":2702,"src":"2556:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"},"typeName":{"id":2673,"nodeType":"UserDefinedTypeName","pathNode":{"id":2672,"name":"ShortString","nameLocations":["2556:11:17"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"2556:11:17"},"referencedDeclaration":2590,"src":"2556:11:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"visibility":"internal"}],"src":"2555:18:17"},"returnParameters":{"id":2678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2677,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2702,"src":"2597:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2676,"name":"uint256","nodeType":"ElementaryTypeName","src":"2597:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2596:9:17"},"scope":2801,"src":"2536:245:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2741,"nodeType":"Block","src":"3004:232:17","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2715,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2705,"src":"3024:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3018:5:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2713,"name":"bytes","nodeType":"ElementaryTypeName","src":"3018:5:17","typeDescriptions":{}}},"id":2716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3018:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3031:6:17","memberName":"length","nodeType":"MemberAccess","src":"3018:19:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3332","id":2718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3040:2:17","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3018:24:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2739,"nodeType":"Block","src":"3102:128:17","statements":[{"expression":{"id":2732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":2728,"name":"store","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2707,"src":"3142:5:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}],"expression":{"id":2725,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"3116:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$2911_$","typeString":"type(library StorageSlot)"}},"id":2727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3128:13:17","memberName":"getStringSlot","nodeType":"MemberAccess","referencedDeclaration":2888,"src":"3116:25:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_storage_ptr_$returns$_t_struct$_StringSlot_$2819_storage_ptr_$","typeString":"function (string storage pointer) pure returns (struct StorageSlot.StringSlot storage pointer)"}},"id":2729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3116:32:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2819_storage_ptr","typeString":"struct StorageSlot.StringSlot storage pointer"}},"id":2730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3149:5:17","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2818,"src":"3116:38:17","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2731,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2705,"src":"3157:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3116:46:17","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":2733,"nodeType":"ExpressionStatement","src":"3116:46:17"},{"expression":{"arguments":[{"id":2736,"name":"_FALLBACK_SENTINEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2594,"src":"3200:18:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2734,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2590,"src":"3183:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$2590_$","typeString":"type(ShortString)"}},"id":2735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3195:4:17","memberName":"wrap","nodeType":"MemberAccess","src":"3183:16:17","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_ShortString_$2590_$","typeString":"function (bytes32) pure returns (ShortString)"}},"id":2737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3183:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"functionReturnParameters":2712,"id":2738,"nodeType":"Return","src":"3176:43:17"}]},"id":2740,"nodeType":"IfStatement","src":"3014:216:17","trueBody":{"id":2724,"nodeType":"Block","src":"3044:52:17","statements":[{"expression":{"arguments":[{"id":2721,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2705,"src":"3079:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2720,"name":"toShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2644,"src":"3065:13:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_userDefinedValueType$_ShortString_$2590_$","typeString":"function (string memory) pure returns (ShortString)"}},"id":2722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3065:20:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"functionReturnParameters":2712,"id":2723,"nodeType":"Return","src":"3058:27:17"}]}}]},"documentation":{"id":2703,"nodeType":"StructuredDocumentation","src":"2787:103:17","text":" @dev Encode a string into a `ShortString`, or write it to storage if it is too long."},"id":2742,"implemented":true,"kind":"function","modifiers":[],"name":"toShortStringWithFallback","nameLocation":"2904:25:17","nodeType":"FunctionDefinition","parameters":{"id":2708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2705,"mutability":"mutable","name":"value","nameLocation":"2944:5:17","nodeType":"VariableDeclaration","scope":2742,"src":"2930:19:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2704,"name":"string","nodeType":"ElementaryTypeName","src":"2930:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2707,"mutability":"mutable","name":"store","nameLocation":"2966:5:17","nodeType":"VariableDeclaration","scope":2742,"src":"2951:20:17","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2706,"name":"string","nodeType":"ElementaryTypeName","src":"2951:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2929:43:17"},"returnParameters":{"id":2712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2711,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2742,"src":"2991:11:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"},"typeName":{"id":2710,"nodeType":"UserDefinedTypeName","pathNode":{"id":2709,"name":"ShortString","nameLocations":["2991:11:17"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"2991:11:17"},"referencedDeclaration":2590,"src":"2991:11:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"visibility":"internal"}],"src":"2990:13:17"},"scope":2801,"src":"2895:341:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2768,"nodeType":"Block","src":"3476:159:17","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2755,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2746,"src":"3509:5:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}],"expression":{"id":2753,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2590,"src":"3490:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$2590_$","typeString":"type(ShortString)"}},"id":2754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3502:6:17","memberName":"unwrap","nodeType":"MemberAccess","src":"3490:18:17","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ShortString_$2590_$returns$_t_bytes32_$","typeString":"function (ShortString) pure returns (bytes32)"}},"id":2756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3490:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2757,"name":"_FALLBACK_SENTINEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2594,"src":"3519:18:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3490:47:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2766,"nodeType":"Block","src":"3592:37:17","statements":[{"expression":{"id":2764,"name":"store","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"3613:5:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}},"functionReturnParameters":2752,"id":2765,"nodeType":"Return","src":"3606:12:17"}]},"id":2767,"nodeType":"IfStatement","src":"3486:143:17","trueBody":{"id":2763,"nodeType":"Block","src":"3539:47:17","statements":[{"expression":{"arguments":[{"id":2760,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2746,"src":"3569:5:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}],"id":2759,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2670,"src":"3560:8:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$2590_$returns$_t_string_memory_ptr_$","typeString":"function (ShortString) pure returns (string memory)"}},"id":2761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3560:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2752,"id":2762,"nodeType":"Return","src":"3553:22:17"}]}}]},"documentation":{"id":2743,"nodeType":"StructuredDocumentation","src":"3242:120:17","text":" @dev Decode a string that was encoded to `ShortString` or written to storage using {setWithFallback}."},"id":2769,"implemented":true,"kind":"function","modifiers":[],"name":"toStringWithFallback","nameLocation":"3376:20:17","nodeType":"FunctionDefinition","parameters":{"id":2749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2746,"mutability":"mutable","name":"value","nameLocation":"3409:5:17","nodeType":"VariableDeclaration","scope":2769,"src":"3397:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"},"typeName":{"id":2745,"nodeType":"UserDefinedTypeName","pathNode":{"id":2744,"name":"ShortString","nameLocations":["3397:11:17"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"3397:11:17"},"referencedDeclaration":2590,"src":"3397:11:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"visibility":"internal"},{"constant":false,"id":2748,"mutability":"mutable","name":"store","nameLocation":"3431:5:17","nodeType":"VariableDeclaration","scope":2769,"src":"3416:20:17","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2747,"name":"string","nodeType":"ElementaryTypeName","src":"3416:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3396:41:17"},"returnParameters":{"id":2752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2769,"src":"3461:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2750,"name":"string","nodeType":"ElementaryTypeName","src":"3461:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3460:15:17"},"scope":2801,"src":"3367:268:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2799,"nodeType":"Block","src":"4108:175:17","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2782,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2773,"src":"4141:5:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}],"expression":{"id":2780,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2590,"src":"4122:11:17","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$2590_$","typeString":"type(ShortString)"}},"id":2781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4134:6:17","memberName":"unwrap","nodeType":"MemberAccess","src":"4122:18:17","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ShortString_$2590_$returns$_t_bytes32_$","typeString":"function (ShortString) pure returns (bytes32)"}},"id":2783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4122:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2784,"name":"_FALLBACK_SENTINEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2594,"src":"4151:18:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4122:47:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2797,"nodeType":"Block","src":"4226:51:17","statements":[{"expression":{"expression":{"arguments":[{"id":2793,"name":"store","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"4253:5:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}],"id":2792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4247:5:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2791,"name":"bytes","nodeType":"ElementaryTypeName","src":"4247:5:17","typeDescriptions":{}}},"id":2794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4247:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},"id":2795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4260:6:17","memberName":"length","nodeType":"MemberAccess","src":"4247:19:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2779,"id":2796,"nodeType":"Return","src":"4240:26:17"}]},"id":2798,"nodeType":"IfStatement","src":"4118:159:17","trueBody":{"id":2790,"nodeType":"Block","src":"4171:49:17","statements":[{"expression":{"arguments":[{"id":2787,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2773,"src":"4203:5:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}],"id":2786,"name":"byteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2702,"src":"4192:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$2590_$returns$_t_uint256_$","typeString":"function (ShortString) pure returns (uint256)"}},"id":2788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4192:17:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2779,"id":2789,"nodeType":"Return","src":"4185:24:17"}]}}]},"documentation":{"id":2770,"nodeType":"StructuredDocumentation","src":"3641:357:17","text":" @dev Return the length of a string that was encoded to `ShortString` or written to storage using {setWithFallback}.\n WARNING: This will return the \"byte length\" of the string. This may not reflect the actual length in terms of\n actual characters as the UTF-8 encoding of a single character can span over multiple bytes."},"id":2800,"implemented":true,"kind":"function","modifiers":[],"name":"byteLengthWithFallback","nameLocation":"4012:22:17","nodeType":"FunctionDefinition","parameters":{"id":2776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2773,"mutability":"mutable","name":"value","nameLocation":"4047:5:17","nodeType":"VariableDeclaration","scope":2800,"src":"4035:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"},"typeName":{"id":2772,"nodeType":"UserDefinedTypeName","pathNode":{"id":2771,"name":"ShortString","nameLocations":["4035:11:17"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"4035:11:17"},"referencedDeclaration":2590,"src":"4035:11:17","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"visibility":"internal"},{"constant":false,"id":2775,"mutability":"mutable","name":"store","nameLocation":"4069:5:17","nodeType":"VariableDeclaration","scope":2800,"src":"4054:20:17","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2774,"name":"string","nodeType":"ElementaryTypeName","src":"4054:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4034:41:17"},"returnParameters":{"id":2779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2800,"src":"4099:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2777,"name":"uint256","nodeType":"ElementaryTypeName","src":"4099:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4098:9:17"},"scope":2801,"src":"4003:280:17","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2802,"src":"1235:3050:17","usedErrors":[2598,2600],"usedEvents":[]}],"src":"106:4180:17"},"id":17},"@openzeppelin/contracts/utils/StorageSlot.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[2911]},"id":2912,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2803,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"193:23:18"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":2804,"nodeType":"StructuredDocumentation","src":"218:1201:18","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```solidity\n contract ERC1967 {\n     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n     function _getImplementation() internal view returns (address) {\n         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n     }\n     function _setImplementation(address newImplementation) internal {\n         require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n     }\n }\n ```\n _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._\n _Available since v4.9 for `string`, `bytes`._"},"fullyImplemented":true,"id":2911,"linearizedBaseContracts":[2911],"name":"StorageSlot","nameLocation":"1428:11:18","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":2807,"members":[{"constant":false,"id":2806,"mutability":"mutable","name":"value","nameLocation":"1483:5:18","nodeType":"VariableDeclaration","scope":2807,"src":"1475:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2805,"name":"address","nodeType":"ElementaryTypeName","src":"1475:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1453:11:18","nodeType":"StructDefinition","scope":2911,"src":"1446:49:18","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":2810,"members":[{"constant":false,"id":2809,"mutability":"mutable","name":"value","nameLocation":"1535:5:18","nodeType":"VariableDeclaration","scope":2810,"src":"1530:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2808,"name":"bool","nodeType":"ElementaryTypeName","src":"1530:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1508:11:18","nodeType":"StructDefinition","scope":2911,"src":"1501:46:18","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":2813,"members":[{"constant":false,"id":2812,"mutability":"mutable","name":"value","nameLocation":"1590:5:18","nodeType":"VariableDeclaration","scope":2813,"src":"1582:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2811,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1582:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1560:11:18","nodeType":"StructDefinition","scope":2911,"src":"1553:49:18","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":2816,"members":[{"constant":false,"id":2815,"mutability":"mutable","name":"value","nameLocation":"1645:5:18","nodeType":"VariableDeclaration","scope":2816,"src":"1637:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2814,"name":"uint256","nodeType":"ElementaryTypeName","src":"1637:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1615:11:18","nodeType":"StructDefinition","scope":2911,"src":"1608:49:18","visibility":"public"},{"canonicalName":"StorageSlot.StringSlot","id":2819,"members":[{"constant":false,"id":2818,"mutability":"mutable","name":"value","nameLocation":"1698:5:18","nodeType":"VariableDeclaration","scope":2819,"src":"1691:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2817,"name":"string","nodeType":"ElementaryTypeName","src":"1691:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"1670:10:18","nodeType":"StructDefinition","scope":2911,"src":"1663:47:18","visibility":"public"},{"canonicalName":"StorageSlot.BytesSlot","id":2822,"members":[{"constant":false,"id":2821,"mutability":"mutable","name":"value","nameLocation":"1749:5:18","nodeType":"VariableDeclaration","scope":2822,"src":"1743:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2820,"name":"bytes","nodeType":"ElementaryTypeName","src":"1743:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"1723:9:18","nodeType":"StructDefinition","scope":2911,"src":"1716:45:18","visibility":"public"},{"body":{"id":2832,"nodeType":"Block","src":"1943:106:18","statements":[{"AST":{"nativeSrc":"2005:38:18","nodeType":"YulBlock","src":"2005:38:18","statements":[{"nativeSrc":"2019:14:18","nodeType":"YulAssignment","src":"2019:14:18","value":{"name":"slot","nativeSrc":"2029:4:18","nodeType":"YulIdentifier","src":"2029:4:18"},"variableNames":[{"name":"r.slot","nativeSrc":"2019:6:18","nodeType":"YulIdentifier","src":"2019:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2829,"isOffset":false,"isSlot":true,"src":"2019:6:18","suffix":"slot","valueSize":1},{"declaration":2825,"isOffset":false,"isSlot":false,"src":"2029:4:18","valueSize":1}],"id":2831,"nodeType":"InlineAssembly","src":"1996:47:18"}]},"documentation":{"id":2823,"nodeType":"StructuredDocumentation","src":"1767:87:18","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":2833,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1868:14:18","nodeType":"FunctionDefinition","parameters":{"id":2826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2825,"mutability":"mutable","name":"slot","nameLocation":"1891:4:18","nodeType":"VariableDeclaration","scope":2833,"src":"1883:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2824,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1883:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1882:14:18"},"returnParameters":{"id":2830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2829,"mutability":"mutable","name":"r","nameLocation":"1940:1:18","nodeType":"VariableDeclaration","scope":2833,"src":"1920:21:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2807_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":2828,"nodeType":"UserDefinedTypeName","pathNode":{"id":2827,"name":"AddressSlot","nameLocations":["1920:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":2807,"src":"1920:11:18"},"referencedDeclaration":2807,"src":"1920:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2807_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1919:23:18"},"scope":2911,"src":"1859:190:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2843,"nodeType":"Block","src":"2231:106:18","statements":[{"AST":{"nativeSrc":"2293:38:18","nodeType":"YulBlock","src":"2293:38:18","statements":[{"nativeSrc":"2307:14:18","nodeType":"YulAssignment","src":"2307:14:18","value":{"name":"slot","nativeSrc":"2317:4:18","nodeType":"YulIdentifier","src":"2317:4:18"},"variableNames":[{"name":"r.slot","nativeSrc":"2307:6:18","nodeType":"YulIdentifier","src":"2307:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2840,"isOffset":false,"isSlot":true,"src":"2307:6:18","suffix":"slot","valueSize":1},{"declaration":2836,"isOffset":false,"isSlot":false,"src":"2317:4:18","valueSize":1}],"id":2842,"nodeType":"InlineAssembly","src":"2284:47:18"}]},"documentation":{"id":2834,"nodeType":"StructuredDocumentation","src":"2055:87:18","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":2844,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"2156:14:18","nodeType":"FunctionDefinition","parameters":{"id":2837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2836,"mutability":"mutable","name":"slot","nameLocation":"2179:4:18","nodeType":"VariableDeclaration","scope":2844,"src":"2171:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2171:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2170:14:18"},"returnParameters":{"id":2841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2840,"mutability":"mutable","name":"r","nameLocation":"2228:1:18","nodeType":"VariableDeclaration","scope":2844,"src":"2208:21:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$2810_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":2839,"nodeType":"UserDefinedTypeName","pathNode":{"id":2838,"name":"BooleanSlot","nameLocations":["2208:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":2810,"src":"2208:11:18"},"referencedDeclaration":2810,"src":"2208:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$2810_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"2207:23:18"},"scope":2911,"src":"2147:190:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2854,"nodeType":"Block","src":"2519:106:18","statements":[{"AST":{"nativeSrc":"2581:38:18","nodeType":"YulBlock","src":"2581:38:18","statements":[{"nativeSrc":"2595:14:18","nodeType":"YulAssignment","src":"2595:14:18","value":{"name":"slot","nativeSrc":"2605:4:18","nodeType":"YulIdentifier","src":"2605:4:18"},"variableNames":[{"name":"r.slot","nativeSrc":"2595:6:18","nodeType":"YulIdentifier","src":"2595:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2851,"isOffset":false,"isSlot":true,"src":"2595:6:18","suffix":"slot","valueSize":1},{"declaration":2847,"isOffset":false,"isSlot":false,"src":"2605:4:18","valueSize":1}],"id":2853,"nodeType":"InlineAssembly","src":"2572:47:18"}]},"documentation":{"id":2845,"nodeType":"StructuredDocumentation","src":"2343:87:18","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":2855,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2444:14:18","nodeType":"FunctionDefinition","parameters":{"id":2848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2847,"mutability":"mutable","name":"slot","nameLocation":"2467:4:18","nodeType":"VariableDeclaration","scope":2855,"src":"2459:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2459:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2458:14:18"},"returnParameters":{"id":2852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2851,"mutability":"mutable","name":"r","nameLocation":"2516:1:18","nodeType":"VariableDeclaration","scope":2855,"src":"2496:21:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2813_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":2850,"nodeType":"UserDefinedTypeName","pathNode":{"id":2849,"name":"Bytes32Slot","nameLocations":["2496:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":2813,"src":"2496:11:18"},"referencedDeclaration":2813,"src":"2496:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2813_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2495:23:18"},"scope":2911,"src":"2435:190:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2865,"nodeType":"Block","src":"2807:106:18","statements":[{"AST":{"nativeSrc":"2869:38:18","nodeType":"YulBlock","src":"2869:38:18","statements":[{"nativeSrc":"2883:14:18","nodeType":"YulAssignment","src":"2883:14:18","value":{"name":"slot","nativeSrc":"2893:4:18","nodeType":"YulIdentifier","src":"2893:4:18"},"variableNames":[{"name":"r.slot","nativeSrc":"2883:6:18","nodeType":"YulIdentifier","src":"2883:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2862,"isOffset":false,"isSlot":true,"src":"2883:6:18","suffix":"slot","valueSize":1},{"declaration":2858,"isOffset":false,"isSlot":false,"src":"2893:4:18","valueSize":1}],"id":2864,"nodeType":"InlineAssembly","src":"2860:47:18"}]},"documentation":{"id":2856,"nodeType":"StructuredDocumentation","src":"2631:87:18","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":2866,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2732:14:18","nodeType":"FunctionDefinition","parameters":{"id":2859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2858,"mutability":"mutable","name":"slot","nameLocation":"2755:4:18","nodeType":"VariableDeclaration","scope":2866,"src":"2747:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2857,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2747:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2746:14:18"},"returnParameters":{"id":2863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2862,"mutability":"mutable","name":"r","nameLocation":"2804:1:18","nodeType":"VariableDeclaration","scope":2866,"src":"2784:21:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2816_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":2861,"nodeType":"UserDefinedTypeName","pathNode":{"id":2860,"name":"Uint256Slot","nameLocations":["2784:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":2816,"src":"2784:11:18"},"referencedDeclaration":2816,"src":"2784:11:18","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2816_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2783:23:18"},"scope":2911,"src":"2723:190:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2876,"nodeType":"Block","src":"3092:106:18","statements":[{"AST":{"nativeSrc":"3154:38:18","nodeType":"YulBlock","src":"3154:38:18","statements":[{"nativeSrc":"3168:14:18","nodeType":"YulAssignment","src":"3168:14:18","value":{"name":"slot","nativeSrc":"3178:4:18","nodeType":"YulIdentifier","src":"3178:4:18"},"variableNames":[{"name":"r.slot","nativeSrc":"3168:6:18","nodeType":"YulIdentifier","src":"3168:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2873,"isOffset":false,"isSlot":true,"src":"3168:6:18","suffix":"slot","valueSize":1},{"declaration":2869,"isOffset":false,"isSlot":false,"src":"3178:4:18","valueSize":1}],"id":2875,"nodeType":"InlineAssembly","src":"3145:47:18"}]},"documentation":{"id":2867,"nodeType":"StructuredDocumentation","src":"2919:86:18","text":" @dev Returns an `StringSlot` with member `value` located at `slot`."},"id":2877,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3019:13:18","nodeType":"FunctionDefinition","parameters":{"id":2870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2869,"mutability":"mutable","name":"slot","nameLocation":"3041:4:18","nodeType":"VariableDeclaration","scope":2877,"src":"3033:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3033:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3032:14:18"},"returnParameters":{"id":2874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2873,"mutability":"mutable","name":"r","nameLocation":"3089:1:18","nodeType":"VariableDeclaration","scope":2877,"src":"3070:20:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2819_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":2872,"nodeType":"UserDefinedTypeName","pathNode":{"id":2871,"name":"StringSlot","nameLocations":["3070:10:18"],"nodeType":"IdentifierPath","referencedDeclaration":2819,"src":"3070:10:18"},"referencedDeclaration":2819,"src":"3070:10:18","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2819_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3069:22:18"},"scope":2911,"src":"3010:188:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2887,"nodeType":"Block","src":"3400:112:18","statements":[{"AST":{"nativeSrc":"3462:44:18","nodeType":"YulBlock","src":"3462:44:18","statements":[{"nativeSrc":"3476:20:18","nodeType":"YulAssignment","src":"3476:20:18","value":{"name":"store.slot","nativeSrc":"3486:10:18","nodeType":"YulIdentifier","src":"3486:10:18"},"variableNames":[{"name":"r.slot","nativeSrc":"3476:6:18","nodeType":"YulIdentifier","src":"3476:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2884,"isOffset":false,"isSlot":true,"src":"3476:6:18","suffix":"slot","valueSize":1},{"declaration":2880,"isOffset":false,"isSlot":true,"src":"3486:10:18","suffix":"slot","valueSize":1}],"id":2886,"nodeType":"InlineAssembly","src":"3453:53:18"}]},"documentation":{"id":2878,"nodeType":"StructuredDocumentation","src":"3204:101:18","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":2888,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3319:13:18","nodeType":"FunctionDefinition","parameters":{"id":2881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2880,"mutability":"mutable","name":"store","nameLocation":"3348:5:18","nodeType":"VariableDeclaration","scope":2888,"src":"3333:20:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2879,"name":"string","nodeType":"ElementaryTypeName","src":"3333:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3332:22:18"},"returnParameters":{"id":2885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2884,"mutability":"mutable","name":"r","nameLocation":"3397:1:18","nodeType":"VariableDeclaration","scope":2888,"src":"3378:20:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2819_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":2883,"nodeType":"UserDefinedTypeName","pathNode":{"id":2882,"name":"StringSlot","nameLocations":["3378:10:18"],"nodeType":"IdentifierPath","referencedDeclaration":2819,"src":"3378:10:18"},"referencedDeclaration":2819,"src":"3378:10:18","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2819_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3377:22:18"},"scope":2911,"src":"3310:202:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2898,"nodeType":"Block","src":"3688:106:18","statements":[{"AST":{"nativeSrc":"3750:38:18","nodeType":"YulBlock","src":"3750:38:18","statements":[{"nativeSrc":"3764:14:18","nodeType":"YulAssignment","src":"3764:14:18","value":{"name":"slot","nativeSrc":"3774:4:18","nodeType":"YulIdentifier","src":"3774:4:18"},"variableNames":[{"name":"r.slot","nativeSrc":"3764:6:18","nodeType":"YulIdentifier","src":"3764:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2895,"isOffset":false,"isSlot":true,"src":"3764:6:18","suffix":"slot","valueSize":1},{"declaration":2891,"isOffset":false,"isSlot":false,"src":"3774:4:18","valueSize":1}],"id":2897,"nodeType":"InlineAssembly","src":"3741:47:18"}]},"documentation":{"id":2889,"nodeType":"StructuredDocumentation","src":"3518:85:18","text":" @dev Returns an `BytesSlot` with member `value` located at `slot`."},"id":2899,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3617:12:18","nodeType":"FunctionDefinition","parameters":{"id":2892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2891,"mutability":"mutable","name":"slot","nameLocation":"3638:4:18","nodeType":"VariableDeclaration","scope":2899,"src":"3630:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2890,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3630:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3629:14:18"},"returnParameters":{"id":2896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2895,"mutability":"mutable","name":"r","nameLocation":"3685:1:18","nodeType":"VariableDeclaration","scope":2899,"src":"3667:19:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2822_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":2894,"nodeType":"UserDefinedTypeName","pathNode":{"id":2893,"name":"BytesSlot","nameLocations":["3667:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":2822,"src":"3667:9:18"},"referencedDeclaration":2822,"src":"3667:9:18","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2822_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"3666:21:18"},"scope":2911,"src":"3608:186:18","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2909,"nodeType":"Block","src":"3991:112:18","statements":[{"AST":{"nativeSrc":"4053:44:18","nodeType":"YulBlock","src":"4053:44:18","statements":[{"nativeSrc":"4067:20:18","nodeType":"YulAssignment","src":"4067:20:18","value":{"name":"store.slot","nativeSrc":"4077:10:18","nodeType":"YulIdentifier","src":"4077:10:18"},"variableNames":[{"name":"r.slot","nativeSrc":"4067:6:18","nodeType":"YulIdentifier","src":"4067:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2906,"isOffset":false,"isSlot":true,"src":"4067:6:18","suffix":"slot","valueSize":1},{"declaration":2902,"isOffset":false,"isSlot":true,"src":"4077:10:18","suffix":"slot","valueSize":1}],"id":2908,"nodeType":"InlineAssembly","src":"4044:53:18"}]},"documentation":{"id":2900,"nodeType":"StructuredDocumentation","src":"3800:99:18","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":2910,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3913:12:18","nodeType":"FunctionDefinition","parameters":{"id":2903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2902,"mutability":"mutable","name":"store","nameLocation":"3940:5:18","nodeType":"VariableDeclaration","scope":2910,"src":"3926:19:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2901,"name":"bytes","nodeType":"ElementaryTypeName","src":"3926:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3925:21:18"},"returnParameters":{"id":2907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2906,"mutability":"mutable","name":"r","nameLocation":"3988:1:18","nodeType":"VariableDeclaration","scope":2910,"src":"3970:19:18","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2822_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":2905,"nodeType":"UserDefinedTypeName","pathNode":{"id":2904,"name":"BytesSlot","nameLocations":["3970:9:18"],"nodeType":"IdentifierPath","referencedDeclaration":2822,"src":"3970:9:18"},"referencedDeclaration":2822,"src":"3970:9:18","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2822_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"3969:21:18"},"scope":2911,"src":"3904:199:18","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2912,"src":"1420:2685:18","usedErrors":[],"usedEvents":[]}],"src":"193:3913:18"},"id":18},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[4711],"SignedMath":[4816],"Strings":[3140]},"id":3141,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2913,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:19"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":2914,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3141,"sourceUnit":4712,"src":"126:25:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":2915,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3141,"sourceUnit":4817,"src":"152:31:19","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":2916,"nodeType":"StructuredDocumentation","src":"185:34:19","text":" @dev String operations."},"fullyImplemented":true,"id":3140,"linearizedBaseContracts":[3140],"name":"Strings","nameLocation":"228:7:19","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2919,"mutability":"constant","name":"_SYMBOLS","nameLocation":"267:8:19","nodeType":"VariableDeclaration","scope":3140,"src":"242:54:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":2917,"name":"bytes16","nodeType":"ElementaryTypeName","src":"242:7:19","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":2918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"278:18:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":2922,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"325:15:19","nodeType":"VariableDeclaration","scope":3140,"src":"302:43:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2920,"name":"uint8","nodeType":"ElementaryTypeName","src":"302:5:19","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":2921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343:2:19","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":2969,"nodeType":"Block","src":"518:625:19","statements":[{"id":2968,"nodeType":"UncheckedBlock","src":"528:609:19","statements":[{"assignments":[2931],"declarations":[{"constant":false,"id":2931,"mutability":"mutable","name":"length","nameLocation":"560:6:19","nodeType":"VariableDeclaration","scope":2968,"src":"552:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2930,"name":"uint256","nodeType":"ElementaryTypeName","src":"552:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2938,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2934,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2925,"src":"580:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2932,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4711,"src":"569:4:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4711_$","typeString":"type(library Math)"}},"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"574:5:19","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":4548,"src":"569:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"569:17:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"589:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"569:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"552:38:19"},{"assignments":[2940],"declarations":[{"constant":false,"id":2940,"mutability":"mutable","name":"buffer","nameLocation":"618:6:19","nodeType":"VariableDeclaration","scope":2968,"src":"604:20:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2939,"name":"string","nodeType":"ElementaryTypeName","src":"604:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2945,"initialValue":{"arguments":[{"id":2943,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2931,"src":"638:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"627:10:19","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":2941,"name":"string","nodeType":"ElementaryTypeName","src":"631:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":2944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:18:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"604:41:19"},{"assignments":[2947],"declarations":[{"constant":false,"id":2947,"mutability":"mutable","name":"ptr","nameLocation":"667:3:19","nodeType":"VariableDeclaration","scope":2968,"src":"659:11:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2946,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2948,"nodeType":"VariableDeclarationStatement","src":"659:11:19"},{"AST":{"nativeSrc":"740:67:19","nodeType":"YulBlock","src":"740:67:19","statements":[{"nativeSrc":"758:35:19","nodeType":"YulAssignment","src":"758:35:19","value":{"arguments":[{"name":"buffer","nativeSrc":"769:6:19","nodeType":"YulIdentifier","src":"769:6:19"},{"arguments":[{"kind":"number","nativeSrc":"781:2:19","nodeType":"YulLiteral","src":"781:2:19","type":"","value":"32"},{"name":"length","nativeSrc":"785:6:19","nodeType":"YulIdentifier","src":"785:6:19"}],"functionName":{"name":"add","nativeSrc":"777:3:19","nodeType":"YulIdentifier","src":"777:3:19"},"nativeSrc":"777:15:19","nodeType":"YulFunctionCall","src":"777:15:19"}],"functionName":{"name":"add","nativeSrc":"765:3:19","nodeType":"YulIdentifier","src":"765:3:19"},"nativeSrc":"765:28:19","nodeType":"YulFunctionCall","src":"765:28:19"},"variableNames":[{"name":"ptr","nativeSrc":"758:3:19","nodeType":"YulIdentifier","src":"758:3:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2940,"isOffset":false,"isSlot":false,"src":"769:6:19","valueSize":1},{"declaration":2931,"isOffset":false,"isSlot":false,"src":"785:6:19","valueSize":1},{"declaration":2947,"isOffset":false,"isSlot":false,"src":"758:3:19","valueSize":1}],"id":2949,"nodeType":"InlineAssembly","src":"731:76:19"},{"body":{"id":2964,"nodeType":"Block","src":"833:267:19","statements":[{"expression":{"id":2952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"851:5:19","subExpression":{"id":2951,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2947,"src":"851:3:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2953,"nodeType":"ExpressionStatement","src":"851:5:19"},{"AST":{"nativeSrc":"934:84:19","nodeType":"YulBlock","src":"934:84:19","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"964:3:19","nodeType":"YulIdentifier","src":"964:3:19"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"978:5:19","nodeType":"YulIdentifier","src":"978:5:19"},{"kind":"number","nativeSrc":"985:2:19","nodeType":"YulLiteral","src":"985:2:19","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"974:3:19","nodeType":"YulIdentifier","src":"974:3:19"},"nativeSrc":"974:14:19","nodeType":"YulFunctionCall","src":"974:14:19"},{"name":"_SYMBOLS","nativeSrc":"990:8:19","nodeType":"YulIdentifier","src":"990:8:19"}],"functionName":{"name":"byte","nativeSrc":"969:4:19","nodeType":"YulIdentifier","src":"969:4:19"},"nativeSrc":"969:30:19","nodeType":"YulFunctionCall","src":"969:30:19"}],"functionName":{"name":"mstore8","nativeSrc":"956:7:19","nodeType":"YulIdentifier","src":"956:7:19"},"nativeSrc":"956:44:19","nodeType":"YulFunctionCall","src":"956:44:19"},"nativeSrc":"956:44:19","nodeType":"YulExpressionStatement","src":"956:44:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":2919,"isOffset":false,"isSlot":false,"src":"990:8:19","valueSize":1},{"declaration":2947,"isOffset":false,"isSlot":false,"src":"964:3:19","valueSize":1},{"declaration":2925,"isOffset":false,"isSlot":false,"src":"978:5:19","valueSize":1}],"id":2954,"nodeType":"InlineAssembly","src":"925:93:19"},{"expression":{"id":2957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2955,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2925,"src":"1035:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":2956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1035:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2958,"nodeType":"ExpressionStatement","src":"1035:11:19"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2959,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2925,"src":"1068:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1068:10:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2963,"nodeType":"IfStatement","src":"1064:21:19","trueBody":{"id":2962,"nodeType":"Break","src":"1080:5:19"}}]},"condition":{"hexValue":"74727565","id":2950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"827:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":2965,"nodeType":"WhileStatement","src":"820:280:19"},{"expression":{"id":2966,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2940,"src":"1120:6:19","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2929,"id":2967,"nodeType":"Return","src":"1113:13:19"}]}]},"documentation":{"id":2923,"nodeType":"StructuredDocumentation","src":"352:90:19","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":2970,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"456:8:19","nodeType":"FunctionDefinition","parameters":{"id":2926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2925,"mutability":"mutable","name":"value","nameLocation":"473:5:19","nodeType":"VariableDeclaration","scope":2970,"src":"465:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2924,"name":"uint256","nodeType":"ElementaryTypeName","src":"465:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"464:15:19"},"returnParameters":{"id":2929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2970,"src":"503:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2927,"name":"string","nodeType":"ElementaryTypeName","src":"503:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"502:15:19"},"scope":3140,"src":"447:696:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2997,"nodeType":"Block","src":"1313:103:19","statements":[{"expression":{"arguments":[{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2982,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2973,"src":"1354:5:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":2983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1362:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1354:9:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":2986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1372:2:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1354:20:19","trueExpression":{"hexValue":"2d","id":2985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1366:3:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":2991,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2973,"src":"1400:5:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":2989,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4816,"src":"1385:10:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$4816_$","typeString":"type(library SignedMath)"}},"id":2990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1396:3:19","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":4815,"src":"1385:14:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":2992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:21:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2988,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[2970,2998],"referencedDeclaration":2970,"src":"1376:8:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":2993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:31:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2980,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1337:3:19","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1341:12:19","memberName":"encodePacked","nodeType":"MemberAccess","src":"1337:16:19","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1337:71:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1330:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2978,"name":"string","nodeType":"ElementaryTypeName","src":"1330:6:19","typeDescriptions":{}}},"id":2995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1330:79:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2977,"id":2996,"nodeType":"Return","src":"1323:86:19"}]},"documentation":{"id":2971,"nodeType":"StructuredDocumentation","src":"1149:89:19","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":2998,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1252:8:19","nodeType":"FunctionDefinition","parameters":{"id":2974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2973,"mutability":"mutable","name":"value","nameLocation":"1268:5:19","nodeType":"VariableDeclaration","scope":2998,"src":"1261:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2972,"name":"int256","nodeType":"ElementaryTypeName","src":"1261:6:19","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1260:14:19"},"returnParameters":{"id":2977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2998,"src":"1298:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2975,"name":"string","nodeType":"ElementaryTypeName","src":"1298:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1297:15:19"},"scope":3140,"src":"1243:173:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3017,"nodeType":"Block","src":"1595:100:19","statements":[{"id":3016,"nodeType":"UncheckedBlock","src":"1605:84:19","statements":[{"expression":{"arguments":[{"id":3007,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"1648:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3010,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"1667:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3008,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4711,"src":"1655:4:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4711_$","typeString":"type(library Math)"}},"id":3009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1660:6:19","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":4671,"src":"1655:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:18:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1676:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1655:22:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3006,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[3018,3094,3114],"referencedDeclaration":3094,"src":"1636:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1636:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3005,"id":3015,"nodeType":"Return","src":"1629:49:19"}]}]},"documentation":{"id":2999,"nodeType":"StructuredDocumentation","src":"1422:94:19","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":3018,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1530:11:19","nodeType":"FunctionDefinition","parameters":{"id":3002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3001,"mutability":"mutable","name":"value","nameLocation":"1550:5:19","nodeType":"VariableDeclaration","scope":3018,"src":"1542:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3000,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1541:15:19"},"returnParameters":{"id":3005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3018,"src":"1580:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3003,"name":"string","nodeType":"ElementaryTypeName","src":"1580:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1579:15:19"},"scope":3140,"src":"1521:174:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3093,"nodeType":"Block","src":"1908:347:19","statements":[{"assignments":[3029],"declarations":[{"constant":false,"id":3029,"mutability":"mutable","name":"buffer","nameLocation":"1931:6:19","nodeType":"VariableDeclaration","scope":3093,"src":"1918:19:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3028,"name":"bytes","nodeType":"ElementaryTypeName","src":"1918:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3038,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1950:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3033,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3023,"src":"1954:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1950:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":3035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1963:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1950:14:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1940:9:19","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3030,"name":"bytes","nodeType":"ElementaryTypeName","src":"1944:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1940:25:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1918:47:19"},{"expression":{"id":3043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3039,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"1975:6:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3041,"indexExpression":{"hexValue":"30","id":3040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1982:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1975:9:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":3042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1987:3:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1975:15:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":3044,"nodeType":"ExpressionStatement","src":"1975:15:19"},{"expression":{"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3045,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"2000:6:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3047,"indexExpression":{"hexValue":"31","id":3046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2007:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2000:9:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":3048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2012:3:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2000:15:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":3050,"nodeType":"ExpressionStatement","src":"2000:15:19"},{"body":{"id":3079,"nodeType":"Block","src":"2070:83:19","statements":[{"expression":{"id":3073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3065,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"2084:6:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3067,"indexExpression":{"id":3066,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3052,"src":"2091:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2084:9:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":3068,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2919,"src":"2096:8:19","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":3072,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3069,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3021,"src":"2105:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":3070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:3:19","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2105:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2096:21:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2084:33:19","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":3074,"nodeType":"ExpressionStatement","src":"2084:33:19"},{"expression":{"id":3077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3075,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3021,"src":"2131:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2141:1:19","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2131:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3078,"nodeType":"ExpressionStatement","src":"2131:11:19"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3059,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3052,"src":"2058:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":3060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2062:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2058:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3080,"initializationExpression":{"assignments":[3052],"declarations":[{"constant":false,"id":3052,"mutability":"mutable","name":"i","nameLocation":"2038:1:19","nodeType":"VariableDeclaration","scope":3080,"src":"2030:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3051,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3058,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2042:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3054,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3023,"src":"2046:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2055:1:19","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2042:14:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2030:26:19"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":3063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2065:3:19","subExpression":{"id":3062,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3052,"src":"2067:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3064,"nodeType":"ExpressionStatement","src":"2065:3:19"},"nodeType":"ForStatement","src":"2025:128:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3082,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3021,"src":"2170:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2179:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2170:10:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":3085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2182:34:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":3081,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2162:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:55:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3087,"nodeType":"ExpressionStatement","src":"2162:55:19"},{"expression":{"arguments":[{"id":3090,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"2241:6:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2234:6:19","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3088,"name":"string","nodeType":"ElementaryTypeName","src":"2234:6:19","typeDescriptions":{}}},"id":3091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2234:14:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3027,"id":3092,"nodeType":"Return","src":"2227:21:19"}]},"documentation":{"id":3019,"nodeType":"StructuredDocumentation","src":"1701:112:19","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":3094,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1827:11:19","nodeType":"FunctionDefinition","parameters":{"id":3024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3021,"mutability":"mutable","name":"value","nameLocation":"1847:5:19","nodeType":"VariableDeclaration","scope":3094,"src":"1839:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3020,"name":"uint256","nodeType":"ElementaryTypeName","src":"1839:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3023,"mutability":"mutable","name":"length","nameLocation":"1862:6:19","nodeType":"VariableDeclaration","scope":3094,"src":"1854:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3022,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:31:19"},"returnParameters":{"id":3027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3094,"src":"1893:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3025,"name":"string","nodeType":"ElementaryTypeName","src":"1893:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1892:15:19"},"scope":3140,"src":"1818:437:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3113,"nodeType":"Block","src":"2480:76:19","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":3107,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"2525:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2517:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3105,"name":"uint160","nodeType":"ElementaryTypeName","src":"2517:7:19","typeDescriptions":{}}},"id":3108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2517:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3103,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:19","typeDescriptions":{}}},"id":3109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:22:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3110,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2922,"src":"2533:15:19","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3102,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[3018,3094,3114],"referencedDeclaration":3094,"src":"2497:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2497:52:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3101,"id":3112,"nodeType":"Return","src":"2490:59:19"}]},"documentation":{"id":3095,"nodeType":"StructuredDocumentation","src":"2261:141:19","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":3114,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2416:11:19","nodeType":"FunctionDefinition","parameters":{"id":3098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3097,"mutability":"mutable","name":"addr","nameLocation":"2436:4:19","nodeType":"VariableDeclaration","scope":3114,"src":"2428:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3096,"name":"address","nodeType":"ElementaryTypeName","src":"2428:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2427:14:19"},"returnParameters":{"id":3101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3114,"src":"2465:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3099,"name":"string","nodeType":"ElementaryTypeName","src":"2465:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2464:15:19"},"scope":3140,"src":"2407:149:19","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3138,"nodeType":"Block","src":"2711:66:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":3127,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3117,"src":"2744:1:19","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2738:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3125,"name":"bytes","nodeType":"ElementaryTypeName","src":"2738:5:19","typeDescriptions":{}}},"id":3128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2738:8:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3124,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2728:9:19","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":3133,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3119,"src":"2767:1:19","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2761:5:19","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3131,"name":"bytes","nodeType":"ElementaryTypeName","src":"2761:5:19","typeDescriptions":{}}},"id":3134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2761:8:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3130,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2751:9:19","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2751:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2728:42:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3123,"id":3137,"nodeType":"Return","src":"2721:49:19"}]},"documentation":{"id":3115,"nodeType":"StructuredDocumentation","src":"2562:66:19","text":" @dev Returns true if the two strings are equal."},"id":3139,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2642:5:19","nodeType":"FunctionDefinition","parameters":{"id":3120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3117,"mutability":"mutable","name":"a","nameLocation":"2662:1:19","nodeType":"VariableDeclaration","scope":3139,"src":"2648:15:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3116,"name":"string","nodeType":"ElementaryTypeName","src":"2648:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3119,"mutability":"mutable","name":"b","nameLocation":"2679:1:19","nodeType":"VariableDeclaration","scope":3139,"src":"2665:15:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3118,"name":"string","nodeType":"ElementaryTypeName","src":"2665:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2647:34:19"},"returnParameters":{"id":3123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3139,"src":"2705:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3121,"name":"bool","nodeType":"ElementaryTypeName","src":"2705:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2704:6:19"},"scope":3140,"src":"2633:144:19","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3141,"src":"220:2559:19","usedErrors":[],"usedEvents":[]}],"src":"101:2679:19"},"id":19},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[3506],"Math":[4711],"SignedMath":[4816],"Strings":[3140]},"id":3507,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3142,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:20"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../Strings.sol","id":3143,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3507,"sourceUnit":3141,"src":"137:24:20","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":3144,"nodeType":"StructuredDocumentation","src":"163:205:20","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"id":3506,"linearizedBaseContracts":[3506],"name":"ECDSA","nameLocation":"377:5:20","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ECDSA.RecoverError","id":3150,"members":[{"id":3145,"name":"NoError","nameLocation":"417:7:20","nodeType":"EnumValue","src":"417:7:20"},{"id":3146,"name":"InvalidSignature","nameLocation":"434:16:20","nodeType":"EnumValue","src":"434:16:20"},{"id":3147,"name":"InvalidSignatureLength","nameLocation":"460:22:20","nodeType":"EnumValue","src":"460:22:20"},{"id":3148,"name":"InvalidSignatureS","nameLocation":"492:17:20","nodeType":"EnumValue","src":"492:17:20"},{"id":3149,"name":"InvalidSignatureV","nameLocation":"519:17:20","nodeType":"EnumValue","src":"519:17:20"}],"name":"RecoverError","nameLocation":"394:12:20","nodeType":"EnumDefinition","src":"389:175:20"},{"body":{"id":3193,"nodeType":"Block","src":"624:457:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"id":3159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3156,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"638:5:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3157,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"647:12:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3150_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"660:7:20","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":3145,"src":"647:20:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"src":"638:29:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"id":3165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3162,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"734:5:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3163,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"743:12:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3150_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"756:16:20","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":3146,"src":"743:29:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"src":"734:38:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"id":3174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3171,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"843:5:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3172,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"852:12:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3150_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"865:22:20","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":3147,"src":"852:35:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"src":"843:44:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"id":3183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3180,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"965:5:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3181,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"974:12:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3150_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"987:17:20","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":3148,"src":"974:30:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"src":"965:39:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3189,"nodeType":"IfStatement","src":"961:114:20","trueBody":{"id":3188,"nodeType":"Block","src":"1006:69:20","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c7565","id":3185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1027:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd","typeString":"literal_string \"ECDSA: invalid signature 's' value\""},"value":"ECDSA: invalid signature 's' value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_520d1f787dbcafbbfc007fd2c4ecf3d2711ec587f3ee9a1215c0b646c3e530bd","typeString":"literal_string \"ECDSA: invalid signature 's' value\""}],"id":3184,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1020:6:20","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1020:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3187,"nodeType":"ExpressionStatement","src":"1020:44:20"}]}},"id":3190,"nodeType":"IfStatement","src":"839:236:20","trueBody":{"id":3179,"nodeType":"Block","src":"889:66:20","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","id":3176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"910:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77","typeString":"literal_string \"ECDSA: invalid signature length\""},"value":"ECDSA: invalid signature length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1669ff3ba3cdf64474e1193492d05b8434e29b0b495e60095eb5f5c8ec14ce77","typeString":"literal_string \"ECDSA: invalid signature length\""}],"id":3175,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"903:6:20","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"903:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3178,"nodeType":"ExpressionStatement","src":"903:41:20"}]}},"id":3191,"nodeType":"IfStatement","src":"730:345:20","trueBody":{"id":3170,"nodeType":"Block","src":"774:59:20","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","id":3167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"795:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be","typeString":"literal_string \"ECDSA: invalid signature\""},"value":"ECDSA: invalid signature"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00043f6bf76368aa97c21698e9b9d4779e31902453daccf3525ddfb36e53e2be","typeString":"literal_string \"ECDSA: invalid signature\""}],"id":3166,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"788:6:20","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"788:34:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3169,"nodeType":"ExpressionStatement","src":"788:34:20"}]}},"id":3192,"nodeType":"IfStatement","src":"634:441:20","trueBody":{"id":3161,"nodeType":"Block","src":"669:55:20","statements":[{"functionReturnParameters":3155,"id":3160,"nodeType":"Return","src":"683:7:20"}]}}]},"id":3194,"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"579:11:20","nodeType":"FunctionDefinition","parameters":{"id":3154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3153,"mutability":"mutable","name":"error","nameLocation":"604:5:20","nodeType":"VariableDeclaration","scope":3194,"src":"591:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3152,"nodeType":"UserDefinedTypeName","pathNode":{"id":3151,"name":"RecoverError","nameLocations":["591:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":3150,"src":"591:12:20"},"referencedDeclaration":3150,"src":"591:12:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"590:20:20"},"returnParameters":{"id":3155,"nodeType":"ParameterList","parameters":[],"src":"624:0:20"},"scope":3506,"src":"570:511:20","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3239,"nodeType":"Block","src":"2249:626:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3207,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"2263:9:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2273:6:20","memberName":"length","nodeType":"MemberAccess","src":"2263:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":3209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2283:2:20","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2263:22:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3237,"nodeType":"Block","src":"2788:81:20","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":3231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2818:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2810:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3229,"name":"address","nodeType":"ElementaryTypeName","src":"2810:7:20","typeDescriptions":{}}},"id":3232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2810:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3233,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"2822:12:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3150_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2835:22:20","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":3147,"src":"2822:35:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}}],"id":3235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2809:49:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3206,"id":3236,"nodeType":"Return","src":"2802:56:20"}]},"id":3238,"nodeType":"IfStatement","src":"2259:610:20","trueBody":{"id":3228,"nodeType":"Block","src":"2287:495:20","statements":[{"assignments":[3212],"declarations":[{"constant":false,"id":3212,"mutability":"mutable","name":"r","nameLocation":"2309:1:20","nodeType":"VariableDeclaration","scope":3228,"src":"2301:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2301:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3213,"nodeType":"VariableDeclarationStatement","src":"2301:9:20"},{"assignments":[3215],"declarations":[{"constant":false,"id":3215,"mutability":"mutable","name":"s","nameLocation":"2332:1:20","nodeType":"VariableDeclaration","scope":3228,"src":"2324:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3214,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3216,"nodeType":"VariableDeclarationStatement","src":"2324:9:20"},{"assignments":[3218],"declarations":[{"constant":false,"id":3218,"mutability":"mutable","name":"v","nameLocation":"2353:1:20","nodeType":"VariableDeclaration","scope":3228,"src":"2347:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3217,"name":"uint8","nodeType":"ElementaryTypeName","src":"2347:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":3219,"nodeType":"VariableDeclarationStatement","src":"2347:7:20"},{"AST":{"nativeSrc":"2555:171:20","nodeType":"YulBlock","src":"2555:171:20","statements":[{"nativeSrc":"2573:32:20","nodeType":"YulAssignment","src":"2573:32:20","value":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2588:9:20","nodeType":"YulIdentifier","src":"2588:9:20"},{"kind":"number","nativeSrc":"2599:4:20","nodeType":"YulLiteral","src":"2599:4:20","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2584:3:20","nodeType":"YulIdentifier","src":"2584:3:20"},"nativeSrc":"2584:20:20","nodeType":"YulFunctionCall","src":"2584:20:20"}],"functionName":{"name":"mload","nativeSrc":"2578:5:20","nodeType":"YulIdentifier","src":"2578:5:20"},"nativeSrc":"2578:27:20","nodeType":"YulFunctionCall","src":"2578:27:20"},"variableNames":[{"name":"r","nativeSrc":"2573:1:20","nodeType":"YulIdentifier","src":"2573:1:20"}]},{"nativeSrc":"2622:32:20","nodeType":"YulAssignment","src":"2622:32:20","value":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2637:9:20","nodeType":"YulIdentifier","src":"2637:9:20"},{"kind":"number","nativeSrc":"2648:4:20","nodeType":"YulLiteral","src":"2648:4:20","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"2633:3:20","nodeType":"YulIdentifier","src":"2633:3:20"},"nativeSrc":"2633:20:20","nodeType":"YulFunctionCall","src":"2633:20:20"}],"functionName":{"name":"mload","nativeSrc":"2627:5:20","nodeType":"YulIdentifier","src":"2627:5:20"},"nativeSrc":"2627:27:20","nodeType":"YulFunctionCall","src":"2627:27:20"},"variableNames":[{"name":"s","nativeSrc":"2622:1:20","nodeType":"YulIdentifier","src":"2622:1:20"}]},{"nativeSrc":"2671:41:20","nodeType":"YulAssignment","src":"2671:41:20","value":{"arguments":[{"kind":"number","nativeSrc":"2681:1:20","nodeType":"YulLiteral","src":"2681:1:20","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2694:9:20","nodeType":"YulIdentifier","src":"2694:9:20"},{"kind":"number","nativeSrc":"2705:4:20","nodeType":"YulLiteral","src":"2705:4:20","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"2690:3:20","nodeType":"YulIdentifier","src":"2690:3:20"},"nativeSrc":"2690:20:20","nodeType":"YulFunctionCall","src":"2690:20:20"}],"functionName":{"name":"mload","nativeSrc":"2684:5:20","nodeType":"YulIdentifier","src":"2684:5:20"},"nativeSrc":"2684:27:20","nodeType":"YulFunctionCall","src":"2684:27:20"}],"functionName":{"name":"byte","nativeSrc":"2676:4:20","nodeType":"YulIdentifier","src":"2676:4:20"},"nativeSrc":"2676:36:20","nodeType":"YulFunctionCall","src":"2676:36:20"},"variableNames":[{"name":"v","nativeSrc":"2671:1:20","nodeType":"YulIdentifier","src":"2671:1:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":3212,"isOffset":false,"isSlot":false,"src":"2573:1:20","valueSize":1},{"declaration":3215,"isOffset":false,"isSlot":false,"src":"2622:1:20","valueSize":1},{"declaration":3199,"isOffset":false,"isSlot":false,"src":"2588:9:20","valueSize":1},{"declaration":3199,"isOffset":false,"isSlot":false,"src":"2637:9:20","valueSize":1},{"declaration":3199,"isOffset":false,"isSlot":false,"src":"2694:9:20","valueSize":1},{"declaration":3218,"isOffset":false,"isSlot":false,"src":"2671:1:20","valueSize":1}],"id":3220,"nodeType":"InlineAssembly","src":"2546:180:20"},{"expression":{"arguments":[{"id":3222,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3197,"src":"2757:4:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3223,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3218,"src":"2763:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3224,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"2766:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3225,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3215,"src":"2769:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3221,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[3240,3314,3408],"referencedDeclaration":3408,"src":"2746:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":3226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2746:25:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3206,"id":3227,"nodeType":"Return","src":"2739:32:20"}]}}]},"documentation":{"id":3195,"nodeType":"StructuredDocumentation","src":"1087:1053:20","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature` or error string. This address can then be used for verification purposes.\n The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n _Available since v4.3._"},"id":3240,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2154:10:20","nodeType":"FunctionDefinition","parameters":{"id":3200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3197,"mutability":"mutable","name":"hash","nameLocation":"2173:4:20","nodeType":"VariableDeclaration","scope":3240,"src":"2165:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2165:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3199,"mutability":"mutable","name":"signature","nameLocation":"2192:9:20","nodeType":"VariableDeclaration","scope":3240,"src":"2179:22:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3198,"name":"bytes","nodeType":"ElementaryTypeName","src":"2179:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2164:38:20"},"returnParameters":{"id":3206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3240,"src":"2226:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3201,"name":"address","nodeType":"ElementaryTypeName","src":"2226:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3240,"src":"2235:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3204,"nodeType":"UserDefinedTypeName","pathNode":{"id":3203,"name":"RecoverError","nameLocations":["2235:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":3150,"src":"2235:12:20"},"referencedDeclaration":3150,"src":"2235:12:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"2225:23:20"},"scope":3506,"src":"2145:730:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3266,"nodeType":"Block","src":"3748:140:20","statements":[{"assignments":[3251,3254],"declarations":[{"constant":false,"id":3251,"mutability":"mutable","name":"recovered","nameLocation":"3767:9:20","nodeType":"VariableDeclaration","scope":3266,"src":"3759:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3250,"name":"address","nodeType":"ElementaryTypeName","src":"3759:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3254,"mutability":"mutable","name":"error","nameLocation":"3791:5:20","nodeType":"VariableDeclaration","scope":3266,"src":"3778:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3253,"nodeType":"UserDefinedTypeName","pathNode":{"id":3252,"name":"RecoverError","nameLocations":["3778:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":3150,"src":"3778:12:20"},"referencedDeclaration":3150,"src":"3778:12:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":3259,"initialValue":{"arguments":[{"id":3256,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"3811:4:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3257,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3245,"src":"3817:9:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3255,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[3240,3314,3408],"referencedDeclaration":3240,"src":"3800:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":3258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:27:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"3758:69:20"},{"expression":{"arguments":[{"id":3261,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3254,"src":"3849:5:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}],"id":3260,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3194,"src":"3837:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$3150_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":3262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3837:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3263,"nodeType":"ExpressionStatement","src":"3837:18:20"},{"expression":{"id":3264,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3251,"src":"3872:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3249,"id":3265,"nodeType":"Return","src":"3865:16:20"}]},"documentation":{"id":3241,"nodeType":"StructuredDocumentation","src":"2881:775:20","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {toEthSignedMessageHash} on it."},"id":3267,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"3670:7:20","nodeType":"FunctionDefinition","parameters":{"id":3246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3243,"mutability":"mutable","name":"hash","nameLocation":"3686:4:20","nodeType":"VariableDeclaration","scope":3267,"src":"3678:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3678:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3245,"mutability":"mutable","name":"signature","nameLocation":"3705:9:20","nodeType":"VariableDeclaration","scope":3267,"src":"3692:22:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3244,"name":"bytes","nodeType":"ElementaryTypeName","src":"3692:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3677:38:20"},"returnParameters":{"id":3249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3267,"src":"3739:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3247,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3738:9:20"},"scope":3506,"src":"3661:227:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3313,"nodeType":"Block","src":"4245:203:20","statements":[{"assignments":[3283],"declarations":[{"constant":false,"id":3283,"mutability":"mutable","name":"s","nameLocation":"4263:1:20","nodeType":"VariableDeclaration","scope":3313,"src":"4255:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4255:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3290,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3284,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3274,"src":"4267:2:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":3287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4280:66:20","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":3286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4272:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4272:7:20","typeDescriptions":{}}},"id":3288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4272:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4267:80:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4255:92:20"},{"assignments":[3292],"declarations":[{"constant":false,"id":3292,"mutability":"mutable","name":"v","nameLocation":"4363:1:20","nodeType":"VariableDeclaration","scope":3313,"src":"4357:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3291,"name":"uint8","nodeType":"ElementaryTypeName","src":"4357:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":3305,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3297,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3274,"src":"4382:2:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4374:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3295,"name":"uint256","nodeType":"ElementaryTypeName","src":"4374:7:20","typeDescriptions":{}}},"id":3298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4374:11:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":3299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4389:3:20","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4374:18:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3301,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4373:20:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":3302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4396:2:20","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4373:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4367:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3293,"name":"uint8","nodeType":"ElementaryTypeName","src":"4367:5:20","typeDescriptions":{}}},"id":3304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4367:32:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4357:42:20"},{"expression":{"arguments":[{"id":3307,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3270,"src":"4427:4:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3308,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3292,"src":"4433:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3309,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3272,"src":"4436:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3310,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3283,"src":"4439:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3306,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[3240,3314,3408],"referencedDeclaration":3408,"src":"4416:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":3311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4416:25:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3281,"id":3312,"nodeType":"Return","src":"4409:32:20"}]},"documentation":{"id":3268,"nodeType":"StructuredDocumentation","src":"3894:243:20","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n _Available since v4.3._"},"id":3314,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4151:10:20","nodeType":"FunctionDefinition","parameters":{"id":3275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3270,"mutability":"mutable","name":"hash","nameLocation":"4170:4:20","nodeType":"VariableDeclaration","scope":3314,"src":"4162:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4162:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3272,"mutability":"mutable","name":"r","nameLocation":"4184:1:20","nodeType":"VariableDeclaration","scope":3314,"src":"4176:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4176:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3274,"mutability":"mutable","name":"vs","nameLocation":"4195:2:20","nodeType":"VariableDeclaration","scope":3314,"src":"4187:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4187:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4161:37:20"},"returnParameters":{"id":3281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3314,"src":"4222:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3276,"name":"address","nodeType":"ElementaryTypeName","src":"4222:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3314,"src":"4231:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3279,"nodeType":"UserDefinedTypeName","pathNode":{"id":3278,"name":"RecoverError","nameLocations":["4231:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":3150,"src":"4231:12:20"},"referencedDeclaration":3150,"src":"4231:12:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"4221:23:20"},"scope":3506,"src":"4142:306:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3343,"nodeType":"Block","src":"4699:136:20","statements":[{"assignments":[3327,3330],"declarations":[{"constant":false,"id":3327,"mutability":"mutable","name":"recovered","nameLocation":"4718:9:20","nodeType":"VariableDeclaration","scope":3343,"src":"4710:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3326,"name":"address","nodeType":"ElementaryTypeName","src":"4710:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3330,"mutability":"mutable","name":"error","nameLocation":"4742:5:20","nodeType":"VariableDeclaration","scope":3343,"src":"4729:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3329,"nodeType":"UserDefinedTypeName","pathNode":{"id":3328,"name":"RecoverError","nameLocations":["4729:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":3150,"src":"4729:12:20"},"referencedDeclaration":3150,"src":"4729:12:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":3336,"initialValue":{"arguments":[{"id":3332,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3317,"src":"4762:4:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3333,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3319,"src":"4768:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3334,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3321,"src":"4771:2:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3331,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[3240,3314,3408],"referencedDeclaration":3314,"src":"4751:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4751:23:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"4709:65:20"},{"expression":{"arguments":[{"id":3338,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3330,"src":"4796:5:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}],"id":3337,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3194,"src":"4784:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$3150_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":3339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4784:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3340,"nodeType":"ExpressionStatement","src":"4784:18:20"},{"expression":{"id":3341,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3327,"src":"4819:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3325,"id":3342,"nodeType":"Return","src":"4812:16:20"}]},"documentation":{"id":3315,"nodeType":"StructuredDocumentation","src":"4454:154:20","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n _Available since v4.2._"},"id":3344,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4622:7:20","nodeType":"FunctionDefinition","parameters":{"id":3322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3317,"mutability":"mutable","name":"hash","nameLocation":"4638:4:20","nodeType":"VariableDeclaration","scope":3344,"src":"4630:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4630:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3319,"mutability":"mutable","name":"r","nameLocation":"4652:1:20","nodeType":"VariableDeclaration","scope":3344,"src":"4644:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4644:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3321,"mutability":"mutable","name":"vs","nameLocation":"4663:2:20","nodeType":"VariableDeclaration","scope":3344,"src":"4655:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4655:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4629:37:20"},"returnParameters":{"id":3325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3344,"src":"4690:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3323,"name":"address","nodeType":"ElementaryTypeName","src":"4690:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4689:9:20"},"scope":3506,"src":"4613:222:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3407,"nodeType":"Block","src":"5120:1345:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3363,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"6016:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6008:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3361,"name":"uint256","nodeType":"ElementaryTypeName","src":"6008:7:20","typeDescriptions":{}}},"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6008:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":3365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6021:66:20","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6008:79:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3376,"nodeType":"IfStatement","src":"6004:161:20","trueBody":{"id":3375,"nodeType":"Block","src":"6089:76:20","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":3369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6119:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6111:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3367,"name":"address","nodeType":"ElementaryTypeName","src":"6111:7:20","typeDescriptions":{}}},"id":3370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6111:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3371,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"6123:12:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3150_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6136:17:20","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":3148,"src":"6123:30:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}}],"id":3373,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6110:44:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3360,"id":3374,"nodeType":"Return","src":"6103:51:20"}]}},{"assignments":[3378],"declarations":[{"constant":false,"id":3378,"mutability":"mutable","name":"signer","nameLocation":"6267:6:20","nodeType":"VariableDeclaration","scope":3407,"src":"6259:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3377,"name":"address","nodeType":"ElementaryTypeName","src":"6259:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3385,"initialValue":{"arguments":[{"id":3380,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"6286:4:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3381,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3349,"src":"6292:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3382,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3351,"src":"6295:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3383,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"6298:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3379,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6276:9:20","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":3384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6276:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6259:41:20"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3386,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3378,"src":"6314:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6332:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6324:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3387,"name":"address","nodeType":"ElementaryTypeName","src":"6324:7:20","typeDescriptions":{}}},"id":3390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6324:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6314:20:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3401,"nodeType":"IfStatement","src":"6310:101:20","trueBody":{"id":3400,"nodeType":"Block","src":"6336:75:20","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":3394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6366:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6358:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3392,"name":"address","nodeType":"ElementaryTypeName","src":"6358:7:20","typeDescriptions":{}}},"id":3395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6358:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3396,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"6370:12:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3150_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6383:16:20","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":3146,"src":"6370:29:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}}],"id":3398,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6357:43:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3360,"id":3399,"nodeType":"Return","src":"6350:50:20"}]}},{"expression":{"components":[{"id":3402,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3378,"src":"6429:6:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3403,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"6437:12:20","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3150_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6450:7:20","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":3145,"src":"6437:20:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}}],"id":3405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6428:30:20","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":3360,"id":3406,"nodeType":"Return","src":"6421:37:20"}]},"documentation":{"id":3345,"nodeType":"StructuredDocumentation","src":"4841:163:20","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately.\n _Available since v4.3._"},"id":3408,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5018:10:20","nodeType":"FunctionDefinition","parameters":{"id":3354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3347,"mutability":"mutable","name":"hash","nameLocation":"5037:4:20","nodeType":"VariableDeclaration","scope":3408,"src":"5029:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3346,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5029:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3349,"mutability":"mutable","name":"v","nameLocation":"5049:1:20","nodeType":"VariableDeclaration","scope":3408,"src":"5043:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3348,"name":"uint8","nodeType":"ElementaryTypeName","src":"5043:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3351,"mutability":"mutable","name":"r","nameLocation":"5060:1:20","nodeType":"VariableDeclaration","scope":3408,"src":"5052:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5052:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3353,"mutability":"mutable","name":"s","nameLocation":"5071:1:20","nodeType":"VariableDeclaration","scope":3408,"src":"5063:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5063:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5028:45:20"},"returnParameters":{"id":3360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3408,"src":"5097:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3355,"name":"address","nodeType":"ElementaryTypeName","src":"5097:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3408,"src":"5106:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3358,"nodeType":"UserDefinedTypeName","pathNode":{"id":3357,"name":"RecoverError","nameLocations":["5106:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":3150,"src":"5106:12:20"},"referencedDeclaration":3150,"src":"5106:12:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"5096:23:20"},"scope":3506,"src":"5009:1456:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3440,"nodeType":"Block","src":"6692:138:20","statements":[{"assignments":[3423,3426],"declarations":[{"constant":false,"id":3423,"mutability":"mutable","name":"recovered","nameLocation":"6711:9:20","nodeType":"VariableDeclaration","scope":3440,"src":"6703:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3422,"name":"address","nodeType":"ElementaryTypeName","src":"6703:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3426,"mutability":"mutable","name":"error","nameLocation":"6735:5:20","nodeType":"VariableDeclaration","scope":3440,"src":"6722:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3425,"nodeType":"UserDefinedTypeName","pathNode":{"id":3424,"name":"RecoverError","nameLocations":["6722:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":3150,"src":"6722:12:20"},"referencedDeclaration":3150,"src":"6722:12:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":3433,"initialValue":{"arguments":[{"id":3428,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3411,"src":"6755:4:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3429,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"6761:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3430,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3415,"src":"6764:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3431,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3417,"src":"6767:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3427,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[3240,3314,3408],"referencedDeclaration":3408,"src":"6744:10:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":3432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6744:25:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"6702:67:20"},{"expression":{"arguments":[{"id":3435,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3426,"src":"6791:5:20","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}],"id":3434,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3194,"src":"6779:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$3150_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":3436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6779:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3437,"nodeType":"ExpressionStatement","src":"6779:18:20"},{"expression":{"id":3438,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3423,"src":"6814:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3421,"id":3439,"nodeType":"Return","src":"6807:16:20"}]},"documentation":{"id":3409,"nodeType":"StructuredDocumentation","src":"6471:122:20","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":3441,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"6607:7:20","nodeType":"FunctionDefinition","parameters":{"id":3418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3411,"mutability":"mutable","name":"hash","nameLocation":"6623:4:20","nodeType":"VariableDeclaration","scope":3441,"src":"6615:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6615:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3413,"mutability":"mutable","name":"v","nameLocation":"6635:1:20","nodeType":"VariableDeclaration","scope":3441,"src":"6629:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3412,"name":"uint8","nodeType":"ElementaryTypeName","src":"6629:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3415,"mutability":"mutable","name":"r","nameLocation":"6646:1:20","nodeType":"VariableDeclaration","scope":3441,"src":"6638:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3414,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6638:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3417,"mutability":"mutable","name":"s","nameLocation":"6657:1:20","nodeType":"VariableDeclaration","scope":3441,"src":"6649:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6649:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6614:45:20"},"returnParameters":{"id":3421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3441,"src":"6683:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3419,"name":"address","nodeType":"ElementaryTypeName","src":"6683:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6682:9:20"},"scope":3506,"src":"6598:232:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3450,"nodeType":"Block","src":"7206:310:20","statements":[{"AST":{"nativeSrc":"7362:148:20","nodeType":"YulBlock","src":"7362:148:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7383:4:20","nodeType":"YulLiteral","src":"7383:4:20","type":"","value":"0x00"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nativeSrc":"7389:34:20","nodeType":"YulLiteral","src":"7389:34:20","type":"","value":"\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nativeSrc":"7376:6:20","nodeType":"YulIdentifier","src":"7376:6:20"},"nativeSrc":"7376:48:20","nodeType":"YulFunctionCall","src":"7376:48:20"},"nativeSrc":"7376:48:20","nodeType":"YulExpressionStatement","src":"7376:48:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7444:4:20","nodeType":"YulLiteral","src":"7444:4:20","type":"","value":"0x1c"},{"name":"hash","nativeSrc":"7450:4:20","nodeType":"YulIdentifier","src":"7450:4:20"}],"functionName":{"name":"mstore","nativeSrc":"7437:6:20","nodeType":"YulIdentifier","src":"7437:6:20"},"nativeSrc":"7437:18:20","nodeType":"YulFunctionCall","src":"7437:18:20"},"nativeSrc":"7437:18:20","nodeType":"YulExpressionStatement","src":"7437:18:20"},{"nativeSrc":"7468:32:20","nodeType":"YulAssignment","src":"7468:32:20","value":{"arguments":[{"kind":"number","nativeSrc":"7489:4:20","nodeType":"YulLiteral","src":"7489:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7495:4:20","nodeType":"YulLiteral","src":"7495:4:20","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nativeSrc":"7479:9:20","nodeType":"YulIdentifier","src":"7479:9:20"},"nativeSrc":"7479:21:20","nodeType":"YulFunctionCall","src":"7479:21:20"},"variableNames":[{"name":"message","nativeSrc":"7468:7:20","nodeType":"YulIdentifier","src":"7468:7:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":3444,"isOffset":false,"isSlot":false,"src":"7450:4:20","valueSize":1},{"declaration":3447,"isOffset":false,"isSlot":false,"src":"7468:7:20","valueSize":1}],"id":3449,"nodeType":"InlineAssembly","src":"7353:157:20"}]},"documentation":{"id":3442,"nodeType":"StructuredDocumentation","src":"6836:279:20","text":" @dev Returns an Ethereum Signed Message, created from a `hash`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"id":3451,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7129:22:20","nodeType":"FunctionDefinition","parameters":{"id":3445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3444,"mutability":"mutable","name":"hash","nameLocation":"7160:4:20","nodeType":"VariableDeclaration","scope":3451,"src":"7152:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7152:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7151:14:20"},"returnParameters":{"id":3448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3447,"mutability":"mutable","name":"message","nameLocation":"7197:7:20","nodeType":"VariableDeclaration","scope":3451,"src":"7189:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7189:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7188:17:20"},"scope":3506,"src":"7120:396:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3472,"nodeType":"Block","src":"7881:116:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":3462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7925:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"expression":{"id":3465,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3454,"src":"7976:1:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7978:6:20","memberName":"length","nodeType":"MemberAccess","src":"7976:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3463,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3140,"src":"7959:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$3140_$","typeString":"type(library Strings)"}},"id":3464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7967:8:20","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2970,"src":"7959:16:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":3467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7959:26:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3468,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3454,"src":"7987:1:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3460,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7908:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7912:12:20","memberName":"encodePacked","nodeType":"MemberAccess","src":"7908:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7908:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3459,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7898:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7898:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3458,"id":3471,"nodeType":"Return","src":"7891:99:20"}]},"documentation":{"id":3452,"nodeType":"StructuredDocumentation","src":"7522:274:20","text":" @dev Returns an Ethereum Signed Message, created from `s`. This\n produces hash corresponding to the one signed with the\n https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]\n JSON-RPC method as part of EIP-191.\n See {recover}."},"id":3473,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7810:22:20","nodeType":"FunctionDefinition","parameters":{"id":3455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3454,"mutability":"mutable","name":"s","nameLocation":"7846:1:20","nodeType":"VariableDeclaration","scope":3473,"src":"7833:14:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3453,"name":"bytes","nodeType":"ElementaryTypeName","src":"7833:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7832:16:20"},"returnParameters":{"id":3458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3457,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3473,"src":"7872:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7872:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7871:9:20"},"scope":3506,"src":"7801:196:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3484,"nodeType":"Block","src":"8443:290:20","statements":[{"AST":{"nativeSrc":"8505:222:20","nodeType":"YulBlock","src":"8505:222:20","statements":[{"nativeSrc":"8519:22:20","nodeType":"YulVariableDeclaration","src":"8519:22:20","value":{"arguments":[{"kind":"number","nativeSrc":"8536:4:20","nodeType":"YulLiteral","src":"8536:4:20","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"8530:5:20","nodeType":"YulIdentifier","src":"8530:5:20"},"nativeSrc":"8530:11:20","nodeType":"YulFunctionCall","src":"8530:11:20"},"variables":[{"name":"ptr","nativeSrc":"8523:3:20","nodeType":"YulTypedName","src":"8523:3:20","type":""}]},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"8561:3:20","nodeType":"YulIdentifier","src":"8561:3:20"},{"hexValue":"1901","kind":"string","nativeSrc":"8566:10:20","nodeType":"YulLiteral","src":"8566:10:20","type":"","value":"\u0019\u0001"}],"functionName":{"name":"mstore","nativeSrc":"8554:6:20","nodeType":"YulIdentifier","src":"8554:6:20"},"nativeSrc":"8554:23:20","nodeType":"YulFunctionCall","src":"8554:23:20"},"nativeSrc":"8554:23:20","nodeType":"YulExpressionStatement","src":"8554:23:20"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"8601:3:20","nodeType":"YulIdentifier","src":"8601:3:20"},{"kind":"number","nativeSrc":"8606:4:20","nodeType":"YulLiteral","src":"8606:4:20","type":"","value":"0x02"}],"functionName":{"name":"add","nativeSrc":"8597:3:20","nodeType":"YulIdentifier","src":"8597:3:20"},"nativeSrc":"8597:14:20","nodeType":"YulFunctionCall","src":"8597:14:20"},{"name":"domainSeparator","nativeSrc":"8613:15:20","nodeType":"YulIdentifier","src":"8613:15:20"}],"functionName":{"name":"mstore","nativeSrc":"8590:6:20","nodeType":"YulIdentifier","src":"8590:6:20"},"nativeSrc":"8590:39:20","nodeType":"YulFunctionCall","src":"8590:39:20"},"nativeSrc":"8590:39:20","nodeType":"YulExpressionStatement","src":"8590:39:20"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"8653:3:20","nodeType":"YulIdentifier","src":"8653:3:20"},{"kind":"number","nativeSrc":"8658:4:20","nodeType":"YulLiteral","src":"8658:4:20","type":"","value":"0x22"}],"functionName":{"name":"add","nativeSrc":"8649:3:20","nodeType":"YulIdentifier","src":"8649:3:20"},"nativeSrc":"8649:14:20","nodeType":"YulFunctionCall","src":"8649:14:20"},{"name":"structHash","nativeSrc":"8665:10:20","nodeType":"YulIdentifier","src":"8665:10:20"}],"functionName":{"name":"mstore","nativeSrc":"8642:6:20","nodeType":"YulIdentifier","src":"8642:6:20"},"nativeSrc":"8642:34:20","nodeType":"YulFunctionCall","src":"8642:34:20"},"nativeSrc":"8642:34:20","nodeType":"YulExpressionStatement","src":"8642:34:20"},{"nativeSrc":"8689:28:20","nodeType":"YulAssignment","src":"8689:28:20","value":{"arguments":[{"name":"ptr","nativeSrc":"8707:3:20","nodeType":"YulIdentifier","src":"8707:3:20"},{"kind":"number","nativeSrc":"8712:4:20","nodeType":"YulLiteral","src":"8712:4:20","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nativeSrc":"8697:9:20","nodeType":"YulIdentifier","src":"8697:9:20"},"nativeSrc":"8697:20:20","nodeType":"YulFunctionCall","src":"8697:20:20"},"variableNames":[{"name":"data","nativeSrc":"8689:4:20","nodeType":"YulIdentifier","src":"8689:4:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":3481,"isOffset":false,"isSlot":false,"src":"8689:4:20","valueSize":1},{"declaration":3476,"isOffset":false,"isSlot":false,"src":"8613:15:20","valueSize":1},{"declaration":3478,"isOffset":false,"isSlot":false,"src":"8665:10:20","valueSize":1}],"id":3483,"nodeType":"InlineAssembly","src":"8496:231:20"}]},"documentation":{"id":3474,"nodeType":"StructuredDocumentation","src":"8003:328:20","text":" @dev Returns an Ethereum Signed Typed Data, created from a\n `domainSeparator` and a `structHash`. This produces hash corresponding\n to the one signed with the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]\n JSON-RPC method as part of EIP-712.\n See {recover}."},"id":3485,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"8345:15:20","nodeType":"FunctionDefinition","parameters":{"id":3479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3476,"mutability":"mutable","name":"domainSeparator","nameLocation":"8369:15:20","nodeType":"VariableDeclaration","scope":3485,"src":"8361:23:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8361:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3478,"mutability":"mutable","name":"structHash","nameLocation":"8394:10:20","nodeType":"VariableDeclaration","scope":3485,"src":"8386:18:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8386:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8360:45:20"},"returnParameters":{"id":3482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3481,"mutability":"mutable","name":"data","nameLocation":"8437:4:20","nodeType":"VariableDeclaration","scope":3485,"src":"8429:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8429:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8428:14:20"},"scope":3506,"src":"8336:397:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3504,"nodeType":"Block","src":"9048:80:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1900","id":3498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9092:10:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},"value":"\u0019\u0000"},{"id":3499,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3488,"src":"9104:9:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3500,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3490,"src":"9115:4:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3496,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9075:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9079:12:20","memberName":"encodePacked","nodeType":"MemberAccess","src":"9075:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9075:45:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3495,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9065:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9065:56:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3494,"id":3503,"nodeType":"Return","src":"9058:63:20"}]},"documentation":{"id":3486,"nodeType":"StructuredDocumentation","src":"8739:193:20","text":" @dev Returns an Ethereum Signed Data with intended validator, created from a\n `validator` and `data` according to the version 0 of EIP-191.\n See {recover}."},"id":3505,"implemented":true,"kind":"function","modifiers":[],"name":"toDataWithIntendedValidatorHash","nameLocation":"8946:31:20","nodeType":"FunctionDefinition","parameters":{"id":3491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3488,"mutability":"mutable","name":"validator","nameLocation":"8986:9:20","nodeType":"VariableDeclaration","scope":3505,"src":"8978:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3487,"name":"address","nodeType":"ElementaryTypeName","src":"8978:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3490,"mutability":"mutable","name":"data","nameLocation":"9010:4:20","nodeType":"VariableDeclaration","scope":3505,"src":"8997:17:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3489,"name":"bytes","nodeType":"ElementaryTypeName","src":"8997:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8977:38:20"},"returnParameters":{"id":3494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3505,"src":"9039:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9039:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9038:9:20"},"scope":3506,"src":"8937:191:20","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3507,"src":"369:8761:20","usedErrors":[],"usedEvents":[]}],"src":"112:9019:20"},"id":20},"@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","exportedSymbols":{"ECDSA":[3506],"EIP712":[3710],"IERC5267":[253],"Math":[4711],"ShortString":[2590],"ShortStrings":[2801],"SignedMath":[4816],"StorageSlot":[2911],"Strings":[3140]},"id":3711,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3508,"literals":["solidity","^","0.8",".8"],"nodeType":"PragmaDirective","src":"113:23:21"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","id":3509,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3711,"sourceUnit":3507,"src":"138:21:21","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/ShortStrings.sol","file":"../ShortStrings.sol","id":3510,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3711,"sourceUnit":2802,"src":"160:29:21","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC5267.sol","file":"../../interfaces/IERC5267.sol","id":3511,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3711,"sourceUnit":254,"src":"190:39:21","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3513,"name":"IERC5267","nameLocations":["1837:8:21"],"nodeType":"IdentifierPath","referencedDeclaration":253,"src":"1837:8:21"},"id":3514,"nodeType":"InheritanceSpecifier","src":"1837:8:21"}],"canonicalName":"EIP712","contractDependencies":[],"contractKind":"contract","documentation":{"id":3512,"nodeType":"StructuredDocumentation","src":"231:1577:21","text":" @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,\n thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding\n they need in their contracts using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain\n separator of the implementation contract. This will cause the `_domainSeparatorV4` function to always rebuild the\n separator from the immutable values, which is cheaper than accessing a cached version in cold storage.\n _Available since v3.4._\n @custom:oz-upgrades-unsafe-allow state-variable-immutable state-variable-assignment"},"fullyImplemented":true,"id":3710,"linearizedBaseContracts":[3710,253],"name":"EIP712","nameLocation":"1827:6:21","nodeType":"ContractDefinition","nodes":[{"global":false,"id":3516,"libraryName":{"id":3515,"name":"ShortStrings","nameLocations":["1858:12:21"],"nodeType":"IdentifierPath","referencedDeclaration":2801,"src":"1858:12:21"},"nodeType":"UsingForDirective","src":"1852:25:21"},{"constant":true,"id":3521,"mutability":"constant","name":"_TYPE_HASH","nameLocation":"1908:10:21","nodeType":"VariableDeclaration","scope":3710,"src":"1883:141:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1883:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":3519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1939:84:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":3518,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1929:9:21","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1929:95:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":3523,"mutability":"immutable","name":"_cachedDomainSeparator","nameLocation":"2249:22:21","nodeType":"VariableDeclaration","scope":3710,"src":"2223:48:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3522,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2223:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":3525,"mutability":"immutable","name":"_cachedChainId","nameLocation":"2303:14:21","nodeType":"VariableDeclaration","scope":3710,"src":"2277:40:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3524,"name":"uint256","nodeType":"ElementaryTypeName","src":"2277:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":3527,"mutability":"immutable","name":"_cachedThis","nameLocation":"2349:11:21","nodeType":"VariableDeclaration","scope":3710,"src":"2323:37:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3526,"name":"address","nodeType":"ElementaryTypeName","src":"2323:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":3529,"mutability":"immutable","name":"_hashedName","nameLocation":"2393:11:21","nodeType":"VariableDeclaration","scope":3710,"src":"2367:37:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2367:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":3531,"mutability":"immutable","name":"_hashedVersion","nameLocation":"2436:14:21","nodeType":"VariableDeclaration","scope":3710,"src":"2410:40:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2410:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":3534,"mutability":"immutable","name":"_name","nameLocation":"2487:5:21","nodeType":"VariableDeclaration","scope":3710,"src":"2457:35:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"},"typeName":{"id":3533,"nodeType":"UserDefinedTypeName","pathNode":{"id":3532,"name":"ShortString","nameLocations":["2457:11:21"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"2457:11:21"},"referencedDeclaration":2590,"src":"2457:11:21","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"visibility":"private"},{"constant":false,"id":3537,"mutability":"immutable","name":"_version","nameLocation":"2528:8:21","nodeType":"VariableDeclaration","scope":3710,"src":"2498:38:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"},"typeName":{"id":3536,"nodeType":"UserDefinedTypeName","pathNode":{"id":3535,"name":"ShortString","nameLocations":["2498:11:21"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"2498:11:21"},"referencedDeclaration":2590,"src":"2498:11:21","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"visibility":"private"},{"constant":false,"id":3539,"mutability":"mutable","name":"_nameFallback","nameLocation":"2557:13:21","nodeType":"VariableDeclaration","scope":3710,"src":"2542:28:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3538,"name":"string","nodeType":"ElementaryTypeName","src":"2542:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":3541,"mutability":"mutable","name":"_versionFallback","nameLocation":"2591:16:21","nodeType":"VariableDeclaration","scope":3710,"src":"2576:31:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3540,"name":"string","nodeType":"ElementaryTypeName","src":"2576:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":3598,"nodeType":"Block","src":"3233:376:21","statements":[{"expression":{"id":3554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3549,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"3243:5:21","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3552,"name":"_nameFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3539,"src":"3282:13:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":3550,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3544,"src":"3251:4:21","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3256:25:21","memberName":"toShortStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"3251:30:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_storage_ptr_$returns$_t_userDefinedValueType$_ShortString_$2590_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory,string storage pointer) returns (ShortString)"}},"id":3553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3251:45:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"src":"3243:53:21","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"id":3555,"nodeType":"ExpressionStatement","src":"3243:53:21"},{"expression":{"id":3561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3556,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3537,"src":"3306:8:21","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3559,"name":"_versionFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3541,"src":"3351:16:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":3557,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3546,"src":"3317:7:21","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3325:25:21","memberName":"toShortStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"3317:33:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_storage_ptr_$returns$_t_userDefinedValueType$_ShortString_$2590_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory,string storage pointer) returns (ShortString)"}},"id":3560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:51:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"src":"3306:62:21","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"id":3562,"nodeType":"ExpressionStatement","src":"3306:62:21"},{"expression":{"id":3570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3563,"name":"_hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3529,"src":"3378:11:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":3567,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3544,"src":"3408:4:21","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3402:5:21","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3565,"name":"bytes","nodeType":"ElementaryTypeName","src":"3402:5:21","typeDescriptions":{}}},"id":3568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3402:11:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3564,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3392:9:21","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3392:22:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3378:36:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3571,"nodeType":"ExpressionStatement","src":"3378:36:21"},{"expression":{"id":3579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3572,"name":"_hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3531,"src":"3424:14:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":3576,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3546,"src":"3457:7:21","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3451:5:21","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3574,"name":"bytes","nodeType":"ElementaryTypeName","src":"3451:5:21","typeDescriptions":{}}},"id":3577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3451:14:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3573,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3441:9:21","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3441:25:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3424:42:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3580,"nodeType":"ExpressionStatement","src":"3424:42:21"},{"expression":{"id":3584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3581,"name":"_cachedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3525,"src":"3477:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3582,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3494:5:21","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3500:7:21","memberName":"chainid","nodeType":"MemberAccess","src":"3494:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3477:30:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3585,"nodeType":"ExpressionStatement","src":"3477:30:21"},{"expression":{"id":3589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3586,"name":"_cachedDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3523,"src":"3517:22:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":3587,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3646,"src":"3542:21:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":3588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3542:23:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3517:48:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3590,"nodeType":"ExpressionStatement","src":"3517:48:21"},{"expression":{"id":3596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3591,"name":"_cachedThis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3527,"src":"3575:11:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3594,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3597:4:21","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$3710","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$3710","typeString":"contract EIP712"}],"id":3593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3589:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3592,"name":"address","nodeType":"ElementaryTypeName","src":"3589:7:21","typeDescriptions":{}}},"id":3595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3589:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3575:27:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3597,"nodeType":"ExpressionStatement","src":"3575:27:21"}]},"documentation":{"id":3542,"nodeType":"StructuredDocumentation","src":"2614:559:21","text":" @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]."},"id":3599,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3544,"mutability":"mutable","name":"name","nameLocation":"3204:4:21","nodeType":"VariableDeclaration","scope":3599,"src":"3190:18:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3543,"name":"string","nodeType":"ElementaryTypeName","src":"3190:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3546,"mutability":"mutable","name":"version","nameLocation":"3224:7:21","nodeType":"VariableDeclaration","scope":3599,"src":"3210:21:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3545,"name":"string","nodeType":"ElementaryTypeName","src":"3210:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3189:43:21"},"returnParameters":{"id":3548,"nodeType":"ParameterList","parameters":[],"src":"3233:0:21"},"scope":3710,"src":"3178:431:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3624,"nodeType":"Block","src":"3757:200:21","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3607,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3779:4:21","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$3710","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$3710","typeString":"contract EIP712"}],"id":3606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3771:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3605,"name":"address","nodeType":"ElementaryTypeName","src":"3771:7:21","typeDescriptions":{}}},"id":3608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3771:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3609,"name":"_cachedThis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3527,"src":"3788:11:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3771:28:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3611,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3803:5:21","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3809:7:21","memberName":"chainid","nodeType":"MemberAccess","src":"3803:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3613,"name":"_cachedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3525,"src":"3820:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3803:31:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3771:63:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3622,"nodeType":"Block","src":"3896:55:21","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3619,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3646,"src":"3917:21:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":3620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3917:23:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3604,"id":3621,"nodeType":"Return","src":"3910:30:21"}]},"id":3623,"nodeType":"IfStatement","src":"3767:184:21","trueBody":{"id":3618,"nodeType":"Block","src":"3836:54:21","statements":[{"expression":{"id":3616,"name":"_cachedDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3523,"src":"3857:22:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3604,"id":3617,"nodeType":"Return","src":"3850:29:21"}]}}]},"documentation":{"id":3600,"nodeType":"StructuredDocumentation","src":"3615:75:21","text":" @dev Returns the domain separator for the current chain."},"id":3625,"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"3704:18:21","nodeType":"FunctionDefinition","parameters":{"id":3601,"nodeType":"ParameterList","parameters":[],"src":"3722:2:21"},"returnParameters":{"id":3604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3625,"src":"3748:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3602,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3748:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3747:9:21"},"scope":3710,"src":"3695:262:21","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3645,"nodeType":"Block","src":"4027:116:21","statements":[{"expression":{"arguments":[{"arguments":[{"id":3633,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3521,"src":"4065:10:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3634,"name":"_hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3529,"src":"4077:11:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3635,"name":"_hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3531,"src":"4090:14:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3636,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4106:5:21","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4112:7:21","memberName":"chainid","nodeType":"MemberAccess","src":"4106:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":3640,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4129:4:21","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$3710","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$3710","typeString":"contract EIP712"}],"id":3639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4121:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3638,"name":"address","nodeType":"ElementaryTypeName","src":"4121:7:21","typeDescriptions":{}}},"id":3641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4121:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4054:3:21","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4058:6:21","memberName":"encode","nodeType":"MemberAccess","src":"4054:10:21","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4054:81:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3630,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4044:9:21","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:92:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3629,"id":3644,"nodeType":"Return","src":"4037:99:21"}]},"id":3646,"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3972:21:21","nodeType":"FunctionDefinition","parameters":{"id":3626,"nodeType":"ParameterList","parameters":[],"src":"3993:2:21"},"returnParameters":{"id":3629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3646,"src":"4018:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4018:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4017:9:21"},"scope":3710,"src":"3963:180:21","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":3661,"nodeType":"Block","src":"4854:79:21","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3656,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3625,"src":"4893:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":3657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4893:20:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3658,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3649,"src":"4915:10:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3654,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3506,"src":"4871:5:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$3506_$","typeString":"type(library ECDSA)"}},"id":3655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4877:15:21","memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":3485,"src":"4871:21:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":3659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4871:55:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3653,"id":3660,"nodeType":"Return","src":"4864:62:21"}]},"documentation":{"id":3647,"nodeType":"StructuredDocumentation","src":"4149:614:21","text":" @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n     keccak256(\"Mail(address to,string contents)\"),\n     mailTo,\n     keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```"},"id":3662,"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"4777:16:21","nodeType":"FunctionDefinition","parameters":{"id":3650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3649,"mutability":"mutable","name":"structHash","nameLocation":"4802:10:21","nodeType":"VariableDeclaration","scope":3662,"src":"4794:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4794:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4793:20:21"},"returnParameters":{"id":3653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3662,"src":"4845:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4845:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4844:9:21"},"scope":3710,"src":"4768:165:21","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[252],"body":{"id":3708,"nodeType":"Block","src":"5366:288:21","statements":[{"expression":{"components":[{"hexValue":"0f","id":3682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"5397:7:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c","typeString":"literal_string hex\"0f\""},"value":"\u000f"},{"arguments":[{"id":3685,"name":"_nameFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3539,"src":"5454:13:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":3683,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"5427:5:21","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"id":3684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5433:20:21","memberName":"toStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":2769,"src":"5427:26:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$2590_$_t_string_storage_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_userDefinedValueType$_ShortString_$2590_$","typeString":"function (ShortString,string storage pointer) pure returns (string memory)"}},"id":3686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5427:41:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":3689,"name":"_versionFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3541,"src":"5512:16:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":3687,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3537,"src":"5482:8:21","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$2590","typeString":"ShortString"}},"id":3688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5491:20:21","memberName":"toStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":2769,"src":"5482:29:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$2590_$_t_string_storage_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_userDefinedValueType$_ShortString_$2590_$","typeString":"function (ShortString,string storage pointer) pure returns (string memory)"}},"id":3690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5482:47:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":3691,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5543:5:21","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5549:7:21","memberName":"chainid","nodeType":"MemberAccess","src":"5543:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":3695,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5578:4:21","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$3710","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$3710","typeString":"contract EIP712"}],"id":3694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5570:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3693,"name":"address","nodeType":"ElementaryTypeName","src":"5570:7:21","typeDescriptions":{}}},"id":3696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5570:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":3699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5605:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5597:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5597:7:21","typeDescriptions":{}}},"id":3700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5597:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":3704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5635:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5621:13:21","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":3701,"name":"uint256","nodeType":"ElementaryTypeName","src":"5625:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3702,"nodeType":"ArrayTypeName","src":"5625:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":3705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5621:16:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"id":3706,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5383:264:21","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(literal_string hex\"0f\",string memory,string memory,uint256,address,bytes32,uint256[] memory)"}},"functionReturnParameters":3681,"id":3707,"nodeType":"Return","src":"5376:271:21"}]},"documentation":{"id":3663,"nodeType":"StructuredDocumentation","src":"4939:77:21","text":" @dev See {EIP-5267}.\n _Available since v4.9._"},"functionSelector":"84b0196e","id":3709,"implemented":true,"kind":"function","modifiers":[],"name":"eip712Domain","nameLocation":"5030:12:21","nodeType":"FunctionDefinition","overrides":{"id":3665,"nodeType":"OverrideSpecifier","overrides":[],"src":"5097:8:21"},"parameters":{"id":3664,"nodeType":"ParameterList","parameters":[],"src":"5042:2:21"},"returnParameters":{"id":3681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3667,"mutability":"mutable","name":"fields","nameLocation":"5143:6:21","nodeType":"VariableDeclaration","scope":3709,"src":"5136:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":3666,"name":"bytes1","nodeType":"ElementaryTypeName","src":"5136:6:21","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"},{"constant":false,"id":3669,"mutability":"mutable","name":"name","nameLocation":"5177:4:21","nodeType":"VariableDeclaration","scope":3709,"src":"5163:18:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3668,"name":"string","nodeType":"ElementaryTypeName","src":"5163:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3671,"mutability":"mutable","name":"version","nameLocation":"5209:7:21","nodeType":"VariableDeclaration","scope":3709,"src":"5195:21:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3670,"name":"string","nodeType":"ElementaryTypeName","src":"5195:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3673,"mutability":"mutable","name":"chainId","nameLocation":"5238:7:21","nodeType":"VariableDeclaration","scope":3709,"src":"5230:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3672,"name":"uint256","nodeType":"ElementaryTypeName","src":"5230:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3675,"mutability":"mutable","name":"verifyingContract","nameLocation":"5267:17:21","nodeType":"VariableDeclaration","scope":3709,"src":"5259:25:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3674,"name":"address","nodeType":"ElementaryTypeName","src":"5259:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3677,"mutability":"mutable","name":"salt","nameLocation":"5306:4:21","nodeType":"VariableDeclaration","scope":3709,"src":"5298:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5298:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3680,"mutability":"mutable","name":"extensions","nameLocation":"5341:10:21","nodeType":"VariableDeclaration","scope":3709,"src":"5324:27:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3678,"name":"uint256","nodeType":"ElementaryTypeName","src":"5324:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3679,"nodeType":"ArrayTypeName","src":"5324:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5122:239:21"},"scope":3710,"src":"5021:633:21","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":3711,"src":"1809:3847:21","usedErrors":[2598,2600],"usedEvents":[233]}],"src":"113:5544:21"},"id":21},"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol","exportedSymbols":{"ECDSA":[3506],"IERC1271":[209],"Math":[4711],"SignatureChecker":[3809],"SignedMath":[4816],"Strings":[3140]},"id":3810,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3712,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"123:23:22"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","id":3713,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3810,"sourceUnit":3507,"src":"148:21:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1271.sol","file":"../../interfaces/IERC1271.sol","id":3714,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3810,"sourceUnit":210,"src":"170:39:22","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SignatureChecker","contractDependencies":[],"contractKind":"library","documentation":{"id":3715,"nodeType":"StructuredDocumentation","src":"211:294:22","text":" @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA\n signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like\n Argent and Gnosis Safe.\n _Available since v4.1._"},"fullyImplemented":true,"id":3809,"linearizedBaseContracts":[3809],"name":"SignatureChecker","nameLocation":"514:16:22","nodeType":"ContractDefinition","nodes":[{"body":{"id":3755,"nodeType":"Block","src":"1126:254:22","statements":[{"assignments":[3728,3731],"declarations":[{"constant":false,"id":3728,"mutability":"mutable","name":"recovered","nameLocation":"1145:9:22","nodeType":"VariableDeclaration","scope":3755,"src":"1137:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3727,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3731,"mutability":"mutable","name":"error","nameLocation":"1175:5:22","nodeType":"VariableDeclaration","scope":3755,"src":"1156:24:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":3730,"nodeType":"UserDefinedTypeName","pathNode":{"id":3729,"name":"ECDSA.RecoverError","nameLocations":["1156:5:22","1162:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":3150,"src":"1156:18:22"},"referencedDeclaration":3150,"src":"1156:18:22","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":3737,"initialValue":{"arguments":[{"id":3734,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"1201:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3735,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"1207:9:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3732,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3506,"src":"1184:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$3506_$","typeString":"type(library ECDSA)"}},"id":3733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1190:10:22","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":3240,"src":"1184:16:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":3736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1184:33:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$3150_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"1136:81:22"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"},"id":3742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3738,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3731,"src":"1247:5:22","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":3739,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3506,"src":"1256:5:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$3506_$","typeString":"type(library ECDSA)"}},"id":3740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1262:12:22","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":3150,"src":"1256:18:22","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$3150_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":3741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1275:7:22","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":3145,"src":"1256:26:22","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$3150","typeString":"enum ECDSA.RecoverError"}},"src":"1247:35:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3743,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3728,"src":"1286:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3744,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3718,"src":"1299:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1286:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1247:58:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3747,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1246:60:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":3749,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3718,"src":"1349:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3750,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"1357:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3751,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3722,"src":"1363:9:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3748,"name":"isValidERC1271SignatureNow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3808,"src":"1322:26:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes memory) view returns (bool)"}},"id":3752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:51:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1246:127:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3726,"id":3754,"nodeType":"Return","src":"1227:146:22"}]},"documentation":{"id":3716,"nodeType":"StructuredDocumentation","src":"537:472:22","text":" @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the\n signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`.\n NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus\n change through time. It could return true at block N and false at block N+1 (or the opposite)."},"id":3756,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"1023:19:22","nodeType":"FunctionDefinition","parameters":{"id":3723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3718,"mutability":"mutable","name":"signer","nameLocation":"1051:6:22","nodeType":"VariableDeclaration","scope":3756,"src":"1043:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3717,"name":"address","nodeType":"ElementaryTypeName","src":"1043:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3720,"mutability":"mutable","name":"hash","nameLocation":"1067:4:22","nodeType":"VariableDeclaration","scope":3756,"src":"1059:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3719,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1059:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3722,"mutability":"mutable","name":"signature","nameLocation":"1086:9:22","nodeType":"VariableDeclaration","scope":3756,"src":"1073:22:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3721,"name":"bytes","nodeType":"ElementaryTypeName","src":"1073:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1042:54:22"},"returnParameters":{"id":3726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3756,"src":"1120:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3724,"name":"bool","nodeType":"ElementaryTypeName","src":"1120:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1119:6:22"},"scope":3809,"src":"1014:366:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3807,"nodeType":"Block","src":"1935:324:22","statements":[{"assignments":[3769,3771],"declarations":[{"constant":false,"id":3769,"mutability":"mutable","name":"success","nameLocation":"1951:7:22","nodeType":"VariableDeclaration","scope":3807,"src":"1946:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3768,"name":"bool","nodeType":"ElementaryTypeName","src":"1946:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3771,"mutability":"mutable","name":"result","nameLocation":"1973:6:22","nodeType":"VariableDeclaration","scope":3807,"src":"1960:19:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3770,"name":"bytes","nodeType":"ElementaryTypeName","src":"1960:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3783,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":3776,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"2037:8:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$209_$","typeString":"type(contract IERC1271)"}},"id":3777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2046:16:22","memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":208,"src":"2037:25:22","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function IERC1271.isValidSignature(bytes32,bytes memory) view returns (bytes4)"}},"id":3778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2063:8:22","memberName":"selector","nodeType":"MemberAccess","src":"2037:34:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":3779,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3761,"src":"2073:4:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3780,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3763,"src":"2079:9:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3774,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2014:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2018:18:22","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2014:22:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":3781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2014:75:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3772,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3759,"src":"1983:6:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1990:10:22","memberName":"staticcall","nodeType":"MemberAccess","src":"1983:17:22","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":3782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1983:116:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1945:154:22"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3784,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"2117:7:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3785,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3771,"src":"2140:6:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2147:6:22","memberName":"length","nodeType":"MemberAccess","src":"2140:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":3787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2157:2:22","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2140:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2117:42:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3792,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3771,"src":"2186:6:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":3794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2195:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2195:7:22","typeDescriptions":{}}}],"id":3795,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2194:9:22","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":3790,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2175:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2179:6:22","memberName":"decode","nodeType":"MemberAccess","src":"2175:10:22","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":3796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2175:29:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"expression":{"id":3799,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"2216:8:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$209_$","typeString":"type(contract IERC1271)"}},"id":3800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2225:16:22","memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":208,"src":"2216:25:22","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function IERC1271.isValidSignature(bytes32,bytes memory) view returns (bytes4)"}},"id":3801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2242:8:22","memberName":"selector","nodeType":"MemberAccess","src":"2216:34:22","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":3798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2208:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3797,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2208:7:22","typeDescriptions":{}}},"id":3802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:43:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2175:76:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2117:134:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3805,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2116:136:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3767,"id":3806,"nodeType":"Return","src":"2109:143:22"}]},"documentation":{"id":3757,"nodeType":"StructuredDocumentation","src":"1386:395:22","text":" @dev Checks if a signature is valid for a given signer and data hash. The signature is validated\n against the signer smart contract using ERC1271.\n NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus\n change through time. It could return true at block N and false at block N+1 (or the opposite)."},"id":3808,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNow","nameLocation":"1795:26:22","nodeType":"FunctionDefinition","parameters":{"id":3764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3759,"mutability":"mutable","name":"signer","nameLocation":"1839:6:22","nodeType":"VariableDeclaration","scope":3808,"src":"1831:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3758,"name":"address","nodeType":"ElementaryTypeName","src":"1831:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3761,"mutability":"mutable","name":"hash","nameLocation":"1863:4:22","nodeType":"VariableDeclaration","scope":3808,"src":"1855:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1855:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3763,"mutability":"mutable","name":"signature","nameLocation":"1890:9:22","nodeType":"VariableDeclaration","scope":3808,"src":"1877:22:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3762,"name":"bytes","nodeType":"ElementaryTypeName","src":"1877:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1821:84:22"},"returnParameters":{"id":3767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3808,"src":"1929:4:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3765,"name":"bool","nodeType":"ElementaryTypeName","src":"1929:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1928:6:22"},"scope":3809,"src":"1786:473:22","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":3810,"src":"506:1755:22","usedErrors":[],"usedEvents":[]}],"src":"123:2139:22"},"id":22},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[3833],"IERC165":[3845]},"id":3834,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3811,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:23"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":3812,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3834,"sourceUnit":3846,"src":"124:23:23","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3814,"name":"IERC165","nameLocations":["754:7:23"],"nodeType":"IdentifierPath","referencedDeclaration":3845,"src":"754:7:23"},"id":3815,"nodeType":"InheritanceSpecifier","src":"754:7:23"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":3813,"nodeType":"StructuredDocumentation","src":"149:576:23","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n     return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"id":3833,"linearizedBaseContracts":[3833,3845],"name":"ERC165","nameLocation":"744:6:23","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[3844],"body":{"id":3831,"nodeType":"Block","src":"920:64:23","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3824,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"937:11:23","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":3826,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3845,"src":"957:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$3845_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$3845_$","typeString":"type(contract IERC165)"}],"id":3825,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"952:4:23","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"952:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$3845","typeString":"type(contract IERC165)"}},"id":3828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"966:11:23","memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:23","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3823,"id":3830,"nodeType":"Return","src":"930:47:23"}]},"documentation":{"id":3816,"nodeType":"StructuredDocumentation","src":"768:56:23","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":3832,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:23","nodeType":"FunctionDefinition","overrides":{"id":3820,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:23"},"parameters":{"id":3819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3818,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:23","nodeType":"VariableDeclaration","scope":3832,"src":"856:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3817,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:23","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:23"},"returnParameters":{"id":3823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3822,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3832,"src":"914:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3821,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:23"},"scope":3833,"src":"829:155:23","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":3834,"src":"726:260:23","usedErrors":[],"usedEvents":[]}],"src":"99:888:23"},"id":23},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[3845]},"id":3846,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3835,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:24"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":3836,"nodeType":"StructuredDocumentation","src":"125:279:24","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":3845,"linearizedBaseContracts":[3845],"name":"IERC165","nameLocation":"415:7:24","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3837,"nodeType":"StructuredDocumentation","src":"429:340:24","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":3844,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:24","nodeType":"FunctionDefinition","parameters":{"id":3840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3839,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:24","nodeType":"VariableDeclaration","scope":3844,"src":"801:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3838,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:24","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:24"},"returnParameters":{"id":3843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3844,"src":"844:4:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3841,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:24"},"scope":3845,"src":"774:76:24","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3846,"src":"405:447:24","usedErrors":[],"usedEvents":[]}],"src":"100:753:24"},"id":24},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[4711]},"id":4712,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3847,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:25"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":3848,"nodeType":"StructuredDocumentation","src":"128:73:25","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":4711,"linearizedBaseContracts":[4711],"name":"Math","nameLocation":"210:4:25","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":3852,"members":[{"id":3849,"name":"Down","nameLocation":"245:4:25","nodeType":"EnumValue","src":"245:4:25"},{"id":3850,"name":"Up","nameLocation":"287:2:25","nodeType":"EnumValue","src":"287:2:25"},{"id":3851,"name":"Zero","nameLocation":"318:4:25","nodeType":"EnumValue","src":"318:4:25"}],"name":"Rounding","nameLocation":"226:8:25","nodeType":"EnumDefinition","src":"221:122:25"},{"body":{"id":3869,"nodeType":"Block","src":"480:37:25","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3862,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"497:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3863,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3857,"src":"501:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3866,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3857,"src":"509:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:25","trueExpression":{"id":3865,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3855,"src":"505:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3861,"id":3868,"nodeType":"Return","src":"490:20:25"}]},"documentation":{"id":3853,"nodeType":"StructuredDocumentation","src":"349:59:25","text":" @dev Returns the largest of two numbers."},"id":3870,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:25","nodeType":"FunctionDefinition","parameters":{"id":3858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3855,"mutability":"mutable","name":"a","nameLocation":"434:1:25","nodeType":"VariableDeclaration","scope":3870,"src":"426:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3854,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3857,"mutability":"mutable","name":"b","nameLocation":"445:1:25","nodeType":"VariableDeclaration","scope":3870,"src":"437:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3856,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:25"},"returnParameters":{"id":3861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3860,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3870,"src":"471:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3859,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:25"},"scope":4711,"src":"413:104:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3887,"nodeType":"Block","src":"655:37:25","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3880,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3873,"src":"672:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3881,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3875,"src":"676:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3884,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3875,"src":"684:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:25","trueExpression":{"id":3883,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3873,"src":"680:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3879,"id":3886,"nodeType":"Return","src":"665:20:25"}]},"documentation":{"id":3871,"nodeType":"StructuredDocumentation","src":"523:60:25","text":" @dev Returns the smallest of two numbers."},"id":3888,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:25","nodeType":"FunctionDefinition","parameters":{"id":3876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3873,"mutability":"mutable","name":"a","nameLocation":"609:1:25","nodeType":"VariableDeclaration","scope":3888,"src":"601:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3872,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3875,"mutability":"mutable","name":"b","nameLocation":"620:1:25","nodeType":"VariableDeclaration","scope":3888,"src":"612:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3874,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:25"},"returnParameters":{"id":3879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3888,"src":"646:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3877,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:25"},"scope":4711,"src":"588:104:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3910,"nodeType":"Block","src":"876:82:25","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3898,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"931:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3899,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"935:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3901,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3902,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"941:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3903,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"945:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3905,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":3906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3897,"id":3909,"nodeType":"Return","src":"923:28:25"}]},"documentation":{"id":3889,"nodeType":"StructuredDocumentation","src":"698:102:25","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":3911,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:25","nodeType":"FunctionDefinition","parameters":{"id":3894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3891,"mutability":"mutable","name":"a","nameLocation":"830:1:25","nodeType":"VariableDeclaration","scope":3911,"src":"822:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3890,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3893,"mutability":"mutable","name":"b","nameLocation":"841:1:25","nodeType":"VariableDeclaration","scope":3911,"src":"833:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3892,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:25"},"returnParameters":{"id":3897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3896,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3911,"src":"867:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3895,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:25"},"scope":4711,"src":"805:153:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3935,"nodeType":"Block","src":"1228:123:25","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3921,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3914,"src":"1316:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3925,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3914,"src":"1330:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3928,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3929,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3916,"src":"1339:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:25","trueExpression":{"hexValue":"30","id":3924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3920,"id":3934,"nodeType":"Return","src":"1309:35:25"}]},"documentation":{"id":3912,"nodeType":"StructuredDocumentation","src":"964:188:25","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds up instead\n of rounding down."},"id":3936,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:25","nodeType":"FunctionDefinition","parameters":{"id":3917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3914,"mutability":"mutable","name":"a","nameLocation":"1182:1:25","nodeType":"VariableDeclaration","scope":3936,"src":"1174:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3913,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3916,"mutability":"mutable","name":"b","nameLocation":"1193:1:25","nodeType":"VariableDeclaration","scope":3936,"src":"1185:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3915,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:25"},"returnParameters":{"id":3920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3919,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3936,"src":"1219:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3918,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:25"},"scope":4711,"src":"1157:194:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4058,"nodeType":"Block","src":"1765:4115:25","statements":[{"id":4057,"nodeType":"UncheckedBlock","src":"1775:4099:25","statements":[{"assignments":[3949],"declarations":[{"constant":false,"id":3949,"mutability":"mutable","name":"prod0","nameLocation":"2104:5:25","nodeType":"VariableDeclaration","scope":4057,"src":"2096:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3948,"name":"uint256","nodeType":"ElementaryTypeName","src":"2096:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3950,"nodeType":"VariableDeclarationStatement","src":"2096:13:25"},{"assignments":[3952],"declarations":[{"constant":false,"id":3952,"mutability":"mutable","name":"prod1","nameLocation":"2176:5:25","nodeType":"VariableDeclaration","scope":4057,"src":"2168:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3951,"name":"uint256","nodeType":"ElementaryTypeName","src":"2168:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3953,"nodeType":"VariableDeclarationStatement","src":"2168:13:25"},{"AST":{"nativeSrc":"2248:157:25","nodeType":"YulBlock","src":"2248:157:25","statements":[{"nativeSrc":"2266:30:25","nodeType":"YulVariableDeclaration","src":"2266:30:25","value":{"arguments":[{"name":"x","nativeSrc":"2283:1:25","nodeType":"YulIdentifier","src":"2283:1:25"},{"name":"y","nativeSrc":"2286:1:25","nodeType":"YulIdentifier","src":"2286:1:25"},{"arguments":[{"kind":"number","nativeSrc":"2293:1:25","nodeType":"YulLiteral","src":"2293:1:25","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2289:3:25","nodeType":"YulIdentifier","src":"2289:3:25"},"nativeSrc":"2289:6:25","nodeType":"YulFunctionCall","src":"2289:6:25"}],"functionName":{"name":"mulmod","nativeSrc":"2276:6:25","nodeType":"YulIdentifier","src":"2276:6:25"},"nativeSrc":"2276:20:25","nodeType":"YulFunctionCall","src":"2276:20:25"},"variables":[{"name":"mm","nativeSrc":"2270:2:25","nodeType":"YulTypedName","src":"2270:2:25","type":""}]},{"nativeSrc":"2313:18:25","nodeType":"YulAssignment","src":"2313:18:25","value":{"arguments":[{"name":"x","nativeSrc":"2326:1:25","nodeType":"YulIdentifier","src":"2326:1:25"},{"name":"y","nativeSrc":"2329:1:25","nodeType":"YulIdentifier","src":"2329:1:25"}],"functionName":{"name":"mul","nativeSrc":"2322:3:25","nodeType":"YulIdentifier","src":"2322:3:25"},"nativeSrc":"2322:9:25","nodeType":"YulFunctionCall","src":"2322:9:25"},"variableNames":[{"name":"prod0","nativeSrc":"2313:5:25","nodeType":"YulIdentifier","src":"2313:5:25"}]},{"nativeSrc":"2348:43:25","nodeType":"YulAssignment","src":"2348:43:25","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"2365:2:25","nodeType":"YulIdentifier","src":"2365:2:25"},{"name":"prod0","nativeSrc":"2369:5:25","nodeType":"YulIdentifier","src":"2369:5:25"}],"functionName":{"name":"sub","nativeSrc":"2361:3:25","nodeType":"YulIdentifier","src":"2361:3:25"},"nativeSrc":"2361:14:25","nodeType":"YulFunctionCall","src":"2361:14:25"},{"arguments":[{"name":"mm","nativeSrc":"2380:2:25","nodeType":"YulIdentifier","src":"2380:2:25"},{"name":"prod0","nativeSrc":"2384:5:25","nodeType":"YulIdentifier","src":"2384:5:25"}],"functionName":{"name":"lt","nativeSrc":"2377:2:25","nodeType":"YulIdentifier","src":"2377:2:25"},"nativeSrc":"2377:13:25","nodeType":"YulFunctionCall","src":"2377:13:25"}],"functionName":{"name":"sub","nativeSrc":"2357:3:25","nodeType":"YulIdentifier","src":"2357:3:25"},"nativeSrc":"2357:34:25","nodeType":"YulFunctionCall","src":"2357:34:25"},"variableNames":[{"name":"prod1","nativeSrc":"2348:5:25","nodeType":"YulIdentifier","src":"2348:5:25"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3949,"isOffset":false,"isSlot":false,"src":"2313:5:25","valueSize":1},{"declaration":3949,"isOffset":false,"isSlot":false,"src":"2369:5:25","valueSize":1},{"declaration":3949,"isOffset":false,"isSlot":false,"src":"2384:5:25","valueSize":1},{"declaration":3952,"isOffset":false,"isSlot":false,"src":"2348:5:25","valueSize":1},{"declaration":3939,"isOffset":false,"isSlot":false,"src":"2283:1:25","valueSize":1},{"declaration":3939,"isOffset":false,"isSlot":false,"src":"2326:1:25","valueSize":1},{"declaration":3941,"isOffset":false,"isSlot":false,"src":"2286:1:25","valueSize":1},{"declaration":3941,"isOffset":false,"isSlot":false,"src":"2329:1:25","valueSize":1}],"id":3954,"nodeType":"InlineAssembly","src":"2239:166:25"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3955,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"2486:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2486:10:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3963,"nodeType":"IfStatement","src":"2482:368:25","trueBody":{"id":3962,"nodeType":"Block","src":"2498:352:25","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3958,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3949,"src":"2816:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3959,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"2824:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2816:19:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3947,"id":3961,"nodeType":"Return","src":"2809:26:25"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3965,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"2960:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3966,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"2974:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2960:19:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6174683a206d756c446976206f766572666c6f77","id":3968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2981:23:25","typeDescriptions":{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""},"value":"Math: mulDiv overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d87093691d63b122ac2c14d1b11554b287e2431cf2b03550b3be7cffb0f86851","typeString":"literal_string \"Math: mulDiv overflow\""}],"id":3964,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2952:7:25","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:53:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3970,"nodeType":"ExpressionStatement","src":"2952:53:25"},{"assignments":[3972],"declarations":[{"constant":false,"id":3972,"mutability":"mutable","name":"remainder","nameLocation":"3269:9:25","nodeType":"VariableDeclaration","scope":4057,"src":"3261:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3971,"name":"uint256","nodeType":"ElementaryTypeName","src":"3261:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3973,"nodeType":"VariableDeclarationStatement","src":"3261:17:25"},{"AST":{"nativeSrc":"3301:291:25","nodeType":"YulBlock","src":"3301:291:25","statements":[{"nativeSrc":"3370:38:25","nodeType":"YulAssignment","src":"3370:38:25","value":{"arguments":[{"name":"x","nativeSrc":"3390:1:25","nodeType":"YulIdentifier","src":"3390:1:25"},{"name":"y","nativeSrc":"3393:1:25","nodeType":"YulIdentifier","src":"3393:1:25"},{"name":"denominator","nativeSrc":"3396:11:25","nodeType":"YulIdentifier","src":"3396:11:25"}],"functionName":{"name":"mulmod","nativeSrc":"3383:6:25","nodeType":"YulIdentifier","src":"3383:6:25"},"nativeSrc":"3383:25:25","nodeType":"YulFunctionCall","src":"3383:25:25"},"variableNames":[{"name":"remainder","nativeSrc":"3370:9:25","nodeType":"YulIdentifier","src":"3370:9:25"}]},{"nativeSrc":"3490:41:25","nodeType":"YulAssignment","src":"3490:41:25","value":{"arguments":[{"name":"prod1","nativeSrc":"3503:5:25","nodeType":"YulIdentifier","src":"3503:5:25"},{"arguments":[{"name":"remainder","nativeSrc":"3513:9:25","nodeType":"YulIdentifier","src":"3513:9:25"},{"name":"prod0","nativeSrc":"3524:5:25","nodeType":"YulIdentifier","src":"3524:5:25"}],"functionName":{"name":"gt","nativeSrc":"3510:2:25","nodeType":"YulIdentifier","src":"3510:2:25"},"nativeSrc":"3510:20:25","nodeType":"YulFunctionCall","src":"3510:20:25"}],"functionName":{"name":"sub","nativeSrc":"3499:3:25","nodeType":"YulIdentifier","src":"3499:3:25"},"nativeSrc":"3499:32:25","nodeType":"YulFunctionCall","src":"3499:32:25"},"variableNames":[{"name":"prod1","nativeSrc":"3490:5:25","nodeType":"YulIdentifier","src":"3490:5:25"}]},{"nativeSrc":"3548:30:25","nodeType":"YulAssignment","src":"3548:30:25","value":{"arguments":[{"name":"prod0","nativeSrc":"3561:5:25","nodeType":"YulIdentifier","src":"3561:5:25"},{"name":"remainder","nativeSrc":"3568:9:25","nodeType":"YulIdentifier","src":"3568:9:25"}],"functionName":{"name":"sub","nativeSrc":"3557:3:25","nodeType":"YulIdentifier","src":"3557:3:25"},"nativeSrc":"3557:21:25","nodeType":"YulFunctionCall","src":"3557:21:25"},"variableNames":[{"name":"prod0","nativeSrc":"3548:5:25","nodeType":"YulIdentifier","src":"3548:5:25"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3943,"isOffset":false,"isSlot":false,"src":"3396:11:25","valueSize":1},{"declaration":3949,"isOffset":false,"isSlot":false,"src":"3524:5:25","valueSize":1},{"declaration":3949,"isOffset":false,"isSlot":false,"src":"3548:5:25","valueSize":1},{"declaration":3949,"isOffset":false,"isSlot":false,"src":"3561:5:25","valueSize":1},{"declaration":3952,"isOffset":false,"isSlot":false,"src":"3490:5:25","valueSize":1},{"declaration":3952,"isOffset":false,"isSlot":false,"src":"3503:5:25","valueSize":1},{"declaration":3972,"isOffset":false,"isSlot":false,"src":"3370:9:25","valueSize":1},{"declaration":3972,"isOffset":false,"isSlot":false,"src":"3513:9:25","valueSize":1},{"declaration":3972,"isOffset":false,"isSlot":false,"src":"3568:9:25","valueSize":1},{"declaration":3939,"isOffset":false,"isSlot":false,"src":"3390:1:25","valueSize":1},{"declaration":3941,"isOffset":false,"isSlot":false,"src":"3393:1:25","valueSize":1}],"id":3974,"nodeType":"InlineAssembly","src":"3292:300:25"},{"assignments":[3976],"declarations":[{"constant":false,"id":3976,"mutability":"mutable","name":"twos","nameLocation":"3907:4:25","nodeType":"VariableDeclaration","scope":4057,"src":"3899:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3975,"name":"uint256","nodeType":"ElementaryTypeName","src":"3899:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3984,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3977,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"3914:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3929:12:25","subExpression":{"id":3978,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"3930:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3944:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3929:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3982,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3928:18:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3914:32:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3899:47:25"},{"AST":{"nativeSrc":"3969:362:25","nodeType":"YulBlock","src":"3969:362:25","statements":[{"nativeSrc":"4034:37:25","nodeType":"YulAssignment","src":"4034:37:25","value":{"arguments":[{"name":"denominator","nativeSrc":"4053:11:25","nodeType":"YulIdentifier","src":"4053:11:25"},{"name":"twos","nativeSrc":"4066:4:25","nodeType":"YulIdentifier","src":"4066:4:25"}],"functionName":{"name":"div","nativeSrc":"4049:3:25","nodeType":"YulIdentifier","src":"4049:3:25"},"nativeSrc":"4049:22:25","nodeType":"YulFunctionCall","src":"4049:22:25"},"variableNames":[{"name":"denominator","nativeSrc":"4034:11:25","nodeType":"YulIdentifier","src":"4034:11:25"}]},{"nativeSrc":"4138:25:25","nodeType":"YulAssignment","src":"4138:25:25","value":{"arguments":[{"name":"prod0","nativeSrc":"4151:5:25","nodeType":"YulIdentifier","src":"4151:5:25"},{"name":"twos","nativeSrc":"4158:4:25","nodeType":"YulIdentifier","src":"4158:4:25"}],"functionName":{"name":"div","nativeSrc":"4147:3:25","nodeType":"YulIdentifier","src":"4147:3:25"},"nativeSrc":"4147:16:25","nodeType":"YulFunctionCall","src":"4147:16:25"},"variableNames":[{"name":"prod0","nativeSrc":"4138:5:25","nodeType":"YulIdentifier","src":"4138:5:25"}]},{"nativeSrc":"4278:39:25","nodeType":"YulAssignment","src":"4278:39:25","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4298:1:25","nodeType":"YulLiteral","src":"4298:1:25","type":"","value":"0"},{"name":"twos","nativeSrc":"4301:4:25","nodeType":"YulIdentifier","src":"4301:4:25"}],"functionName":{"name":"sub","nativeSrc":"4294:3:25","nodeType":"YulIdentifier","src":"4294:3:25"},"nativeSrc":"4294:12:25","nodeType":"YulFunctionCall","src":"4294:12:25"},{"name":"twos","nativeSrc":"4308:4:25","nodeType":"YulIdentifier","src":"4308:4:25"}],"functionName":{"name":"div","nativeSrc":"4290:3:25","nodeType":"YulIdentifier","src":"4290:3:25"},"nativeSrc":"4290:23:25","nodeType":"YulFunctionCall","src":"4290:23:25"},{"kind":"number","nativeSrc":"4315:1:25","nodeType":"YulLiteral","src":"4315:1:25","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4286:3:25","nodeType":"YulIdentifier","src":"4286:3:25"},"nativeSrc":"4286:31:25","nodeType":"YulFunctionCall","src":"4286:31:25"},"variableNames":[{"name":"twos","nativeSrc":"4278:4:25","nodeType":"YulIdentifier","src":"4278:4:25"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3943,"isOffset":false,"isSlot":false,"src":"4034:11:25","valueSize":1},{"declaration":3943,"isOffset":false,"isSlot":false,"src":"4053:11:25","valueSize":1},{"declaration":3949,"isOffset":false,"isSlot":false,"src":"4138:5:25","valueSize":1},{"declaration":3949,"isOffset":false,"isSlot":false,"src":"4151:5:25","valueSize":1},{"declaration":3976,"isOffset":false,"isSlot":false,"src":"4066:4:25","valueSize":1},{"declaration":3976,"isOffset":false,"isSlot":false,"src":"4158:4:25","valueSize":1},{"declaration":3976,"isOffset":false,"isSlot":false,"src":"4278:4:25","valueSize":1},{"declaration":3976,"isOffset":false,"isSlot":false,"src":"4301:4:25","valueSize":1},{"declaration":3976,"isOffset":false,"isSlot":false,"src":"4308:4:25","valueSize":1}],"id":3985,"nodeType":"InlineAssembly","src":"3960:371:25"},{"expression":{"id":3990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3986,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3949,"src":"4397:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3987,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"4406:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3988,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3976,"src":"4414:4:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4406:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4397:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3991,"nodeType":"ExpressionStatement","src":"4397:21:25"},{"assignments":[3993],"declarations":[{"constant":false,"id":3993,"mutability":"mutable","name":"inverse","nameLocation":"4744:7:25","nodeType":"VariableDeclaration","scope":4057,"src":"4736:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3992,"name":"uint256","nodeType":"ElementaryTypeName","src":"4736:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4000,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":3994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4755:1:25","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3995,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"4759:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4755:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3997,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4754:17:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":3998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4774:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4754:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4736:39:25"},{"expression":{"id":4007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4001,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"4992:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5003:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4003,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"5007:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4004,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5021:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5007:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5003:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4992:36:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4008,"nodeType":"ExpressionStatement","src":"4992:36:25"},{"expression":{"id":4015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4009,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5061:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5072:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4011,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"5076:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4012,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5090:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5076:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5072:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5061:36:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4016,"nodeType":"ExpressionStatement","src":"5061:36:25"},{"expression":{"id":4023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4017,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5131:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5142:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4019,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"5146:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4020,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5160:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5146:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5142:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5131:36:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4024,"nodeType":"ExpressionStatement","src":"5131:36:25"},{"expression":{"id":4031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4025,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5201:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5212:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4027,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"5216:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4028,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5230:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5216:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5212:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5201:36:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4032,"nodeType":"ExpressionStatement","src":"5201:36:25"},{"expression":{"id":4039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4033,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5271:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5282:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4035,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"5286:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4036,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5300:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5286:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5282:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5271:36:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4040,"nodeType":"ExpressionStatement","src":"5271:36:25"},{"expression":{"id":4047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4041,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5342:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5353:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4043,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3943,"src":"5357:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4044,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5371:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5353:25:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5342:36:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4048,"nodeType":"ExpressionStatement","src":"5342:36:25"},{"expression":{"id":4053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4049,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3946,"src":"5812:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4050,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3949,"src":"5821:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4051,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3993,"src":"5829:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5821:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5812:24:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4054,"nodeType":"ExpressionStatement","src":"5812:24:25"},{"expression":{"id":4055,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3946,"src":"5857:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3947,"id":4056,"nodeType":"Return","src":"5850:13:25"}]}]},"documentation":{"id":3937,"nodeType":"StructuredDocumentation","src":"1357:305:25","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)\n with further edits by Uniswap Labs also under MIT license."},"id":4059,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:25","nodeType":"FunctionDefinition","parameters":{"id":3944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3939,"mutability":"mutable","name":"x","nameLocation":"1691:1:25","nodeType":"VariableDeclaration","scope":4059,"src":"1683:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3938,"name":"uint256","nodeType":"ElementaryTypeName","src":"1683:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3941,"mutability":"mutable","name":"y","nameLocation":"1702:1:25","nodeType":"VariableDeclaration","scope":4059,"src":"1694:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3940,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3943,"mutability":"mutable","name":"denominator","nameLocation":"1713:11:25","nodeType":"VariableDeclaration","scope":4059,"src":"1705:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3942,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:43:25"},"returnParameters":{"id":3947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3946,"mutability":"mutable","name":"result","nameLocation":"1757:6:25","nodeType":"VariableDeclaration","scope":4059,"src":"1749:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3945,"name":"uint256","nodeType":"ElementaryTypeName","src":"1749:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1748:16:25"},"scope":4711,"src":"1667:4213:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4102,"nodeType":"Block","src":"6122:189:25","statements":[{"assignments":[4075],"declarations":[{"constant":false,"id":4075,"mutability":"mutable","name":"result","nameLocation":"6140:6:25","nodeType":"VariableDeclaration","scope":4102,"src":"6132:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4074,"name":"uint256","nodeType":"ElementaryTypeName","src":"6132:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4081,"initialValue":{"arguments":[{"id":4077,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4062,"src":"6156:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4078,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4064,"src":"6159:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4079,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"6162:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4076,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[4059,4103],"referencedDeclaration":4059,"src":"6149:6:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":4080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6149:25:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6132:42:25"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"},"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4082,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"6188:8:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4083,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"6200:8:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$3852_$","typeString":"type(enum Math.Rounding)"}},"id":4084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6209:2:25","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":3850,"src":"6200:11:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"src":"6188:23:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4087,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4062,"src":"6222:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4088,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4064,"src":"6225:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4089,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"6228:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4086,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"6215:6:25","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":4090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6215:25:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6243:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6215:29:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6188:56:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4099,"nodeType":"IfStatement","src":"6184:98:25","trueBody":{"id":4098,"nodeType":"Block","src":"6246:36:25","statements":[{"expression":{"id":4096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4094,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"6260:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6270:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6260:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4097,"nodeType":"ExpressionStatement","src":"6260:11:25"}]}},{"expression":{"id":4100,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"6298:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4073,"id":4101,"nodeType":"Return","src":"6291:13:25"}]},"documentation":{"id":4060,"nodeType":"StructuredDocumentation","src":"5886:121:25","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":4103,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"6021:6:25","nodeType":"FunctionDefinition","parameters":{"id":4070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4062,"mutability":"mutable","name":"x","nameLocation":"6036:1:25","nodeType":"VariableDeclaration","scope":4103,"src":"6028:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4061,"name":"uint256","nodeType":"ElementaryTypeName","src":"6028:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4064,"mutability":"mutable","name":"y","nameLocation":"6047:1:25","nodeType":"VariableDeclaration","scope":4103,"src":"6039:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4063,"name":"uint256","nodeType":"ElementaryTypeName","src":"6039:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4066,"mutability":"mutable","name":"denominator","nameLocation":"6058:11:25","nodeType":"VariableDeclaration","scope":4103,"src":"6050:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4065,"name":"uint256","nodeType":"ElementaryTypeName","src":"6050:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4069,"mutability":"mutable","name":"rounding","nameLocation":"6080:8:25","nodeType":"VariableDeclaration","scope":4103,"src":"6071:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"},"typeName":{"id":4068,"nodeType":"UserDefinedTypeName","pathNode":{"id":4067,"name":"Rounding","nameLocations":["6071:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":3852,"src":"6071:8:25"},"referencedDeclaration":3852,"src":"6071:8:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"6027:62:25"},"returnParameters":{"id":4073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4103,"src":"6113:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4071,"name":"uint256","nodeType":"ElementaryTypeName","src":"6113:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6112:9:25"},"scope":4711,"src":"6012:299:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4214,"nodeType":"Block","src":"6587:1585:25","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4111,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"6601:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6606:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6601:6:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4117,"nodeType":"IfStatement","src":"6597:45:25","trueBody":{"id":4116,"nodeType":"Block","src":"6609:33:25","statements":[{"expression":{"hexValue":"30","id":4114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6630:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":4110,"id":4115,"nodeType":"Return","src":"6623:8:25"}]}},{"assignments":[4119],"declarations":[{"constant":false,"id":4119,"mutability":"mutable","name":"result","nameLocation":"7329:6:25","nodeType":"VariableDeclaration","scope":4214,"src":"7321:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4118,"name":"uint256","nodeType":"ElementaryTypeName","src":"7321:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4128,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7338:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4122,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"7349:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4121,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[4383,4419],"referencedDeclaration":4383,"src":"7344:4:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7344:7:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7344:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4126,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7343:14:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7338:19:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7321:36:25"},{"id":4213,"nodeType":"UncheckedBlock","src":"7758:408:25","statements":[{"expression":{"id":4138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4129,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7782:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4130,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7792:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4131,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"7801:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4132,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7805:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7792:19:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7791:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7816:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7791:26:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7782:35:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4139,"nodeType":"ExpressionStatement","src":"7782:35:25"},{"expression":{"id":4149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4140,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7831:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4141,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7841:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4142,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"7850:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4143,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7854:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7841:19:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4146,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7840:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7865:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7840:26:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7831:35:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4150,"nodeType":"ExpressionStatement","src":"7831:35:25"},{"expression":{"id":4160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4151,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7880:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4152,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7890:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4153,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"7899:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4154,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7903:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:19:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4157,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7889:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7914:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7889:26:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7880:35:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4161,"nodeType":"ExpressionStatement","src":"7880:35:25"},{"expression":{"id":4171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4162,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7929:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4163,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7939:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4164,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"7948:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4165,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7952:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7939:19:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4168,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7938:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7963:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7938:26:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7929:35:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4172,"nodeType":"ExpressionStatement","src":"7929:35:25"},{"expression":{"id":4182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4173,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7978:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4174,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"7988:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4175,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"7997:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4176,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"8001:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7997:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7988:19:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7987:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8012:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7987:26:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7978:35:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4183,"nodeType":"ExpressionStatement","src":"7978:35:25"},{"expression":{"id":4193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4184,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"8027:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4185,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"8037:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4186,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"8046:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4187,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"8050:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8046:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8037:19:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4190,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8036:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8061:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8036:26:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8027:35:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4194,"nodeType":"ExpressionStatement","src":"8027:35:25"},{"expression":{"id":4204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4195,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"8076:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4196,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"8086:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4197,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"8095:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4198,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"8099:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8095:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8086:19:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4201,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8085:21:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8110:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8085:26:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8076:35:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4205,"nodeType":"ExpressionStatement","src":"8076:35:25"},{"expression":{"arguments":[{"id":4207,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"8136:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4208,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4106,"src":"8144:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4209,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"8148:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8144:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4206,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3888,"src":"8132:3:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:23:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4110,"id":4212,"nodeType":"Return","src":"8125:30:25"}]}]},"documentation":{"id":4104,"nodeType":"StructuredDocumentation","src":"6317:208:25","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":4215,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6539:4:25","nodeType":"FunctionDefinition","parameters":{"id":4107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4106,"mutability":"mutable","name":"a","nameLocation":"6552:1:25","nodeType":"VariableDeclaration","scope":4215,"src":"6544:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4105,"name":"uint256","nodeType":"ElementaryTypeName","src":"6544:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6543:11:25"},"returnParameters":{"id":4110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4215,"src":"6578:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4108,"name":"uint256","nodeType":"ElementaryTypeName","src":"6578:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6577:9:25"},"scope":4711,"src":"6530:1642:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4250,"nodeType":"Block","src":"8348:161:25","statements":[{"id":4249,"nodeType":"UncheckedBlock","src":"8358:145:25","statements":[{"assignments":[4227],"declarations":[{"constant":false,"id":4227,"mutability":"mutable","name":"result","nameLocation":"8390:6:25","nodeType":"VariableDeclaration","scope":4249,"src":"8382:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4226,"name":"uint256","nodeType":"ElementaryTypeName","src":"8382:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4231,"initialValue":{"arguments":[{"id":4229,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4218,"src":"8404:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4228,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[4215,4251],"referencedDeclaration":4215,"src":"8399:4:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8399:7:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8382:24:25"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4232,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"8427:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"},"id":4236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4233,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4221,"src":"8437:8:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4234,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"8449:8:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$3852_$","typeString":"type(enum Math.Rounding)"}},"id":4235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8458:2:25","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":3850,"src":"8449:11:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"src":"8437:23:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4237,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"8464:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4238,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"8473:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:15:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4240,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4218,"src":"8482:1:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:19:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8437:46:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":4244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8490:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":4245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8437:54:25","trueExpression":{"hexValue":"31","id":4243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8486:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":4246,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8436:56:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8427:65:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4225,"id":4248,"nodeType":"Return","src":"8420:72:25"}]}]},"documentation":{"id":4216,"nodeType":"StructuredDocumentation","src":"8178:89:25","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":4251,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8281:4:25","nodeType":"FunctionDefinition","parameters":{"id":4222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4218,"mutability":"mutable","name":"a","nameLocation":"8294:1:25","nodeType":"VariableDeclaration","scope":4251,"src":"8286:9:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4217,"name":"uint256","nodeType":"ElementaryTypeName","src":"8286:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4221,"mutability":"mutable","name":"rounding","nameLocation":"8306:8:25","nodeType":"VariableDeclaration","scope":4251,"src":"8297:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"},"typeName":{"id":4220,"nodeType":"UserDefinedTypeName","pathNode":{"id":4219,"name":"Rounding","nameLocations":["8297:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":3852,"src":"8297:8:25"},"referencedDeclaration":3852,"src":"8297:8:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8285:30:25"},"returnParameters":{"id":4225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4224,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4251,"src":"8339:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4223,"name":"uint256","nodeType":"ElementaryTypeName","src":"8339:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8338:9:25"},"scope":4711,"src":"8272:237:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4382,"nodeType":"Block","src":"8694:922:25","statements":[{"assignments":[4260],"declarations":[{"constant":false,"id":4260,"mutability":"mutable","name":"result","nameLocation":"8712:6:25","nodeType":"VariableDeclaration","scope":4382,"src":"8704:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4259,"name":"uint256","nodeType":"ElementaryTypeName","src":"8704:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4262,"initialValue":{"hexValue":"30","id":4261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8721:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8704:18:25"},{"id":4379,"nodeType":"UncheckedBlock","src":"8732:855:25","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4263,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"8760:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":4264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8769:3:25","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8760:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8775:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8760:16:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4277,"nodeType":"IfStatement","src":"8756:99:25","trueBody":{"id":4276,"nodeType":"Block","src":"8778:77:25","statements":[{"expression":{"id":4270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4268,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"8796:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":4269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:3:25","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8796:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4271,"nodeType":"ExpressionStatement","src":"8796:13:25"},{"expression":{"id":4274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4272,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4260,"src":"8827:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":4273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8837:3:25","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8827:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4275,"nodeType":"ExpressionStatement","src":"8827:13:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4278,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"8872:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":4279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8881:2:25","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8872:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8886:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8872:15:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4292,"nodeType":"IfStatement","src":"8868:96:25","trueBody":{"id":4291,"nodeType":"Block","src":"8889:75:25","statements":[{"expression":{"id":4285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4283,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"8907:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":4284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8917:2:25","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8907:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4286,"nodeType":"ExpressionStatement","src":"8907:12:25"},{"expression":{"id":4289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4287,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4260,"src":"8937:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":4288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8947:2:25","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8937:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4290,"nodeType":"ExpressionStatement","src":"8937:12:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4293,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"8981:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":4294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8990:2:25","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8981:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8995:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8981:15:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4307,"nodeType":"IfStatement","src":"8977:96:25","trueBody":{"id":4306,"nodeType":"Block","src":"8998:75:25","statements":[{"expression":{"id":4300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4298,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"9016:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":4299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9026:2:25","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9016:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4301,"nodeType":"ExpressionStatement","src":"9016:12:25"},{"expression":{"id":4304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4302,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4260,"src":"9046:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":4303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9056:2:25","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9046:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4305,"nodeType":"ExpressionStatement","src":"9046:12:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4308,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"9090:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":4309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:2:25","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9090:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9104:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9090:15:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4322,"nodeType":"IfStatement","src":"9086:96:25","trueBody":{"id":4321,"nodeType":"Block","src":"9107:75:25","statements":[{"expression":{"id":4315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4313,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"9125:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":4314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9135:2:25","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9125:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4316,"nodeType":"ExpressionStatement","src":"9125:12:25"},{"expression":{"id":4319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4317,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4260,"src":"9155:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":4318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9165:2:25","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9155:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4320,"nodeType":"ExpressionStatement","src":"9155:12:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4323,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"9199:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":4324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9208:1:25","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9199:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9212:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9199:14:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4337,"nodeType":"IfStatement","src":"9195:93:25","trueBody":{"id":4336,"nodeType":"Block","src":"9215:73:25","statements":[{"expression":{"id":4330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4328,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"9233:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":4329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9243:1:25","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9233:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4331,"nodeType":"ExpressionStatement","src":"9233:11:25"},{"expression":{"id":4334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4332,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4260,"src":"9262:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":4333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:1:25","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9262:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4335,"nodeType":"ExpressionStatement","src":"9262:11:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4338,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"9305:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":4339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9314:1:25","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9305:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9318:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9305:14:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4352,"nodeType":"IfStatement","src":"9301:93:25","trueBody":{"id":4351,"nodeType":"Block","src":"9321:73:25","statements":[{"expression":{"id":4345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4343,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"9339:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":4344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9349:1:25","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9339:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4346,"nodeType":"ExpressionStatement","src":"9339:11:25"},{"expression":{"id":4349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4347,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4260,"src":"9368:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":4348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9378:1:25","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9368:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4350,"nodeType":"ExpressionStatement","src":"9368:11:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4353,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"9411:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":4354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9420:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9411:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9424:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9411:14:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4367,"nodeType":"IfStatement","src":"9407:93:25","trueBody":{"id":4366,"nodeType":"Block","src":"9427:73:25","statements":[{"expression":{"id":4360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4358,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"9445:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":4359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9455:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9445:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4361,"nodeType":"ExpressionStatement","src":"9445:11:25"},{"expression":{"id":4364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4362,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4260,"src":"9474:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":4363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9484:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9474:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4365,"nodeType":"ExpressionStatement","src":"9474:11:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4368,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"9517:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9526:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9517:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9530:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9517:14:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4378,"nodeType":"IfStatement","src":"9513:64:25","trueBody":{"id":4377,"nodeType":"Block","src":"9533:44:25","statements":[{"expression":{"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4373,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4260,"src":"9551:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9561:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9551:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4376,"nodeType":"ExpressionStatement","src":"9551:11:25"}]}}]},{"expression":{"id":4380,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4260,"src":"9603:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4258,"id":4381,"nodeType":"Return","src":"9596:13:25"}]},"documentation":{"id":4252,"nodeType":"StructuredDocumentation","src":"8515:113:25","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":4383,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8642:4:25","nodeType":"FunctionDefinition","parameters":{"id":4255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4254,"mutability":"mutable","name":"value","nameLocation":"8655:5:25","nodeType":"VariableDeclaration","scope":4383,"src":"8647:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4253,"name":"uint256","nodeType":"ElementaryTypeName","src":"8647:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8646:15:25"},"returnParameters":{"id":4258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4383,"src":"8685:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4256,"name":"uint256","nodeType":"ElementaryTypeName","src":"8685:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8684:9:25"},"scope":4711,"src":"8633:983:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4418,"nodeType":"Block","src":"9849:165:25","statements":[{"id":4417,"nodeType":"UncheckedBlock","src":"9859:149:25","statements":[{"assignments":[4395],"declarations":[{"constant":false,"id":4395,"mutability":"mutable","name":"result","nameLocation":"9891:6:25","nodeType":"VariableDeclaration","scope":4417,"src":"9883:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4394,"name":"uint256","nodeType":"ElementaryTypeName","src":"9883:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4399,"initialValue":{"arguments":[{"id":4397,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4386,"src":"9905:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4396,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[4383,4419],"referencedDeclaration":4383,"src":"9900:4:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9900:11:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9883:28:25"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4400,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4395,"src":"9932:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"},"id":4404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4401,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4389,"src":"9942:8:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4402,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"9954:8:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$3852_$","typeString":"type(enum Math.Rounding)"}},"id":4403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9963:2:25","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":3850,"src":"9954:11:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"src":"9942:23:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9969:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":4406,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4395,"src":"9974:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4408,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4386,"src":"9983:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:19:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9942:46:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":4412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9995:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":4413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9942:54:25","trueExpression":{"hexValue":"31","id":4411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9991:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":4414,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9941:56:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9932:65:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4393,"id":4416,"nodeType":"Return","src":"9925:72:25"}]}]},"documentation":{"id":4384,"nodeType":"StructuredDocumentation","src":"9622:142:25","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":4419,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9778:4:25","nodeType":"FunctionDefinition","parameters":{"id":4390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4386,"mutability":"mutable","name":"value","nameLocation":"9791:5:25","nodeType":"VariableDeclaration","scope":4419,"src":"9783:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4385,"name":"uint256","nodeType":"ElementaryTypeName","src":"9783:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4389,"mutability":"mutable","name":"rounding","nameLocation":"9807:8:25","nodeType":"VariableDeclaration","scope":4419,"src":"9798:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"},"typeName":{"id":4388,"nodeType":"UserDefinedTypeName","pathNode":{"id":4387,"name":"Rounding","nameLocations":["9798:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":3852,"src":"9798:8:25"},"referencedDeclaration":3852,"src":"9798:8:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9782:34:25"},"returnParameters":{"id":4393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4392,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4419,"src":"9840:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4391,"name":"uint256","nodeType":"ElementaryTypeName","src":"9840:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9839:9:25"},"scope":4711,"src":"9769:245:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4547,"nodeType":"Block","src":"10201:854:25","statements":[{"assignments":[4428],"declarations":[{"constant":false,"id":4428,"mutability":"mutable","name":"result","nameLocation":"10219:6:25","nodeType":"VariableDeclaration","scope":4547,"src":"10211:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4427,"name":"uint256","nodeType":"ElementaryTypeName","src":"10211:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4430,"initialValue":{"hexValue":"30","id":4429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10228:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10211:18:25"},{"id":4544,"nodeType":"UncheckedBlock","src":"10239:787:25","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4431,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10267:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":4434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10276:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":4433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10282:2:25","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10276:8:25","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10267:17:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4447,"nodeType":"IfStatement","src":"10263:103:25","trueBody":{"id":4446,"nodeType":"Block","src":"10286:80:25","statements":[{"expression":{"id":4440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4436,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10304:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":4439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10313:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":4438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:25","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10313:8:25","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10304:17:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4441,"nodeType":"ExpressionStatement","src":"10304:17:25"},{"expression":{"id":4444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4442,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"10339:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":4443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10349:2:25","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10339:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4445,"nodeType":"ExpressionStatement","src":"10339:12:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4448,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10383:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":4451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10392:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":4450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10398:2:25","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10392:8:25","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10383:17:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4464,"nodeType":"IfStatement","src":"10379:103:25","trueBody":{"id":4463,"nodeType":"Block","src":"10402:80:25","statements":[{"expression":{"id":4457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4453,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10420:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":4456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":4455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10435:2:25","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10429:8:25","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10420:17:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4458,"nodeType":"ExpressionStatement","src":"10420:17:25"},{"expression":{"id":4461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4459,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"10455:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":4460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10465:2:25","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10455:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4462,"nodeType":"ExpressionStatement","src":"10455:12:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4465,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10499:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":4468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10508:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10514:2:25","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10508:8:25","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10499:17:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4481,"nodeType":"IfStatement","src":"10495:103:25","trueBody":{"id":4480,"nodeType":"Block","src":"10518:80:25","statements":[{"expression":{"id":4474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4470,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10536:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":4473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10545:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10551:2:25","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10545:8:25","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10536:17:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4475,"nodeType":"ExpressionStatement","src":"10536:17:25"},{"expression":{"id":4478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4476,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"10571:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":4477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:2:25","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10571:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4479,"nodeType":"ExpressionStatement","src":"10571:12:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4482,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10615:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":4485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10624:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":4484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10630:1:25","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10624:7:25","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10615:16:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4498,"nodeType":"IfStatement","src":"10611:100:25","trueBody":{"id":4497,"nodeType":"Block","src":"10633:78:25","statements":[{"expression":{"id":4491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4487,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10651:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":4490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10660:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":4489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10666:1:25","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10660:7:25","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10651:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4492,"nodeType":"ExpressionStatement","src":"10651:16:25"},{"expression":{"id":4495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4493,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"10685:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":4494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10695:1:25","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10685:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4496,"nodeType":"ExpressionStatement","src":"10685:11:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4499,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10728:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":4502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10737:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":4501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10743:1:25","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10737:7:25","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10728:16:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4515,"nodeType":"IfStatement","src":"10724:100:25","trueBody":{"id":4514,"nodeType":"Block","src":"10746:78:25","statements":[{"expression":{"id":4508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4504,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10764:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":4507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":4506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10779:1:25","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10773:7:25","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10764:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4509,"nodeType":"ExpressionStatement","src":"10764:16:25"},{"expression":{"id":4512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4510,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"10798:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":4511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10808:1:25","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10798:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4513,"nodeType":"ExpressionStatement","src":"10798:11:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4516,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10841:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":4519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10850:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":4518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10856:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10850:7:25","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10841:16:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4532,"nodeType":"IfStatement","src":"10837:100:25","trueBody":{"id":4531,"nodeType":"Block","src":"10859:78:25","statements":[{"expression":{"id":4525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4521,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10877:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":4524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10886:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":4523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10892:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10886:7:25","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10877:16:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4526,"nodeType":"ExpressionStatement","src":"10877:16:25"},{"expression":{"id":4529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4527,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"10911:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":4528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10921:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10911:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4530,"nodeType":"ExpressionStatement","src":"10911:11:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4533,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4422,"src":"10954:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":4536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10963:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":4535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10969:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10963:7:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10954:16:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4543,"nodeType":"IfStatement","src":"10950:66:25","trueBody":{"id":4542,"nodeType":"Block","src":"10972:44:25","statements":[{"expression":{"id":4540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4538,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"10990:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11000:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10990:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4541,"nodeType":"ExpressionStatement","src":"10990:11:25"}]}}]},{"expression":{"id":4545,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"11042:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4426,"id":4546,"nodeType":"Return","src":"11035:13:25"}]},"documentation":{"id":4420,"nodeType":"StructuredDocumentation","src":"10020:114:25","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":4548,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10148:5:25","nodeType":"FunctionDefinition","parameters":{"id":4423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4422,"mutability":"mutable","name":"value","nameLocation":"10162:5:25","nodeType":"VariableDeclaration","scope":4548,"src":"10154:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4421,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:15:25"},"returnParameters":{"id":4426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4425,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4548,"src":"10192:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4424,"name":"uint256","nodeType":"ElementaryTypeName","src":"10192:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10191:9:25"},"scope":4711,"src":"10139:916:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4583,"nodeType":"Block","src":"11290:167:25","statements":[{"id":4582,"nodeType":"UncheckedBlock","src":"11300:151:25","statements":[{"assignments":[4560],"declarations":[{"constant":false,"id":4560,"mutability":"mutable","name":"result","nameLocation":"11332:6:25","nodeType":"VariableDeclaration","scope":4582,"src":"11324:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4559,"name":"uint256","nodeType":"ElementaryTypeName","src":"11324:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4564,"initialValue":{"arguments":[{"id":4562,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"11347:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4561,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[4548,4584],"referencedDeclaration":4548,"src":"11341:5:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11341:12:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11324:29:25"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4565,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4560,"src":"11374:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"},"id":4569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4566,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4554,"src":"11384:8:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4567,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"11396:8:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$3852_$","typeString":"type(enum Math.Rounding)"}},"id":4568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11405:2:25","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":3850,"src":"11396:11:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"src":"11384:23:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11411:2:25","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":4571,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4560,"src":"11417:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4573,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4551,"src":"11426:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:20:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11384:47:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":4577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11438:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":4578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11384:55:25","trueExpression":{"hexValue":"31","id":4576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11434:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":4579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11383:57:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11374:66:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4558,"id":4581,"nodeType":"Return","src":"11367:73:25"}]}]},"documentation":{"id":4549,"nodeType":"StructuredDocumentation","src":"11061:143:25","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":4584,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"11218:5:25","nodeType":"FunctionDefinition","parameters":{"id":4555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4551,"mutability":"mutable","name":"value","nameLocation":"11232:5:25","nodeType":"VariableDeclaration","scope":4584,"src":"11224:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4550,"name":"uint256","nodeType":"ElementaryTypeName","src":"11224:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4554,"mutability":"mutable","name":"rounding","nameLocation":"11248:8:25","nodeType":"VariableDeclaration","scope":4584,"src":"11239:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"},"typeName":{"id":4553,"nodeType":"UserDefinedTypeName","pathNode":{"id":4552,"name":"Rounding","nameLocations":["11239:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":3852,"src":"11239:8:25"},"referencedDeclaration":3852,"src":"11239:8:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11223:34:25"},"returnParameters":{"id":4558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4584,"src":"11281:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4556,"name":"uint256","nodeType":"ElementaryTypeName","src":"11281:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11280:9:25"},"scope":4711,"src":"11209:248:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4670,"nodeType":"Block","src":"11771:600:25","statements":[{"assignments":[4593],"declarations":[{"constant":false,"id":4593,"mutability":"mutable","name":"result","nameLocation":"11789:6:25","nodeType":"VariableDeclaration","scope":4670,"src":"11781:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4592,"name":"uint256","nodeType":"ElementaryTypeName","src":"11781:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4595,"initialValue":{"hexValue":"30","id":4594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11798:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11781:18:25"},{"id":4667,"nodeType":"UncheckedBlock","src":"11809:533:25","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4596,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"11837:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":4597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11846:3:25","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11837:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11852:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11837:16:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4610,"nodeType":"IfStatement","src":"11833:98:25","trueBody":{"id":4609,"nodeType":"Block","src":"11855:76:25","statements":[{"expression":{"id":4603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4601,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"11873:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":4602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11883:3:25","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11873:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4604,"nodeType":"ExpressionStatement","src":"11873:13:25"},{"expression":{"id":4607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4605,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"11904:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":4606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11914:2:25","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11904:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4608,"nodeType":"ExpressionStatement","src":"11904:12:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4611,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"11948:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":4612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11957:2:25","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11948:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11962:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11948:15:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4625,"nodeType":"IfStatement","src":"11944:95:25","trueBody":{"id":4624,"nodeType":"Block","src":"11965:74:25","statements":[{"expression":{"id":4618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4616,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"11983:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":4617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11993:2:25","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11983:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4619,"nodeType":"ExpressionStatement","src":"11983:12:25"},{"expression":{"id":4622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4620,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"12013:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":4621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12023:1:25","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12013:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4623,"nodeType":"ExpressionStatement","src":"12013:11:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4626,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"12056:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":4627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12065:2:25","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12056:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12070:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12056:15:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4640,"nodeType":"IfStatement","src":"12052:95:25","trueBody":{"id":4639,"nodeType":"Block","src":"12073:74:25","statements":[{"expression":{"id":4633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4631,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"12091:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":4632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12101:2:25","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12091:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4634,"nodeType":"ExpressionStatement","src":"12091:12:25"},{"expression":{"id":4637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4635,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"12121:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":4636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:1:25","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12121:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4638,"nodeType":"ExpressionStatement","src":"12121:11:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4641,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"12164:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":4642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12173:2:25","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12164:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12178:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12164:15:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4655,"nodeType":"IfStatement","src":"12160:95:25","trueBody":{"id":4654,"nodeType":"Block","src":"12181:74:25","statements":[{"expression":{"id":4648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4646,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"12199:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":4647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12209:2:25","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12199:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4649,"nodeType":"ExpressionStatement","src":"12199:12:25"},{"expression":{"id":4652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4650,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"12229:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":4651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:25","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12229:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4653,"nodeType":"ExpressionStatement","src":"12229:11:25"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4656,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4587,"src":"12272:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":4657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12281:1:25","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12272:10:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12285:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12272:14:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4666,"nodeType":"IfStatement","src":"12268:64:25","trueBody":{"id":4665,"nodeType":"Block","src":"12288:44:25","statements":[{"expression":{"id":4663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4661,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"12306:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12316:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12306:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4664,"nodeType":"ExpressionStatement","src":"12306:11:25"}]}}]},{"expression":{"id":4668,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"12358:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4591,"id":4669,"nodeType":"Return","src":"12351:13:25"}]},"documentation":{"id":4585,"nodeType":"StructuredDocumentation","src":"11463:240:25","text":" @dev Return the log in base 256, rounded down, of a positive value.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":4671,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11717:6:25","nodeType":"FunctionDefinition","parameters":{"id":4588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4587,"mutability":"mutable","name":"value","nameLocation":"11732:5:25","nodeType":"VariableDeclaration","scope":4671,"src":"11724:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4586,"name":"uint256","nodeType":"ElementaryTypeName","src":"11724:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11723:15:25"},"returnParameters":{"id":4591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4671,"src":"11762:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4589,"name":"uint256","nodeType":"ElementaryTypeName","src":"11762:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11761:9:25"},"scope":4711,"src":"11708:663:25","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4709,"nodeType":"Block","src":"12608:174:25","statements":[{"id":4708,"nodeType":"UncheckedBlock","src":"12618:158:25","statements":[{"assignments":[4683],"declarations":[{"constant":false,"id":4683,"mutability":"mutable","name":"result","nameLocation":"12650:6:25","nodeType":"VariableDeclaration","scope":4708,"src":"12642:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4682,"name":"uint256","nodeType":"ElementaryTypeName","src":"12642:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4687,"initialValue":{"arguments":[{"id":4685,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4674,"src":"12666:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4684,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[4671,4710],"referencedDeclaration":4671,"src":"12659:6:25","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12659:13:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12642:30:25"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4688,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4683,"src":"12693:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"},"id":4692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4689,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4677,"src":"12703:8:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":4690,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"12715:8:25","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$3852_$","typeString":"type(enum Math.Rounding)"}},"id":4691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12724:2:25","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":3850,"src":"12715:11:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"src":"12703:23:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12730:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4694,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4683,"src":"12736:6:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":4695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12746:1:25","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12736:11:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12735:13:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:18:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4699,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4674,"src":"12751:5:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:26:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12703:53:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":4703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12763:1:25","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":4704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12703:61:25","trueExpression":{"hexValue":"31","id":4702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12759:1:25","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":4705,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12702:63:25","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12693:72:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4681,"id":4707,"nodeType":"Return","src":"12686:79:25"}]}]},"documentation":{"id":4672,"nodeType":"StructuredDocumentation","src":"12377:144:25","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":4710,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12535:6:25","nodeType":"FunctionDefinition","parameters":{"id":4678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4674,"mutability":"mutable","name":"value","nameLocation":"12550:5:25","nodeType":"VariableDeclaration","scope":4710,"src":"12542:13:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4673,"name":"uint256","nodeType":"ElementaryTypeName","src":"12542:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4677,"mutability":"mutable","name":"rounding","nameLocation":"12566:8:25","nodeType":"VariableDeclaration","scope":4710,"src":"12557:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"},"typeName":{"id":4676,"nodeType":"UserDefinedTypeName","pathNode":{"id":4675,"name":"Rounding","nameLocations":["12557:8:25"],"nodeType":"IdentifierPath","referencedDeclaration":3852,"src":"12557:8:25"},"referencedDeclaration":3852,"src":"12557:8:25","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$3852","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12541:34:25"},"returnParameters":{"id":4681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4710,"src":"12599:7:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4679,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12598:9:25"},"scope":4711,"src":"12526:256:25","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4712,"src":"202:12582:25","usedErrors":[],"usedEvents":[]}],"src":"103:12682:25"},"id":25},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[4816]},"id":4817,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4713,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"109:23:26"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":4714,"nodeType":"StructuredDocumentation","src":"134:80:26","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":4816,"linearizedBaseContracts":[4816],"name":"SignedMath","nameLocation":"223:10:26","nodeType":"ContractDefinition","nodes":[{"body":{"id":4731,"nodeType":"Block","src":"375:37:26","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4724,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4717,"src":"392:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4725,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4719,"src":"396:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"392:5:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4728,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4719,"src":"404:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":4729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"392:13:26","trueExpression":{"id":4727,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4717,"src":"400:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":4723,"id":4730,"nodeType":"Return","src":"385:20:26"}]},"documentation":{"id":4715,"nodeType":"StructuredDocumentation","src":"240:66:26","text":" @dev Returns the largest of two signed numbers."},"id":4732,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"320:3:26","nodeType":"FunctionDefinition","parameters":{"id":4720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4717,"mutability":"mutable","name":"a","nameLocation":"331:1:26","nodeType":"VariableDeclaration","scope":4732,"src":"324:8:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4716,"name":"int256","nodeType":"ElementaryTypeName","src":"324:6:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":4719,"mutability":"mutable","name":"b","nameLocation":"341:1:26","nodeType":"VariableDeclaration","scope":4732,"src":"334:8:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4718,"name":"int256","nodeType":"ElementaryTypeName","src":"334:6:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"323:20:26"},"returnParameters":{"id":4723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4732,"src":"367:6:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4721,"name":"int256","nodeType":"ElementaryTypeName","src":"367:6:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"366:8:26"},"scope":4816,"src":"311:101:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4749,"nodeType":"Block","src":"554:37:26","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4742,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"571:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4743,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4737,"src":"575:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"571:5:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4746,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4737,"src":"583:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":4747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"571:13:26","trueExpression":{"id":4745,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4735,"src":"579:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":4741,"id":4748,"nodeType":"Return","src":"564:20:26"}]},"documentation":{"id":4733,"nodeType":"StructuredDocumentation","src":"418:67:26","text":" @dev Returns the smallest of two signed numbers."},"id":4750,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"499:3:26","nodeType":"FunctionDefinition","parameters":{"id":4738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4735,"mutability":"mutable","name":"a","nameLocation":"510:1:26","nodeType":"VariableDeclaration","scope":4750,"src":"503:8:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4734,"name":"int256","nodeType":"ElementaryTypeName","src":"503:6:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":4737,"mutability":"mutable","name":"b","nameLocation":"520:1:26","nodeType":"VariableDeclaration","scope":4750,"src":"513:8:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4736,"name":"int256","nodeType":"ElementaryTypeName","src":"513:6:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"502:20:26"},"returnParameters":{"id":4741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4740,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4750,"src":"546:6:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4739,"name":"int256","nodeType":"ElementaryTypeName","src":"546:6:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"545:8:26"},"scope":4816,"src":"490:101:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4793,"nodeType":"Block","src":"796:162:26","statements":[{"assignments":[4761],"declarations":[{"constant":false,"id":4761,"mutability":"mutable","name":"x","nameLocation":"865:1:26","nodeType":"VariableDeclaration","scope":4793,"src":"858:8:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4760,"name":"int256","nodeType":"ElementaryTypeName","src":"858:6:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":4774,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4762,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"870:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":4763,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4755,"src":"874:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:5:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4765,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"869:7:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4766,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"881:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":4767,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4755,"src":"885:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"881:5:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4769,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:7:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":4770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:26","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"880:12:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4772,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"879:14:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"869:24:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"858:35:26"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4775,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4761,"src":"910:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4780,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4761,"src":"930:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":4779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"922:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4778,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:26","typeDescriptions":{}}},"id":4781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:10:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":4782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:3:26","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"922:17:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:6:26","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":4776,"name":"int256","nodeType":"ElementaryTypeName","src":"915:6:26","typeDescriptions":{}}},"id":4784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:25:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4785,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"944:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":4786,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4755,"src":"948:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"944:5:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4788,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"943:7:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"915:35:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":4790,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"914:37:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"910:41:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":4759,"id":4792,"nodeType":"Return","src":"903:48:26"}]},"documentation":{"id":4751,"nodeType":"StructuredDocumentation","src":"597:126:26","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":4794,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"737:7:26","nodeType":"FunctionDefinition","parameters":{"id":4756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4753,"mutability":"mutable","name":"a","nameLocation":"752:1:26","nodeType":"VariableDeclaration","scope":4794,"src":"745:8:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4752,"name":"int256","nodeType":"ElementaryTypeName","src":"745:6:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":4755,"mutability":"mutable","name":"b","nameLocation":"762:1:26","nodeType":"VariableDeclaration","scope":4794,"src":"755:8:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4754,"name":"int256","nodeType":"ElementaryTypeName","src":"755:6:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"744:20:26"},"returnParameters":{"id":4759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4794,"src":"788:6:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4757,"name":"int256","nodeType":"ElementaryTypeName","src":"788:6:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"787:8:26"},"scope":4816,"src":"728:230:26","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4814,"nodeType":"Block","src":"1102:158:26","statements":[{"id":4813,"nodeType":"UncheckedBlock","src":"1112:142:26","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":4806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4804,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4797,"src":"1227:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":4805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1227:6:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1240:2:26","subExpression":{"id":4808,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4797,"src":"1241:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":4810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1227:15:26","trueExpression":{"id":4807,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4797,"src":"1236:1:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":4803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4802,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:26","typeDescriptions":{}}},"id":4811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:24:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4801,"id":4812,"nodeType":"Return","src":"1212:31:26"}]}]},"documentation":{"id":4795,"nodeType":"StructuredDocumentation","src":"964:78:26","text":" @dev Returns the absolute unsigned value of a signed value."},"id":4815,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1056:3:26","nodeType":"FunctionDefinition","parameters":{"id":4798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4797,"mutability":"mutable","name":"n","nameLocation":"1067:1:26","nodeType":"VariableDeclaration","scope":4815,"src":"1060:8:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4796,"name":"int256","nodeType":"ElementaryTypeName","src":"1060:6:26","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1059:10:26"},"returnParameters":{"id":4801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4800,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4815,"src":"1093:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4799,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:9:26"},"scope":4816,"src":"1047:213:26","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4817,"src":"215:1047:26","usedErrors":[],"usedEvents":[]}],"src":"109:1154:26"},"id":26},"contracts/Swap.sol":{"ast":{"absolutePath":"contracts/Swap.sol","exportedSymbols":{"Context":[2511],"ECDSA":[3506],"EIP712":[3710],"IAdapter":[6490],"IERC1271":[209],"IERC165":[3845],"IERC2981":[228],"IERC5267":[253],"ISwap":[6682],"Math":[4711],"Ownable":[112],"Ownable2Step":[195],"Party":[6436],"ShortString":[2590],"ShortStrings":[2801],"SignatureChecker":[3809],"SignedMath":[4816],"StorageSlot":[2911],"Strings":[3140],"Swap":[6095]},"id":6096,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4818,"literals":["solidity","0.8",".23"],"nodeType":"PragmaDirective","src":"32:23:27"},{"absolutePath":"@openzeppelin/contracts/access/Ownable2Step.sol","file":"@openzeppelin/contracts/access/Ownable2Step.sol","id":4819,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6096,"sourceUnit":196,"src":"57:57:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","file":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","id":4820,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6096,"sourceUnit":3711,"src":"115:63:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol","file":"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol","id":4821,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6096,"sourceUnit":3810,"src":"179:73:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC2981.sol","file":"@openzeppelin/contracts/interfaces/IERC2981.sol","id":4822,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6096,"sourceUnit":229,"src":"253:57:27","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/interfaces/ISwap.sol","file":"./interfaces/ISwap.sol","id":4823,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6096,"sourceUnit":6683,"src":"311:32:27","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4825,"name":"ISwap","nameLocations":["442:5:27"],"nodeType":"IdentifierPath","referencedDeclaration":6682,"src":"442:5:27"},"id":4826,"nodeType":"InheritanceSpecifier","src":"442:5:27"},{"baseName":{"id":4827,"name":"Ownable2Step","nameLocations":["449:12:27"],"nodeType":"IdentifierPath","referencedDeclaration":195,"src":"449:12:27"},"id":4828,"nodeType":"InheritanceSpecifier","src":"449:12:27"},{"baseName":{"id":4829,"name":"EIP712","nameLocations":["463:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":3710,"src":"463:6:27"},"id":4830,"nodeType":"InheritanceSpecifier","src":"463:6:27"}],"canonicalName":"Swap","contractDependencies":[],"contractKind":"contract","documentation":{"id":4824,"nodeType":"StructuredDocumentation","src":"345:79:27","text":" @title AirSwap: Atomic Token Swap\n @notice https://www.airswap.io/"},"fullyImplemented":true,"id":6095,"linearizedBaseContracts":[6095,3710,253,195,112,2511,6682],"name":"Swap","nameLocation":"434:4:27","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":4839,"mutability":"constant","name":"ORDER_TYPEHASH","nameLocation":"499:14:27","nodeType":"VariableDeclaration","scope":6095,"src":"474:319:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"474:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"hexValue":"4f726465722875696e74323536206e6f6e63652c75696e74323536206578706972792c75696e743235362070726f746f636f6c4665652c5061727479207369676e65722c50617274792073656e6465722c6164647265737320616666696c6961746557616c6c65742c75696e7432353620616666696c69617465416d6f756e7429","id":4835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"563:131:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_2acab4a02365f399065e9ce76efb2e022c133c96451f5e343829a0e5cd04bfa7","typeString":"literal_string \"Order(uint256 nonce,uint256 expiry,uint256 protocolFee,Party signer,Party sender,address affiliateWallet,uint256 affiliateAmount)\""},"value":"Order(uint256 nonce,uint256 expiry,uint256 protocolFee,Party signer,Party sender,address affiliateWallet,uint256 affiliateAmount)"},{"hexValue":"506172747928616464726573732077616c6c65742c6164647265737320746f6b656e2c627974657334206b696e642c75696e743235362069642c75696e7432353620616d6f756e7429","id":4836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"704:75:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_224ed05dccb4f5c1e21e6e85fb29dd6c83074e33458fdfefb184d03fe8742f4f","typeString":"literal_string \"Party(address wallet,address token,bytes4 kind,uint256 id,uint256 amount)\""},"value":"Party(address wallet,address token,bytes4 kind,uint256 id,uint256 amount)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2acab4a02365f399065e9ce76efb2e022c133c96451f5e343829a0e5cd04bfa7","typeString":"literal_string \"Order(uint256 nonce,uint256 expiry,uint256 protocolFee,Party signer,Party sender,address affiliateWallet,uint256 affiliateAmount)\""},{"typeIdentifier":"t_stringliteral_224ed05dccb4f5c1e21e6e85fb29dd6c83074e33458fdfefb184d03fe8742f4f","typeString":"literal_string \"Party(address wallet,address token,bytes4 kind,uint256 id,uint256 amount)\""}],"expression":{"id":4833,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"537:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"541:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"537:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"537:250:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4832,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"520:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"520:273:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":4844,"mutability":"constant","name":"PARTY_TYPEHASH","nameLocation":"823:14:27","nodeType":"VariableDeclaration","scope":6095,"src":"798:144:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4840,"name":"bytes32","nodeType":"ElementaryTypeName","src":"798:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"506172747928616464726573732077616c6c65742c6164647265737320746f6b656e2c627974657334206b696e642c75696e743235362069642c75696e7432353620616d6f756e7429","id":4842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"861:75:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_224ed05dccb4f5c1e21e6e85fb29dd6c83074e33458fdfefb184d03fe8742f4f","typeString":"literal_string \"Party(address wallet,address token,bytes4 kind,uint256 id,uint256 amount)\""},"value":"Party(address wallet,address token,bytes4 kind,uint256 id,uint256 amount)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_224ed05dccb4f5c1e21e6e85fb29dd6c83074e33458fdfefb184d03fe8742f4f","typeString":"literal_string \"Party(address wallet,address token,bytes4 kind,uint256 id,uint256 amount)\""}],"id":4841,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"844:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"844:98:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"functionSelector":"796f077b","id":4847,"mutability":"constant","name":"DOMAIN_NAME","nameLocation":"1028:11:27","nodeType":"VariableDeclaration","scope":6095,"src":"1005:43:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4845,"name":"string","nodeType":"ElementaryTypeName","src":"1005:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"53574150","id":4846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1042:6:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_497a7733c30c446bed91d579fce5ede8c3e0fbcdbe90a491d0a07e91d5b88b71","typeString":"literal_string \"SWAP\""},"value":"SWAP"},"visibility":"public"},{"constant":true,"functionSelector":"acb8cc49","id":4850,"mutability":"constant","name":"DOMAIN_VERSION","nameLocation":"1075:14:27","nodeType":"VariableDeclaration","scope":6095,"src":"1052:45:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4848,"name":"string","nodeType":"ElementaryTypeName","src":"1052:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"342e32","id":4849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1092:5:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_26540e17ea205b06d858abd46782ac7c673d32b3fbfed4f1a4e1a5f8f2667fb2","typeString":"literal_string \"4.2\""},"value":"4.2"},"visibility":"public"},{"constant":false,"functionSelector":"3644e515","id":4852,"mutability":"immutable","name":"DOMAIN_SEPARATOR","nameLocation":"1126:16:27","nodeType":"VariableDeclaration","scope":6095,"src":"1101:41:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1101:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"9e93ad8e","id":4855,"mutability":"constant","name":"FEE_DIVISOR","nameLocation":"1171:11:27","nodeType":"VariableDeclaration","scope":6095,"src":"1147:43:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4853,"name":"uint256","nodeType":"ElementaryTypeName","src":"1147:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030","id":4854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1185:5:27","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10000"},"visibility":"public"},{"constant":true,"id":4858,"mutability":"constant","name":"MAX_ERROR_COUNT","nameLocation":"1219:15:27","nodeType":"VariableDeclaration","scope":6095,"src":"1194:45:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4856,"name":"uint256","nodeType":"ElementaryTypeName","src":"1194:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3135","id":4857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1237:2:27","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"visibility":"private"},{"constant":false,"documentation":{"id":4859,"nodeType":"StructuredDocumentation","src":"1244:306:27","text":" @notice Double mapping of signers to nonce groups to nonce states\n @dev The nonce group is computed as nonce / 256, so each group of 256 sequential nonces uses the same key\n @dev The nonce states are encoded as 256 bits, for each nonce in the group 0 means available and 1 means used"},"id":4865,"mutability":"mutable","name":"_nonceGroups","nameLocation":"1609:12:27","nodeType":"VariableDeclaration","scope":6095,"src":"1553:68:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":4864,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4860,"name":"address","nodeType":"ElementaryTypeName","src":"1561:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1553:47:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4863,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4861,"name":"uint256","nodeType":"ElementaryTypeName","src":"1580:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1572:27:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4862,"name":"uint256","nodeType":"ElementaryTypeName","src":"1591:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"baseFunctions":[6674],"constant":false,"functionSelector":"b9181611","id":4870,"mutability":"mutable","name":"authorized","nameLocation":"1717:10:27","nodeType":"VariableDeclaration","overrides":{"id":4869,"nodeType":"OverrideSpecifier","overrides":[],"src":"1708:8:27"},"scope":6095,"src":"1673:54:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":4868,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4866,"name":"address","nodeType":"ElementaryTypeName","src":"1681:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1673:27:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4867,"name":"address","nodeType":"ElementaryTypeName","src":"1692:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"baseFunctions":[6681],"constant":false,"functionSelector":"b0dd4943","id":4874,"mutability":"mutable","name":"signatoryMinimumNonce","nameLocation":"1826:21:27","nodeType":"VariableDeclaration","scope":6095,"src":"1791:56:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":4873,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4871,"name":"address","nodeType":"ElementaryTypeName","src":"1799:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1791:27:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4872,"name":"uint256","nodeType":"ElementaryTypeName","src":"1810:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"b0e21e8a","id":4876,"mutability":"mutable","name":"protocolFee","nameLocation":"1867:11:27","nodeType":"VariableDeclaration","scope":6095,"src":"1852:26:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4875,"name":"uint256","nodeType":"ElementaryTypeName","src":"1852:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"cbf7c6c3","id":4878,"mutability":"mutable","name":"protocolFeeWallet","nameLocation":"1897:17:27","nodeType":"VariableDeclaration","scope":6095,"src":"1882:32:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4877,"name":"address","nodeType":"ElementaryTypeName","src":"1882:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"06a6ea74","id":4880,"mutability":"immutable","name":"requiredSenderKind","nameLocation":"1942:18:27","nodeType":"VariableDeclaration","scope":6095,"src":"1918:42:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4879,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1918:6:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"baseFunctions":[6667],"constant":false,"functionSelector":"6e038752","id":4885,"mutability":"mutable","name":"adapters","nameLocation":"2053:8:27","nodeType":"VariableDeclaration","scope":6095,"src":"2018:43:27","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_contract$_IAdapter_$6490_$","typeString":"mapping(bytes4 => contract IAdapter)"},"typeName":{"id":4884,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4881,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2026:6:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"2018:27:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_contract$_IAdapter_$6490_$","typeString":"mapping(bytes4 => contract IAdapter)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4883,"nodeType":"UserDefinedTypeName","pathNode":{"id":4882,"name":"IAdapter","nameLocations":["2036:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":6490,"src":"2036:8:27"},"referencedDeclaration":6490,"src":"2036:8:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}}},"visibility":"public"},{"body":{"id":4974,"nodeType":"Block","src":"2534:553:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4903,"name":"_protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4894,"src":"2544:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":4904,"name":"FEE_DIVISOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4855,"src":"2560:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2544:27:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4909,"nodeType":"IfStatement","src":"2540:52:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4906,"name":"FeeInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6574,"src":"2580:10:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2580:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4908,"nodeType":"RevertStatement","src":"2573:19:27"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4910,"name":"_protocolFeeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4896,"src":"2602:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":4913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2632:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2624:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4911,"name":"address","nodeType":"ElementaryTypeName","src":"2624:7:27","typeDescriptions":{}}},"id":4914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2624:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2602:32:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4919,"nodeType":"IfStatement","src":"2598:63:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4916,"name":"FeeWalletInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6576,"src":"2643:16:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2643:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4918,"nodeType":"RevertStatement","src":"2636:25:27"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4920,"name":"_adapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4890,"src":"2671:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IAdapter_$6490_$dyn_memory_ptr","typeString":"contract IAdapter[] memory"}},"id":4921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2681:6:27","memberName":"length","nodeType":"MemberAccess","src":"2671:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2691:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2671:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4927,"nodeType":"IfStatement","src":"2667:51:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4924,"name":"AdaptersInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6572,"src":"2701:15:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":4925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2701:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4926,"nodeType":"RevertStatement","src":"2694:24:27"}},{"expression":{"id":4931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4928,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4852,"src":"2725:16:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":4929,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3625,"src":"2744:18:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":4930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2744:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2725:39:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4932,"nodeType":"ExpressionStatement","src":"2725:39:27"},{"assignments":[4934],"declarations":[{"constant":false,"id":4934,"mutability":"mutable","name":"adaptersLength","nameLocation":"2779:14:27","nodeType":"VariableDeclaration","scope":4974,"src":"2771:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4933,"name":"uint256","nodeType":"ElementaryTypeName","src":"2771:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4937,"initialValue":{"expression":{"id":4935,"name":"_adapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4890,"src":"2796:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IAdapter_$6490_$dyn_memory_ptr","typeString":"contract IAdapter[] memory"}},"id":4936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:6:27","memberName":"length","nodeType":"MemberAccess","src":"2796:16:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2771:41:27"},{"body":{"id":4960,"nodeType":"Block","src":"2856:105:27","statements":[{"expression":{"id":4954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4944,"name":"adapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4885,"src":"2864:8:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_contract$_IAdapter_$6490_$","typeString":"mapping(bytes4 => contract IAdapter)"}},"id":4950,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":4945,"name":"_adapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4890,"src":"2873:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IAdapter_$6490_$dyn_memory_ptr","typeString":"contract IAdapter[] memory"}},"id":4947,"indexExpression":{"id":4946,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4939,"src":"2883:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2873:12:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"id":4948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2886:11:27","memberName":"interfaceId","nodeType":"MemberAccess","referencedDeclaration":6448,"src":"2873:24:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes4_$","typeString":"function () view external returns (bytes4)"}},"id":4949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2873:26:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2864:36:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":4951,"name":"_adapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4890,"src":"2903:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IAdapter_$6490_$dyn_memory_ptr","typeString":"contract IAdapter[] memory"}},"id":4953,"indexExpression":{"id":4952,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4939,"src":"2913:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2903:12:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"src":"2864:51:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"id":4955,"nodeType":"ExpressionStatement","src":"2864:51:27"},{"id":4959,"nodeType":"UncheckedBlock","src":"2923:32:27","statements":[{"expression":{"id":4957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2943:3:27","subExpression":{"id":4956,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4939,"src":"2945:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4958,"nodeType":"ExpressionStatement","src":"2943:3:27"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4941,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4939,"src":"2834:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4942,"name":"adaptersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4934,"src":"2838:14:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2834:18:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4961,"initializationExpression":{"assignments":[4939],"declarations":[{"constant":false,"id":4939,"mutability":"mutable","name":"i","nameLocation":"2831:1:27","nodeType":"VariableDeclaration","scope":4961,"src":"2823:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4938,"name":"uint256","nodeType":"ElementaryTypeName","src":"2823:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4940,"nodeType":"VariableDeclarationStatement","src":"2823:9:27"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"2818:143:27"},{"expression":{"id":4964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4962,"name":"requiredSenderKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"2966:18:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4963,"name":"_requiredSenderKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4892,"src":"2987:19:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2966:40:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":4965,"nodeType":"ExpressionStatement","src":"2966:40:27"},{"expression":{"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4966,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4876,"src":"3012:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4967,"name":"_protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4894,"src":"3026:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3012:26:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4969,"nodeType":"ExpressionStatement","src":"3012:26:27"},{"expression":{"id":4972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4970,"name":"protocolFeeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4878,"src":"3044:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4971,"name":"_protocolFeeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4896,"src":"3064:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3044:38:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4973,"nodeType":"ExpressionStatement","src":"3044:38:27"}]},"documentation":{"id":4886,"nodeType":"StructuredDocumentation","src":"2066:290:27","text":" @notice Swap constructor\n @dev Sets domain and version for EIP712 signatures\n @param _adapters IAdapter[] array of token adapters\n @param _protocolFee uin256 protocol fee to be assessed on swaps\n @param _protocolFeeWallet address destination for protocol fees"},"id":4975,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4899,"name":"DOMAIN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4847,"src":"2505:11:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4900,"name":"DOMAIN_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"2518:14:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":4901,"kind":"baseConstructorSpecifier","modifierName":{"id":4898,"name":"EIP712","nameLocations":["2498:6:27"],"nodeType":"IdentifierPath","referencedDeclaration":3710,"src":"2498:6:27"},"nodeType":"ModifierInvocation","src":"2498:35:27"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4890,"mutability":"mutable","name":"_adapters","nameLocation":"2394:9:27","nodeType":"VariableDeclaration","scope":4975,"src":"2376:27:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IAdapter_$6490_$dyn_memory_ptr","typeString":"contract IAdapter[]"},"typeName":{"baseType":{"id":4888,"nodeType":"UserDefinedTypeName","pathNode":{"id":4887,"name":"IAdapter","nameLocations":["2376:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":6490,"src":"2376:8:27"},"referencedDeclaration":6490,"src":"2376:8:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"id":4889,"nodeType":"ArrayTypeName","src":"2376:10:27","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_IAdapter_$6490_$dyn_storage_ptr","typeString":"contract IAdapter[]"}},"visibility":"internal"},{"constant":false,"id":4892,"mutability":"mutable","name":"_requiredSenderKind","nameLocation":"2416:19:27","nodeType":"VariableDeclaration","scope":4975,"src":"2409:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4891,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2409:6:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":4894,"mutability":"mutable","name":"_protocolFee","nameLocation":"2449:12:27","nodeType":"VariableDeclaration","scope":4975,"src":"2441:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4893,"name":"uint256","nodeType":"ElementaryTypeName","src":"2441:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4896,"mutability":"mutable","name":"_protocolFeeWallet","nameLocation":"2475:18:27","nodeType":"VariableDeclaration","scope":4975,"src":"2467:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4895,"name":"address","nodeType":"ElementaryTypeName","src":"2467:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2370:127:27"},"returnParameters":{"id":4902,"nodeType":"ParameterList","parameters":[],"src":"2534:0:27"},"scope":6095,"src":"2359:728:27","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[6620],"body":{"id":5199,"nodeType":"Block","src":"3397:2203:27","statements":[{"expression":{"arguments":[{"id":4987,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3450:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}],"id":4986,"name":"_check","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5985,"src":"3443:6:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Order_$6514_calldata_ptr_$returns$__$","typeString":"function (struct ISwap.Order calldata)"}},"id":4988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3443:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4989,"nodeType":"ExpressionStatement","src":"3443:13:27"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4990,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3519:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":4991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3525:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"3519:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":4992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3532:6:27","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"3519:19:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3550:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3542:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4993,"name":"address","nodeType":"ElementaryTypeName","src":"3542:7:27","typeDescriptions":{}}},"id":4996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3542:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3519:33:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4998,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3556:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":4999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3562:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"3556:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3569:6:27","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"3556:19:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":5001,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3579:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3583:6:27","memberName":"sender","nodeType":"MemberAccess","src":"3579:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3556:33:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3519:70:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5008,"nodeType":"IfStatement","src":"3515:104:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5005,"name":"SenderInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6586,"src":"3604:13:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3604:15:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5007,"nodeType":"RevertStatement","src":"3597:22:27"}},{"expression":{"arguments":[{"expression":{"id":5010,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3681:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3685:6:27","memberName":"sender","nodeType":"MemberAccess","src":"3681:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5012,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3699:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3705:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"3699:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3712:6:27","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"3699:19:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5015,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3726:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3732:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"3726:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3739:6:27","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"3726:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5018,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3753:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3759:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"3753:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3766:2:27","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"3753:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5021,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3776:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3782:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"3776:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3789:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"3776:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5024,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3802:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3808:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"3802:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3815:4:27","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":6431,"src":"3802:17:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":5009,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"3664:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$_t_bytes4_$returns$__$","typeString":"function (address,address,uint256,uint256,address,bytes4)"}},"id":5027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3664:161:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5028,"nodeType":"ExpressionStatement","src":"3664:161:27"},{"expression":{"arguments":[{"expression":{"expression":{"id":5030,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3890:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3896:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"3890:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3903:6:27","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"3890:19:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5033,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4978,"src":"3917:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5034,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3934:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3940:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"3934:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3947:6:27","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"3934:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5037,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3961:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3967:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"3961:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3974:2:27","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"3961:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5040,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"3984:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3990:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"3984:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3997:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"3984:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5043,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4010:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4016:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"4010:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4023:4:27","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":6431,"src":"4010:17:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":5029,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"3873:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$_t_bytes4_$returns$__$","typeString":"function (address,address,uint256,uint256,address,bytes4)"}},"id":5046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3873:160:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5047,"nodeType":"ExpressionStatement","src":"3873:160:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5048,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4098:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4104:15:27","memberName":"affiliateWallet","nodeType":"MemberAccess","referencedDeclaration":6505,"src":"4098:21:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4131:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4123:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5050,"name":"address","nodeType":"ElementaryTypeName","src":"4123:7:27","typeDescriptions":{}}},"id":5053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4123:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4098:35:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5074,"nodeType":"IfStatement","src":"4094:235:27","trueBody":{"id":5073,"nodeType":"Block","src":"4135:194:27","statements":[{"expression":{"arguments":[{"expression":{"id":5056,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4162:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4166:6:27","memberName":"sender","nodeType":"MemberAccess","src":"4162:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5058,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4182:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4188:15:27","memberName":"affiliateWallet","nodeType":"MemberAccess","referencedDeclaration":6505,"src":"4182:21:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5060,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4213:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4219:15:27","memberName":"affiliateAmount","nodeType":"MemberAccess","referencedDeclaration":6507,"src":"4213:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5062,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4244:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4250:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"4244:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4257:2:27","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"4244:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5065,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4269:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4275:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"4269:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4282:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"4269:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5068,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4297:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4303:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"4297:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4310:4:27","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":6431,"src":"4297:17:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":5055,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"4143:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$_t_bytes4_$returns$__$","typeString":"function (address,address,uint256,uint256,address,bytes4)"}},"id":5071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4143:179:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5072,"nodeType":"ExpressionStatement","src":"4143:179:27"}]}},{"assignments":[5076],"declarations":[{"constant":false,"id":5076,"mutability":"mutable","name":"protocolFeeAmount","nameLocation":"4384:17:27","nodeType":"VariableDeclaration","scope":5199,"src":"4376:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5075,"name":"uint256","nodeType":"ElementaryTypeName","src":"4376:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5085,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5077,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4405:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4411:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"4405:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4418:6:27","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"4405:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5080,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4876,"src":"4427:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4405:33:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5082,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4404:35:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5083,"name":"FEE_DIVISOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4855,"src":"4448:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4404:55:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4376:83:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5086,"name":"protocolFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5076,"src":"4469:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4489:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4469:21:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5106,"nodeType":"IfStatement","src":"4465:213:27","trueBody":{"id":5105,"nodeType":"Block","src":"4492:186:27","statements":[{"expression":{"arguments":[{"expression":{"id":5090,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4519:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4523:6:27","memberName":"sender","nodeType":"MemberAccess","src":"4519:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5092,"name":"protocolFeeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4878,"src":"4539:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5093,"name":"protocolFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5076,"src":"4566:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5094,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4593:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4599:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"4593:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4606:2:27","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"4593:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5097,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4618:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4624:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"4618:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4631:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"4618:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5100,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4646:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4652:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"4646:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4659:4:27","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":6431,"src":"4646:17:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":5089,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"4500:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$_t_bytes4_$returns$__$","typeString":"function (address,address,uint256,uint256,address,bytes4)"}},"id":5103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4500:171:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5104,"nodeType":"ExpressionStatement","src":"4500:171:27"}]}},{"condition":{"arguments":[{"expression":{"expression":{"id":5108,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4770:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4776:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"4770:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4783:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"4770:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5107,"name":"supportsRoyalties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5890,"src":"4752:17:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":5111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4752:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5166,"nodeType":"IfStatement","src":"4748:552:27","trueBody":{"id":5165,"nodeType":"Block","src":"4791:509:27","statements":[{"assignments":[5113],"declarations":[{"constant":false,"id":5113,"mutability":"mutable","name":"royaltyRecipient","nameLocation":"4807:16:27","nodeType":"VariableDeclaration","scope":5165,"src":"4799:24:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5112,"name":"address","nodeType":"ElementaryTypeName","src":"4799:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5114,"nodeType":"VariableDeclarationStatement","src":"4799:24:27"},{"assignments":[5116],"declarations":[{"constant":false,"id":5116,"mutability":"mutable","name":"royaltyAmount","nameLocation":"4839:13:27","nodeType":"VariableDeclaration","scope":5165,"src":"4831:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5115,"name":"uint256","nodeType":"ElementaryTypeName","src":"4831:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5117,"nodeType":"VariableDeclarationStatement","src":"4831:21:27"},{"expression":{"id":5134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":5118,"name":"royaltyRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5113,"src":"4861:16:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5119,"name":"royaltyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"4879:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5120,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4860:33:27","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":5127,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4946:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4952:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"4946:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4959:2:27","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"4946:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5130,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4963:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4969:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"4963:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4976:6:27","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"4963:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":5122,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"4905:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4911:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"4905:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4918:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"4905:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5121,"name":"IERC2981","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"4896:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC2981_$228_$","typeString":"type(contract IERC2981)"}},"id":5125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4896:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC2981_$228","typeString":"contract IERC2981"}},"id":5126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4934:11:27","memberName":"royaltyInfo","nodeType":"MemberAccess","referencedDeclaration":227,"src":"4896:49:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_address_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (address,uint256)"}},"id":5133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4896:87:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"src":"4860:123:27","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5135,"nodeType":"ExpressionStatement","src":"4860:123:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5136,"name":"royaltyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"4995:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5011:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4995:17:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5164,"nodeType":"IfStatement","src":"4991:303:27","trueBody":{"id":5163,"nodeType":"Block","src":"5014:280:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5139,"name":"royaltyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"5028:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":5140,"name":"maxRoyalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4980,"src":"5044:10:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5028:26:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5146,"nodeType":"IfStatement","src":"5024:71:27","trueBody":{"errorCall":{"arguments":[{"id":5143,"name":"royaltyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"5081:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5142,"name":"RoyaltyExceedsMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6598,"src":"5063:17:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5063:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5145,"nodeType":"RevertStatement","src":"5056:39:27"}},{"expression":{"arguments":[{"expression":{"id":5148,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5126:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5130:6:27","memberName":"sender","nodeType":"MemberAccess","src":"5126:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5150,"name":"royaltyRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5113,"src":"5148:16:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5151,"name":"royaltyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"5176:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5152,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5201:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5207:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"5201:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5214:2:27","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"5201:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5155,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5228:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5234:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"5228:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5241:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"5228:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5158,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5258:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5264:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"5258:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5271:4:27","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":6431,"src":"5258:17:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":5147,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6094,"src":"5105:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$_t_bytes4_$returns$__$","typeString":"function (address,address,uint256,uint256,address,bytes4)"}},"id":5161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5105:180:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5162,"nodeType":"ExpressionStatement","src":"5105:180:27"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":5168,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5323:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5329:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":6495,"src":"5323:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5170,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5342:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"5342:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5355:6:27","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"5342:19:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5173,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5369:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5375:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"5369:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5382:6:27","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"5369:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5176,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5396:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5402:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"5396:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5409:2:27","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"5396:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5179,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5419:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5425:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"5419:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5432:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"5419:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5182,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5445:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5449:6:27","memberName":"sender","nodeType":"MemberAccess","src":"5445:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5184,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5463:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5469:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"5463:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5476:6:27","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"5463:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5187,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5490:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5496:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"5490:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5503:2:27","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"5490:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5190,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5513:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5519:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"5513:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5526:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"5513:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5193,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5539:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5545:15:27","memberName":"affiliateWallet","nodeType":"MemberAccess","referencedDeclaration":6505,"src":"5539:21:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5195,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4983,"src":"5568:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5574:15:27","memberName":"affiliateAmount","nodeType":"MemberAccess","referencedDeclaration":6507,"src":"5568:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5167,"name":"Swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6538,"src":"5311:4:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256,address,address,uint256,uint256,address,address,uint256)"}},"id":5197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5311:284:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5198,"nodeType":"EmitStatement","src":"5306:289:27"}]},"documentation":{"id":4976,"nodeType":"StructuredDocumentation","src":"3091:203:27","text":" @notice Atomic Token Swap\n @param recipient address Wallet to receive sender proceeds\n @param maxRoyalty uint256 Max to avoid unexpected royalties\n @param order Order to settle"},"functionSelector":"48542105","id":5200,"implemented":true,"kind":"function","modifiers":[],"name":"swap","nameLocation":"3306:4:27","nodeType":"FunctionDefinition","parameters":{"id":4984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4978,"mutability":"mutable","name":"recipient","nameLocation":"3324:9:27","nodeType":"VariableDeclaration","scope":5200,"src":"3316:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4977,"name":"address","nodeType":"ElementaryTypeName","src":"3316:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4980,"mutability":"mutable","name":"maxRoyalty","nameLocation":"3347:10:27","nodeType":"VariableDeclaration","scope":5200,"src":"3339:18:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4979,"name":"uint256","nodeType":"ElementaryTypeName","src":"3339:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4983,"mutability":"mutable","name":"order","nameLocation":"3378:5:27","nodeType":"VariableDeclaration","scope":5200,"src":"3363:20:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order"},"typeName":{"id":4982,"nodeType":"UserDefinedTypeName","pathNode":{"id":4981,"name":"Order","nameLocations":["3363:5:27"],"nodeType":"IdentifierPath","referencedDeclaration":6514,"src":"3363:5:27"},"referencedDeclaration":6514,"src":"3363:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_storage_ptr","typeString":"struct ISwap.Order"}},"visibility":"internal"}],"src":"3310:77:27"},"returnParameters":{"id":4985,"nodeType":"ParameterList","parameters":[],"src":"3397:0:27"},"scope":6095,"src":"3297:2303:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5223,"nodeType":"Block","src":"5781:177:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5208,"name":"_protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5203,"src":"5834:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":5209,"name":"FEE_DIVISOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4855,"src":"5850:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5834:27:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5214,"nodeType":"IfStatement","src":"5830:52:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5211,"name":"FeeInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6574,"src":"5870:10:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5870:12:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5213,"nodeType":"RevertStatement","src":"5863:19:27"}},{"expression":{"id":5217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5215,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4876,"src":"5888:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5216,"name":"_protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5203,"src":"5902:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5888:26:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5218,"nodeType":"ExpressionStatement","src":"5888:26:27"},{"eventCall":{"arguments":[{"id":5220,"name":"_protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5203,"src":"5940:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5219,"name":"SetProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6554,"src":"5925:14:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":5221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5925:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5222,"nodeType":"EmitStatement","src":"5920:33:27"}]},"documentation":{"id":5201,"nodeType":"StructuredDocumentation","src":"5604:109:27","text":" @notice Set the protocol fee\n @param _protocolFee uint256 Value of the fee in basis points"},"functionSelector":"787dce3d","id":5224,"implemented":true,"kind":"function","modifiers":[{"id":5206,"kind":"modifierInvocation","modifierName":{"id":5205,"name":"onlyOwner","nameLocations":["5771:9:27"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"5771:9:27"},"nodeType":"ModifierInvocation","src":"5771:9:27"}],"name":"setProtocolFee","nameLocation":"5725:14:27","nodeType":"FunctionDefinition","parameters":{"id":5204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5203,"mutability":"mutable","name":"_protocolFee","nameLocation":"5748:12:27","nodeType":"VariableDeclaration","scope":5224,"src":"5740:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5202,"name":"uint256","nodeType":"ElementaryTypeName","src":"5740:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5739:22:27"},"returnParameters":{"id":5207,"nodeType":"ParameterList","parameters":[],"src":"5781:0:27"},"scope":6095,"src":"5716:242:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":5250,"nodeType":"Block","src":"6157:214:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5232,"name":"_protocolFeeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"6212:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6242:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6234:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5233,"name":"address","nodeType":"ElementaryTypeName","src":"6234:7:27","typeDescriptions":{}}},"id":5236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6234:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6212:32:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5241,"nodeType":"IfStatement","src":"6208:63:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5238,"name":"FeeWalletInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6576,"src":"6253:16:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6253:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5240,"nodeType":"RevertStatement","src":"6246:25:27"}},{"expression":{"id":5244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5242,"name":"protocolFeeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4878,"src":"6277:17:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5243,"name":"_protocolFeeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"6297:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6277:38:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5245,"nodeType":"ExpressionStatement","src":"6277:38:27"},{"eventCall":{"arguments":[{"id":5247,"name":"_protocolFeeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"6347:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5246,"name":"SetProtocolFeeWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6558,"src":"6326:20:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6326:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5249,"nodeType":"EmitStatement","src":"6321:45:27"}]},"documentation":{"id":5225,"nodeType":"StructuredDocumentation","src":"5962:115:27","text":" @notice Set the protocol fee wallet\n @param _protocolFeeWallet address Wallet to transfer fee to"},"functionSelector":"7ce78525","id":5251,"implemented":true,"kind":"function","modifiers":[{"id":5230,"kind":"modifierInvocation","modifierName":{"id":5229,"name":"onlyOwner","nameLocations":["6147:9:27"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"6147:9:27"},"nodeType":"ModifierInvocation","src":"6147:9:27"}],"name":"setProtocolFeeWallet","nameLocation":"6089:20:27","nodeType":"FunctionDefinition","parameters":{"id":5228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5227,"mutability":"mutable","name":"_protocolFeeWallet","nameLocation":"6118:18:27","nodeType":"VariableDeclaration","scope":5251,"src":"6110:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5226,"name":"address","nodeType":"ElementaryTypeName","src":"6110:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6109:28:27"},"returnParameters":{"id":5231,"nodeType":"ParameterList","parameters":[],"src":"6157:0:27"},"scope":6095,"src":"6080:291:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6656],"body":{"id":5281,"nodeType":"Block","src":"6574:148:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5258,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"6584:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6605:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6597:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5259,"name":"address","nodeType":"ElementaryTypeName","src":"6597:7:27","typeDescriptions":{}}},"id":5262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6597:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6584:23:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5267,"nodeType":"IfStatement","src":"6580:54:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5264,"name":"SignatoryInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6594,"src":"6616:16:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6616:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5266,"nodeType":"RevertStatement","src":"6609:25:27"}},{"expression":{"id":5273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5268,"name":"authorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4870,"src":"6640:10:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":5271,"indexExpression":{"expression":{"id":5269,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6651:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6655:6:27","memberName":"sender","nodeType":"MemberAccess","src":"6651:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6640:22:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5272,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"6665:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6640:34:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5274,"nodeType":"ExpressionStatement","src":"6640:34:27"},{"eventCall":{"arguments":[{"id":5276,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5254,"src":"6695:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5277,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6706:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6710:6:27","memberName":"sender","nodeType":"MemberAccess","src":"6706:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5275,"name":"Authorize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"6685:9:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6685:32:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5280,"nodeType":"EmitStatement","src":"6680:37:27"}]},"documentation":{"id":5252,"nodeType":"StructuredDocumentation","src":"6375:140:27","text":" @notice Authorize a signer\n @param signatory address Wallet of the signer to authorize\n @dev Emits an Authorize event"},"functionSelector":"b6a5d7de","id":5282,"implemented":true,"kind":"function","modifiers":[],"name":"authorize","nameLocation":"6527:9:27","nodeType":"FunctionDefinition","overrides":{"id":5256,"nodeType":"OverrideSpecifier","overrides":[],"src":"6565:8:27"},"parameters":{"id":5255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5254,"mutability":"mutable","name":"signatory","nameLocation":"6545:9:27","nodeType":"VariableDeclaration","scope":5282,"src":"6537:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5253,"name":"address","nodeType":"ElementaryTypeName","src":"6537:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6536:19:27"},"returnParameters":{"id":5257,"nodeType":"ParameterList","parameters":[],"src":"6574:0:27"},"scope":6095,"src":"6518:204:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6659],"body":{"id":5306,"nodeType":"Block","src":"6839:116:27","statements":[{"assignments":[5288],"declarations":[{"constant":false,"id":5288,"mutability":"mutable","name":"tmp","nameLocation":"6853:3:27","nodeType":"VariableDeclaration","scope":5306,"src":"6845:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5287,"name":"address","nodeType":"ElementaryTypeName","src":"6845:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5293,"initialValue":{"baseExpression":{"id":5289,"name":"authorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4870,"src":"6859:10:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":5292,"indexExpression":{"expression":{"id":5290,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6870:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6874:6:27","memberName":"sender","nodeType":"MemberAccess","src":"6870:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6859:22:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6845:36:27"},{"expression":{"id":5298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6887:29:27","subExpression":{"baseExpression":{"id":5294,"name":"authorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4870,"src":"6894:10:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":5297,"indexExpression":{"expression":{"id":5295,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6905:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6909:6:27","memberName":"sender","nodeType":"MemberAccess","src":"6905:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6894:22:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5299,"nodeType":"ExpressionStatement","src":"6887:29:27"},{"eventCall":{"arguments":[{"id":5301,"name":"tmp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5288,"src":"6934:3:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5302,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6939:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6943:6:27","memberName":"sender","nodeType":"MemberAccess","src":"6939:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5300,"name":"Revoke","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6570,"src":"6927:6:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":5304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6927:23:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5305,"nodeType":"EmitStatement","src":"6922:28:27"}]},"documentation":{"id":5283,"nodeType":"StructuredDocumentation","src":"6726:74:27","text":" @notice Revoke the signatory\n @dev Emits a Revoke event"},"functionSelector":"b6549f75","id":5307,"implemented":true,"kind":"function","modifiers":[],"name":"revoke","nameLocation":"6812:6:27","nodeType":"FunctionDefinition","overrides":{"id":5285,"nodeType":"OverrideSpecifier","overrides":[],"src":"6830:8:27"},"parameters":{"id":5284,"nodeType":"ParameterList","parameters":[],"src":"6818:2:27"},"returnParameters":{"id":5286,"nodeType":"ParameterList","parameters":[],"src":"6839:0:27"},"scope":6095,"src":"6803:152:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6626],"body":{"id":5346,"nodeType":"Block","src":"7259:207:27","statements":[{"body":{"id":5344,"nodeType":"Block","src":"7302:160:27","statements":[{"assignments":[5323],"declarations":[{"constant":false,"id":5323,"mutability":"mutable","name":"nonce","nameLocation":"7318:5:27","nodeType":"VariableDeclaration","scope":5344,"src":"7310:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5322,"name":"uint256","nodeType":"ElementaryTypeName","src":"7310:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5327,"initialValue":{"baseExpression":{"id":5324,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"7326:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":5326,"indexExpression":{"id":5325,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"7333:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7326:9:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7310:25:27"},{"expression":{"arguments":[{"expression":{"id":5329,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7360:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7364:6:27","memberName":"sender","nodeType":"MemberAccess","src":"7360:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5331,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"7372:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5328,"name":"_markNonceAsUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5860,"src":"7343:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7343:35:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5333,"nodeType":"ExpressionStatement","src":"7343:35:27"},{"eventCall":{"arguments":[{"id":5335,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"7398:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5336,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7405:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7409:6:27","memberName":"sender","nodeType":"MemberAccess","src":"7405:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5334,"name":"Cancel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6544,"src":"7391:6:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":5338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7391:25:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5339,"nodeType":"EmitStatement","src":"7386:30:27"},{"id":5343,"nodeType":"UncheckedBlock","src":"7424:32:27","statements":[{"expression":{"id":5341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"7444:3:27","subExpression":{"id":5340,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"7446:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5342,"nodeType":"ExpressionStatement","src":"7444:3:27"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5318,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5316,"src":"7281:1:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5319,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5311,"src":"7285:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":5320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7292:6:27","memberName":"length","nodeType":"MemberAccess","src":"7285:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7281:17:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5345,"initializationExpression":{"assignments":[5316],"declarations":[{"constant":false,"id":5316,"mutability":"mutable","name":"i","nameLocation":"7278:1:27","nodeType":"VariableDeclaration","scope":5345,"src":"7270:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5315,"name":"uint256","nodeType":"ElementaryTypeName","src":"7270:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5317,"nodeType":"VariableDeclarationStatement","src":"7270:9:27"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"7265:197:27"}]},"documentation":{"id":5308,"nodeType":"StructuredDocumentation","src":"6959:236:27","text":" @notice Cancel one or more nonces\n @dev Cancelled nonces are marked as used\n @dev Emits a Cancel event\n @dev Out of gas may occur in arrays of length > 400\n @param nonces uint256[] List of nonces to cancel"},"functionSelector":"2e340823","id":5347,"implemented":true,"kind":"function","modifiers":[],"name":"cancel","nameLocation":"7207:6:27","nodeType":"FunctionDefinition","overrides":{"id":5313,"nodeType":"OverrideSpecifier","overrides":[],"src":"7250:8:27"},"parameters":{"id":5312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5311,"mutability":"mutable","name":"nonces","nameLocation":"7233:6:27","nodeType":"VariableDeclaration","scope":5347,"src":"7214:25:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":5309,"name":"uint256","nodeType":"ElementaryTypeName","src":"7214:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5310,"nodeType":"ArrayTypeName","src":"7214:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7213:27:27"},"returnParameters":{"id":5314,"nodeType":"ParameterList","parameters":[],"src":"7259:0:27"},"scope":6095,"src":"7198:268:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6631],"body":{"id":5366,"nodeType":"Block","src":"7673:106:27","statements":[{"expression":{"id":5358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5353,"name":"signatoryMinimumNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4874,"src":"7679:21:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5356,"indexExpression":{"expression":{"id":5354,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7701:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7705:6:27","memberName":"sender","nodeType":"MemberAccess","src":"7701:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7679:33:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5357,"name":"minimumNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"7715:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7679:48:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5359,"nodeType":"ExpressionStatement","src":"7679:48:27"},{"eventCall":{"arguments":[{"id":5361,"name":"minimumNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"7749:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5362,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7763:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7767:6:27","memberName":"sender","nodeType":"MemberAccess","src":"7763:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5360,"name":"CancelUpTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6550,"src":"7738:10:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":5364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7738:36:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5365,"nodeType":"EmitStatement","src":"7733:41:27"}]},"documentation":{"id":5348,"nodeType":"StructuredDocumentation","src":"7470:149:27","text":" @notice Cancels all orders below a nonce value\n @dev Emits a CancelUpTo event\n @param minimumNonce uint256 Minimum valid nonce"},"functionSelector":"3c641910","id":5367,"implemented":true,"kind":"function","modifiers":[],"name":"cancelUpTo","nameLocation":"7631:10:27","nodeType":"FunctionDefinition","parameters":{"id":5351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5350,"mutability":"mutable","name":"minimumNonce","nameLocation":"7650:12:27","nodeType":"VariableDeclaration","scope":5367,"src":"7642:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5349,"name":"uint256","nodeType":"ElementaryTypeName","src":"7642:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7641:22:27"},"returnParameters":{"id":5352,"nodeType":"ParameterList","parameters":[],"src":"7673:0:27"},"scope":6095,"src":"7622:157:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6642],"body":{"id":5763,"nodeType":"Block","src":"8089:3131:27","statements":[{"assignments":[5383],"declarations":[{"constant":false,"id":5383,"mutability":"mutable","name":"errors","nameLocation":"8112:6:27","nodeType":"VariableDeclaration","scope":5763,"src":"8095:23:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8095:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5382,"nodeType":"ArrayTypeName","src":"8095:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":5389,"initialValue":{"arguments":[{"id":5387,"name":"MAX_ERROR_COUNT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4858,"src":"8135:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8121:13:27","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":5384,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8125:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5385,"nodeType":"ArrayTypeName","src":"8125:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":5388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8121:30:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8095:56:27"},{"assignments":[5391],"declarations":[{"constant":false,"id":5391,"mutability":"mutable","name":"count","nameLocation":"8165:5:27","nodeType":"VariableDeclaration","scope":5763,"src":"8157:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5390,"name":"uint256","nodeType":"ElementaryTypeName","src":"8157:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5392,"nodeType":"VariableDeclarationStatement","src":"8157:13:27"},{"assignments":[5394],"declarations":[{"constant":false,"id":5394,"mutability":"mutable","name":"signatory","nameLocation":"8236:9:27","nodeType":"VariableDeclaration","scope":5763,"src":"8228:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5393,"name":"address","nodeType":"ElementaryTypeName","src":"8228:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5398,"initialValue":{"expression":{"expression":{"id":5395,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"8248:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8254:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"8248:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8261:6:27","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"8248:19:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8228:39:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5399,"name":"authorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4870,"src":"8277:10:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":5401,"indexExpression":{"id":5400,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5394,"src":"8288:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8277:21:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8310:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8302:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5402,"name":"address","nodeType":"ElementaryTypeName","src":"8302:7:27","typeDescriptions":{}}},"id":5405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8302:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8277:35:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5414,"nodeType":"IfStatement","src":"8273:89:27","trueBody":{"id":5413,"nodeType":"Block","src":"8314:48:27","statements":[{"expression":{"id":5411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5407,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5394,"src":"8322:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":5408,"name":"authorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4870,"src":"8334:10:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":5410,"indexExpression":{"id":5409,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5394,"src":"8345:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8334:21:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8322:33:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5412,"nodeType":"ExpressionStatement","src":"8322:33:27"}]}},{"condition":{"id":5431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8379:147:27","subExpression":{"arguments":[{"id":5417,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5394,"src":"8426:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5419,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"8459:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}],"id":5418,"name":"_getOrderHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6029,"src":"8445:13:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Order_$6514_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct ISwap.Order calldata) view returns (bytes32)"}},"id":5420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8445:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":5423,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"8492:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8498:1:27","memberName":"r","nodeType":"MemberAccess","referencedDeclaration":6511,"src":"8492:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":5425,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"8501:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8507:1:27","memberName":"s","nodeType":"MemberAccess","referencedDeclaration":6513,"src":"8501:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":5427,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"8510:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8516:1:27","memberName":"v","nodeType":"MemberAccess","referencedDeclaration":6509,"src":"8510:7:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":5421,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8475:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8479:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"8475:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8475:43:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5415,"name":"SignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3809,"src":"8380:16:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignatureChecker_$3809_$","typeString":"type(library SignatureChecker)"}},"id":5416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8397:19:27","memberName":"isValidSignatureNow","nodeType":"MemberAccess","referencedDeclaration":3756,"src":"8380:36:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes memory) view returns (bool)"}},"id":5430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8380:146:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"id":5441,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5394,"src":"8600:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5442,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"8611:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8617:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":6495,"src":"8611:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5440,"name":"nonceUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5801,"src":"8590:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":5444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8590:33:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5453,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"8686:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8692:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":6495,"src":"8686:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":5455,"name":"signatoryMinimumNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4874,"src":"8700:21:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5457,"indexExpression":{"id":5456,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5394,"src":"8722:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8700:32:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8686:46:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5467,"nodeType":"IfStatement","src":"8682:98:27","trueBody":{"id":5466,"nodeType":"Block","src":"8734:46:27","statements":[{"expression":{"id":5464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5459,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"8742:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5462,"indexExpression":{"id":5461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8749:7:27","subExpression":{"id":5460,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"8749:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8742:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"4e6f6e6365546f6f4c6f77","id":5463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8760:13:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc6c5450de632a4158586df00c07ce9f7a9cd49d3668c8e2028c1385780ca755","typeString":"literal_string \"NonceTooLow\""},"value":"NonceTooLow"},"src":"8742:31:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5465,"nodeType":"ExpressionStatement","src":"8742:31:27"}]}},"id":5468,"nodeType":"IfStatement","src":"8586:194:27","trueBody":{"id":5452,"nodeType":"Block","src":"8625:51:27","statements":[{"expression":{"id":5450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5445,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"8633:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5448,"indexExpression":{"id":5447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8640:7:27","subExpression":{"id":5446,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"8640:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8633:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"4e6f6e6365416c726561647955736564","id":5449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8651:18:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_be31810793130d8912a530f7c5eaf4687b71e8db19d1b95aa5eccb52dc7cb6a3","typeString":"literal_string \"NonceAlreadyUsed\""},"value":"NonceAlreadyUsed"},"src":"8633:36:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5451,"nodeType":"ExpressionStatement","src":"8633:36:27"}]}},"id":5469,"nodeType":"IfStatement","src":"8368:412:27","trueBody":{"id":5439,"nodeType":"Block","src":"8533:47:27","statements":[{"expression":{"id":5437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5432,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"8541:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5435,"indexExpression":{"id":5434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8548:7:27","subExpression":{"id":5433,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"8548:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8541:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"556e617574686f72697a6564","id":5436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8559:14:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5","typeString":"literal_string \"Unauthorized\""},"value":"Unauthorized"},"src":"8541:32:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5438,"nodeType":"ExpressionStatement","src":"8541:32:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5470,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"8790:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8796:6:27","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":6497,"src":"8790:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5472,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8805:5:27","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8811:9:27","memberName":"timestamp","nodeType":"MemberAccess","src":"8805:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8790:30:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5483,"nodeType":"IfStatement","src":"8786:83:27","trueBody":{"id":5482,"nodeType":"Block","src":"8822:47:27","statements":[{"expression":{"id":5480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5475,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"8830:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5478,"indexExpression":{"id":5477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8837:7:27","subExpression":{"id":5476,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"8837:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8830:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"4f7264657245787069726564","id":5479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8848:14:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_b98920167122c1c50f989e3ff83c39ce951426023eeaa003689e64cf1e5d669f","typeString":"literal_string \"OrderExpired\""},"value":"OrderExpired"},"src":"8830:32:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5481,"nodeType":"ExpressionStatement","src":"8830:32:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5484,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"8886:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8892:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"8886:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8899:6:27","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"8886:19:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8917:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8909:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5487,"name":"address","nodeType":"ElementaryTypeName","src":"8909:7:27","typeDescriptions":{}}},"id":5490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8909:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8886:33:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5492,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"8923:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8929:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"8923:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8936:6:27","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"8923:19:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5495,"name":"senderWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5370,"src":"8946:12:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8923:35:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8886:72:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5506,"nodeType":"IfStatement","src":"8875:138:27","trueBody":{"id":5505,"nodeType":"Block","src":"8965:48:27","statements":[{"expression":{"id":5503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5498,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"8973:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5501,"indexExpression":{"id":5500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8980:7:27","subExpression":{"id":5499,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"8980:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8973:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"53656e646572496e76616c6964","id":5502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8991:15:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_d62ba7fabb0e2413629eca6224c6653b59924f78c01fb2836464abf1c3bdcdf9","typeString":"literal_string \"SenderInvalid\""},"value":"SenderInvalid"},"src":"8973:33:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5504,"nodeType":"ExpressionStatement","src":"8973:33:27"}]}},{"assignments":[5509],"declarations":[{"constant":false,"id":5509,"mutability":"mutable","name":"senderTokenAdapter","nameLocation":"9028:18:27","nodeType":"VariableDeclaration","scope":5763,"src":"9019:27:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"},"typeName":{"id":5508,"nodeType":"UserDefinedTypeName","pathNode":{"id":5507,"name":"IAdapter","nameLocations":["9019:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":6490,"src":"9019:8:27"},"referencedDeclaration":6490,"src":"9019:8:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"visibility":"internal"}],"id":5515,"initialValue":{"baseExpression":{"id":5510,"name":"adapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4885,"src":"9049:8:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_contract$_IAdapter_$6490_$","typeString":"mapping(bytes4 => contract IAdapter)"}},"id":5514,"indexExpression":{"expression":{"expression":{"id":5511,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9058:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9064:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"9058:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9071:4:27","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":6431,"src":"9058:17:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9049:27:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"nodeType":"VariableDeclarationStatement","src":"9019:57:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5518,"name":"senderTokenAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"9095:18:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}],"id":5517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9087:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5516,"name":"address","nodeType":"ElementaryTypeName","src":"9087:7:27","typeDescriptions":{}}},"id":5519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9087:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9126:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9118:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5520,"name":"address","nodeType":"ElementaryTypeName","src":"9118:7:27","typeDescriptions":{}}},"id":5523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9118:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9087:41:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5679,"nodeType":"Block","src":"9193:1330:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5533,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9205:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9211:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"9205:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9218:4:27","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":6431,"src":"9205:17:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5536,"name":"requiredSenderKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"9226:18:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"9205:39:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5677,"nodeType":"Block","src":"9309:1208:27","statements":[{"assignments":[5547],"declarations":[{"constant":false,"id":5547,"mutability":"mutable","name":"protocolFeeAmount","nameLocation":"9327:17:27","nodeType":"VariableDeclaration","scope":5677,"src":"9319:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5546,"name":"uint256","nodeType":"ElementaryTypeName","src":"9319:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5556,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5548,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9348:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9354:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"9348:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9361:6:27","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"9348:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":5551,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4876,"src":"9370:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9348:33:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5553,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9347:35:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":5554,"name":"FEE_DIVISOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4855,"src":"9395:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9347:59:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9319:87:27"},{"assignments":[5558],"declarations":[{"constant":false,"id":5558,"mutability":"mutable","name":"totalSenderAmount","nameLocation":"9424:17:27","nodeType":"VariableDeclaration","scope":5677,"src":"9416:25:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5557,"name":"uint256","nodeType":"ElementaryTypeName","src":"9416:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5567,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5559,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9444:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9450:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"9444:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9457:6:27","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"9444:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5562,"name":"protocolFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5547,"src":"9476:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9444:49:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":5564,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9506:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9512:15:27","memberName":"affiliateAmount","nodeType":"MemberAccess","referencedDeclaration":6507,"src":"9506:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9444:83:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9416:111:27"},{"condition":{"arguments":[{"expression":{"expression":{"id":5569,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9559:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9565:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"9559:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9572:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"9559:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5568,"name":"supportsRoyalties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5890,"src":"9541:17:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":5572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9541:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5594,"nodeType":"IfStatement","src":"9537:254:27","trueBody":{"id":5593,"nodeType":"Block","src":"9580:211:27","statements":[{"assignments":[null,5574],"declarations":[null,{"constant":false,"id":5574,"mutability":"mutable","name":"royaltyAmount","nameLocation":"9603:13:27","nodeType":"VariableDeclaration","scope":5593,"src":"9595:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5573,"name":"uint256","nodeType":"ElementaryTypeName","src":"9595:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5588,"initialValue":{"arguments":[{"expression":{"expression":{"id":5581,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9674:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9680:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"9674:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9687:2:27","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"9674:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":5584,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9703:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9709:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"9703:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9716:6:27","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"9703:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":5576,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9629:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9635:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"9629:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9642:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"9629:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5575,"name":"IERC2981","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"9620:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC2981_$228_$","typeString":"type(contract IERC2981)"}},"id":5579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9620:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC2981_$228","typeString":"contract IERC2981"}},"id":5580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9649:11:27","memberName":"royaltyInfo","nodeType":"MemberAccess","referencedDeclaration":227,"src":"9620:40:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_address_$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (address,uint256)"}},"id":5587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9620:114:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"9592:142:27"},{"expression":{"id":5591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5589,"name":"totalSenderAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5558,"src":"9746:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5590,"name":"royaltyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5574,"src":"9767:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9746:34:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5592,"nodeType":"ExpressionStatement","src":"9746:34:27"}]}},{"assignments":[5597],"declarations":[{"constant":false,"id":5597,"mutability":"mutable","name":"sender","nameLocation":"9813:6:27","nodeType":"VariableDeclaration","scope":5677,"src":"9800:19:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_memory_ptr","typeString":"struct Party"},"typeName":{"id":5596,"nodeType":"UserDefinedTypeName","pathNode":{"id":5595,"name":"Party","nameLocations":["9800:5:27"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"9800:5:27"},"referencedDeclaration":6436,"src":"9800:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"id":5611,"initialValue":{"arguments":[{"id":5599,"name":"senderWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5370,"src":"9839:12:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5600,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9863:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9869:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"9863:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9876:5:27","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"9863:18:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":5603,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9893:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9899:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"9893:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9906:4:27","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":6431,"src":"9893:17:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"expression":{"id":5606,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"9922:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9928:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"9922:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9935:2:27","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"9922:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5609,"name":"totalSenderAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5558,"src":"9949:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5598,"name":"Party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6436,"src":"9822:5:27","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Party_$6436_storage_ptr_$","typeString":"type(struct Party storage pointer)"}},"id":5610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9822:154:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_memory_ptr","typeString":"struct Party memory"}},"nodeType":"VariableDeclarationStatement","src":"9800:176:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5612,"name":"senderWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5370,"src":"9990:12:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10014:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10006:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5613,"name":"address","nodeType":"ElementaryTypeName","src":"10006:7:27","typeDescriptions":{}}},"id":5616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10006:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9990:26:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5647,"nodeType":"IfStatement","src":"9986:283:27","trueBody":{"id":5646,"nodeType":"Block","src":"10018:251:27","statements":[{"condition":{"id":5622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10034:40:27","subExpression":{"arguments":[{"id":5620,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5597,"src":"10067:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_memory_ptr","typeString":"struct Party memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Party_$6436_memory_ptr","typeString":"struct Party memory"}],"expression":{"id":5618,"name":"senderTokenAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"10035:18:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"id":5619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10054:12:27","memberName":"hasAllowance","nodeType":"MemberAccess","referencedDeclaration":6457,"src":"10035:31:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_Party_$6436_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Party memory) view external returns (bool)"}},"id":5621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10035:39:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5631,"nodeType":"IfStatement","src":"10030:111:27","trueBody":{"id":5630,"nodeType":"Block","src":"10076:65:27","statements":[{"expression":{"id":5628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5623,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"10090:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5626,"indexExpression":{"id":5625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10097:7:27","subExpression":{"id":5624,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"10097:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10090:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"53656e646572416c6c6f77616e63654c6f77","id":5627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10108:20:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_800539c6130956919ab8a2b5827c926af924322be69b5070bf898a2328682b86","typeString":"literal_string \"SenderAllowanceLow\""},"value":"SenderAllowanceLow"},"src":"10090:38:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5629,"nodeType":"ExpressionStatement","src":"10090:38:27"}]}},{"condition":{"id":5636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10156:38:27","subExpression":{"arguments":[{"id":5634,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5597,"src":"10187:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_memory_ptr","typeString":"struct Party memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Party_$6436_memory_ptr","typeString":"struct Party memory"}],"expression":{"id":5632,"name":"senderTokenAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"10157:18:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"id":5633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10176:10:27","memberName":"hasBalance","nodeType":"MemberAccess","referencedDeclaration":6466,"src":"10157:29:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_Party_$6436_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Party memory) view external returns (bool)"}},"id":5635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10157:37:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5645,"nodeType":"IfStatement","src":"10152:107:27","trueBody":{"id":5644,"nodeType":"Block","src":"10196:63:27","statements":[{"expression":{"id":5642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5637,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"10210:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5640,"indexExpression":{"id":5639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10217:7:27","subExpression":{"id":5638,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"10217:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10210:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"53656e64657242616c616e63654c6f77","id":5641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10228:18:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ed44c882ae48c06c3a653622e1ae1d8bb316dcfe515fe97ae6b67ce96cb7e58","typeString":"literal_string \"SenderBalanceLow\""},"value":"SenderBalanceLow"},"src":"10210:36:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5643,"nodeType":"ExpressionStatement","src":"10210:36:27"}]}}]}},{"condition":{"id":5652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10282:42:27","subExpression":{"arguments":[{"id":5650,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5597,"src":"10317:6:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_memory_ptr","typeString":"struct Party memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Party_$6436_memory_ptr","typeString":"struct Party memory"}],"expression":{"id":5648,"name":"senderTokenAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"10283:18:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"id":5649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10302:14:27","memberName":"hasValidParams","nodeType":"MemberAccess","referencedDeclaration":6475,"src":"10283:33:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_Party_$6436_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Party memory) view external returns (bool)"}},"id":5651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10283:41:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5661,"nodeType":"IfStatement","src":"10278:108:27","trueBody":{"id":5660,"nodeType":"Block","src":"10326:60:27","statements":[{"expression":{"id":5658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5653,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"10338:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5656,"indexExpression":{"id":5655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10345:7:27","subExpression":{"id":5654,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"10345:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10338:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"416d6f756e744f724944496e76616c6964","id":5657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10356:19:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_6cd8273fb0e2945a59ac5f53f21a5270499f3d708c5c63ce8e04f17b8f0dc60c","typeString":"literal_string \"AmountOrIDInvalid\""},"value":"AmountOrIDInvalid"},"src":"10338:37:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5659,"nodeType":"ExpressionStatement","src":"10338:37:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5662,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"10399:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10405:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"10399:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10412:6:27","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"10399:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5665,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"10421:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10427:15:27","memberName":"affiliateAmount","nodeType":"MemberAccess","referencedDeclaration":6507,"src":"10421:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10399:43:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5676,"nodeType":"IfStatement","src":"10395:114:27","trueBody":{"id":5675,"nodeType":"Block","src":"10444:65:27","statements":[{"expression":{"id":5673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5668,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"10456:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5671,"indexExpression":{"id":5670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10463:7:27","subExpression":{"id":5669,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"10463:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10456:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"416666696c69617465416d6f756e74496e76616c6964","id":5672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10474:24:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_b0b3a1f58ded5cc339cc847be441e8383b3e2b26a30b7dbe5857fd4180b88ea2","typeString":"literal_string \"AffiliateAmountInvalid\""},"value":"AffiliateAmountInvalid"},"src":"10456:42:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5674,"nodeType":"ExpressionStatement","src":"10456:42:27"}]}}]},"id":5678,"nodeType":"IfStatement","src":"9201:1316:27","trueBody":{"id":5545,"nodeType":"Block","src":"9246:57:27","statements":[{"expression":{"id":5543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5538,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"9256:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5541,"indexExpression":{"id":5540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9263:7:27","subExpression":{"id":5539,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"9263:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9256:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"53656e646572546f6b656e496e76616c6964","id":5542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9274:20:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d4ef31081c8703db27f2f967951b31db38d24973250103f0eed62a3a2d3e624","typeString":"literal_string \"SenderTokenInvalid\""},"value":"SenderTokenInvalid"},"src":"9256:38:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5544,"nodeType":"ExpressionStatement","src":"9256:38:27"}]}}]},"id":5680,"nodeType":"IfStatement","src":"9083:1440:27","trueBody":{"id":5532,"nodeType":"Block","src":"9130:57:27","statements":[{"expression":{"id":5530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5525,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"9138:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5528,"indexExpression":{"id":5527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9145:7:27","subExpression":{"id":5526,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"9145:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9138:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"53656e646572546f6b656e4b696e64556e6b6e6f776e","id":5529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9156:24:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c99db1c210c65826b16c1447e4258560ab4d2c7f501a33a8b9d0be6bdca15412","typeString":"literal_string \"SenderTokenKindUnknown\""},"value":"SenderTokenKindUnknown"},"src":"9138:42:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5531,"nodeType":"ExpressionStatement","src":"9138:42:27"}]}},{"assignments":[5683],"declarations":[{"constant":false,"id":5683,"mutability":"mutable","name":"signerTokenAdapter","nameLocation":"10538:18:27","nodeType":"VariableDeclaration","scope":5763,"src":"10529:27:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"},"typeName":{"id":5682,"nodeType":"UserDefinedTypeName","pathNode":{"id":5681,"name":"IAdapter","nameLocations":["10529:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":6490,"src":"10529:8:27"},"referencedDeclaration":6490,"src":"10529:8:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"visibility":"internal"}],"id":5689,"initialValue":{"baseExpression":{"id":5684,"name":"adapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4885,"src":"10559:8:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_contract$_IAdapter_$6490_$","typeString":"mapping(bytes4 => contract IAdapter)"}},"id":5688,"indexExpression":{"expression":{"expression":{"id":5685,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"10568:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10574:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"10568:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10581:4:27","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":6431,"src":"10568:17:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10559:27:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"nodeType":"VariableDeclarationStatement","src":"10529:57:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":5692,"name":"signerTokenAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5683,"src":"10605:18:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}],"id":5691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10597:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5690,"name":"address","nodeType":"ElementaryTypeName","src":"10597:7:27","typeDescriptions":{}}},"id":5693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10597:27:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10636:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10628:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5694,"name":"address","nodeType":"ElementaryTypeName","src":"10628:7:27","typeDescriptions":{}}},"id":5697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10628:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10597:41:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5752,"nodeType":"Block","src":"10703:352:27","statements":[{"condition":{"id":5712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10715:46:27","subExpression":{"arguments":[{"expression":{"id":5709,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"10748:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10754:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"10748:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}],"expression":{"id":5707,"name":"signerTokenAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5683,"src":"10716:18:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"id":5708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10735:12:27","memberName":"hasAllowance","nodeType":"MemberAccess","referencedDeclaration":6457,"src":"10716:31:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_Party_$6436_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Party memory) view external returns (bool)"}},"id":5711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10716:45:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5721,"nodeType":"IfStatement","src":"10711:109:27","trueBody":{"id":5720,"nodeType":"Block","src":"10763:57:27","statements":[{"expression":{"id":5718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5713,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"10773:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5716,"indexExpression":{"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10780:7:27","subExpression":{"id":5714,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"10780:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10773:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"5369676e6572416c6c6f77616e63654c6f77","id":5717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10791:20:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_043477b64d7530aee50fe6e83386cc7e428230dc7d4b9ddbca6fe26ec5225e82","typeString":"literal_string \"SignerAllowanceLow\""},"value":"SignerAllowanceLow"},"src":"10773:38:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5719,"nodeType":"ExpressionStatement","src":"10773:38:27"}]}},{"condition":{"id":5727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10831:44:27","subExpression":{"arguments":[{"expression":{"id":5724,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"10862:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10868:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"10862:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}],"expression":{"id":5722,"name":"signerTokenAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5683,"src":"10832:18:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"id":5723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10851:10:27","memberName":"hasBalance","nodeType":"MemberAccess","referencedDeclaration":6466,"src":"10832:29:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_Party_$6436_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Party memory) view external returns (bool)"}},"id":5726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10832:43:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5736,"nodeType":"IfStatement","src":"10827:105:27","trueBody":{"id":5735,"nodeType":"Block","src":"10877:55:27","statements":[{"expression":{"id":5733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5728,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"10887:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5731,"indexExpression":{"id":5730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10894:7:27","subExpression":{"id":5729,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"10894:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10887:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"5369676e657242616c616e63654c6f77","id":5732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10905:18:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3cd58a375ff1de50e673321d07bcc8ab36eb6db1d5b7614806210deb021caff","typeString":"literal_string \"SignerBalanceLow\""},"value":"SignerBalanceLow"},"src":"10887:36:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5734,"nodeType":"ExpressionStatement","src":"10887:36:27"}]}},{"condition":{"id":5742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10943:48:27","subExpression":{"arguments":[{"expression":{"id":5739,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5373,"src":"10978:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10984:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"10978:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}],"expression":{"id":5737,"name":"signerTokenAdapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5683,"src":"10944:18:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"id":5738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10963:14:27","memberName":"hasValidParams","nodeType":"MemberAccess","referencedDeclaration":6475,"src":"10944:33:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_Party_$6436_memory_ptr_$returns$_t_bool_$","typeString":"function (struct Party memory) view external returns (bool)"}},"id":5741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10944:47:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5751,"nodeType":"IfStatement","src":"10939:110:27","trueBody":{"id":5750,"nodeType":"Block","src":"10993:56:27","statements":[{"expression":{"id":5748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5743,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"11003:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5746,"indexExpression":{"id":5745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11010:7:27","subExpression":{"id":5744,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"11010:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11003:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"416d6f756e744f724944496e76616c6964","id":5747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11021:19:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_6cd8273fb0e2945a59ac5f53f21a5270499f3d708c5c63ce8e04f17b8f0dc60c","typeString":"literal_string \"AmountOrIDInvalid\""},"value":"AmountOrIDInvalid"},"src":"11003:37:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5749,"nodeType":"ExpressionStatement","src":"11003:37:27"}]}}]},"id":5753,"nodeType":"IfStatement","src":"10593:462:27","trueBody":{"id":5706,"nodeType":"Block","src":"10640:57:27","statements":[{"expression":{"id":5704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5699,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"10648:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5702,"indexExpression":{"id":5701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10655:7:27","subExpression":{"id":5700,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"10655:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10648:15:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"5369676e6572546f6b656e4b696e64556e6b6e6f776e","id":5703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10666:24:27","typeDescriptions":{"typeIdentifier":"t_stringliteral_c420743f36215a528ce3ca115f9a202795e22e2e2b1946d94e01f3fe73dbf582","typeString":"literal_string \"SignerTokenKindUnknown\""},"value":"SignerTokenKindUnknown"},"src":"10648:42:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5705,"nodeType":"ExpressionStatement","src":"10648:42:27"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5754,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"11110:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":5755,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"11119:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11126:6:27","memberName":"length","nodeType":"MemberAccess","src":"11119:13:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11110:22:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5760,"nodeType":"IfStatement","src":"11106:90:27","trueBody":{"id":5759,"nodeType":"Block","src":"11134:62:27","statements":[{"AST":{"nativeSrc":"11151:39:27","nodeType":"YulBlock","src":"11151:39:27","statements":[{"expression":{"arguments":[{"name":"errors","nativeSrc":"11168:6:27","nodeType":"YulIdentifier","src":"11168:6:27"},{"name":"count","nativeSrc":"11176:5:27","nodeType":"YulIdentifier","src":"11176:5:27"}],"functionName":{"name":"mstore","nativeSrc":"11161:6:27","nodeType":"YulIdentifier","src":"11161:6:27"},"nativeSrc":"11161:21:27","nodeType":"YulFunctionCall","src":"11161:21:27"},"nativeSrc":"11161:21:27","nodeType":"YulExpressionStatement","src":"11161:21:27"}]},"evmVersion":"paris","externalReferences":[{"declaration":5391,"isOffset":false,"isSlot":false,"src":"11176:5:27","valueSize":1},{"declaration":5383,"isOffset":false,"isSlot":false,"src":"11168:6:27","valueSize":1}],"id":5758,"nodeType":"InlineAssembly","src":"11142:48:27"}]}},{"expression":{"id":5761,"name":"errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5383,"src":"11209:6:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":5378,"id":5762,"nodeType":"Return","src":"11202:13:27"}]},"documentation":{"id":5368,"nodeType":"StructuredDocumentation","src":"7783:191:27","text":" @notice Checks an order for errors\n @param senderWallet address Wallet that would send the order\n @param order Order that would be settled\n @return bytes32[] errors"},"functionSelector":"49b8a932","id":5764,"implemented":true,"kind":"function","modifiers":[],"name":"check","nameLocation":"7986:5:27","nodeType":"FunctionDefinition","parameters":{"id":5374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5370,"mutability":"mutable","name":"senderWallet","nameLocation":"8005:12:27","nodeType":"VariableDeclaration","scope":5764,"src":"7997:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5369,"name":"address","nodeType":"ElementaryTypeName","src":"7997:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5373,"mutability":"mutable","name":"order","nameLocation":"8038:5:27","nodeType":"VariableDeclaration","scope":5764,"src":"8023:20:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order"},"typeName":{"id":5372,"nodeType":"UserDefinedTypeName","pathNode":{"id":5371,"name":"Order","nameLocations":["8023:5:27"],"nodeType":"IdentifierPath","referencedDeclaration":6514,"src":"8023:5:27"},"referencedDeclaration":6514,"src":"8023:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_storage_ptr","typeString":"struct ISwap.Order"}},"visibility":"internal"}],"src":"7991:56:27"},"returnParameters":{"id":5378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5377,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5764,"src":"8071:16:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8071:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5376,"nodeType":"ArrayTypeName","src":"8071:9:27","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"8070:18:27"},"scope":6095,"src":"7977:3243:27","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6651],"body":{"id":5800,"nodeType":"Block","src":"11482:151:27","statements":[{"assignments":[5776],"declarations":[{"constant":false,"id":5776,"mutability":"mutable","name":"groupKey","nameLocation":"11496:8:27","nodeType":"VariableDeclaration","scope":5800,"src":"11488:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5775,"name":"uint256","nodeType":"ElementaryTypeName","src":"11488:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5780,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5777,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5769,"src":"11507:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"323536","id":5778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11515:3:27","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"11507:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11488:30:27"},{"assignments":[5782],"declarations":[{"constant":false,"id":5782,"mutability":"mutable","name":"indexInGroup","nameLocation":"11532:12:27","nodeType":"VariableDeclaration","scope":5800,"src":"11524:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5781,"name":"uint256","nodeType":"ElementaryTypeName","src":"11524:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5786,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5783,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5769,"src":"11547:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"323536","id":5784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11555:3:27","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"11547:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11524:34:27"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":5787,"name":"_nonceGroups","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4865,"src":"11572:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":5789,"indexExpression":{"id":5788,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5767,"src":"11585:6:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11572:20:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":5791,"indexExpression":{"id":5790,"name":"groupKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5776,"src":"11593:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11572:30:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":5792,"name":"indexInGroup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5782,"src":"11606:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11572:46:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11571:48:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":5795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11622:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11571:52:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":5797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11627:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11571:57:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5774,"id":5799,"nodeType":"Return","src":"11564:64:27"}]},"documentation":{"id":5765,"nodeType":"StructuredDocumentation","src":"11224:157:27","text":" @notice Returns true if the nonce has been used\n @param signer address Address of the signer\n @param nonce uint256 Nonce being checked"},"functionSelector":"1647795e","id":5801,"implemented":true,"kind":"function","modifiers":[],"name":"nonceUsed","nameLocation":"11393:9:27","nodeType":"FunctionDefinition","overrides":{"id":5771,"nodeType":"OverrideSpecifier","overrides":[],"src":"11458:8:27"},"parameters":{"id":5770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5767,"mutability":"mutable","name":"signer","nameLocation":"11416:6:27","nodeType":"VariableDeclaration","scope":5801,"src":"11408:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5766,"name":"address","nodeType":"ElementaryTypeName","src":"11408:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5769,"mutability":"mutable","name":"nonce","nameLocation":"11436:5:27","nodeType":"VariableDeclaration","scope":5801,"src":"11428:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5768,"name":"uint256","nodeType":"ElementaryTypeName","src":"11428:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11402:43:27"},"returnParameters":{"id":5774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5773,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5801,"src":"11476:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5772,"name":"bool","nodeType":"ElementaryTypeName","src":"11476:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11475:6:27"},"scope":6095,"src":"11384:249:27","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":5859,"nodeType":"Block","src":"11918:343:27","statements":[{"assignments":[5810],"declarations":[{"constant":false,"id":5810,"mutability":"mutable","name":"groupKey","nameLocation":"11932:8:27","nodeType":"VariableDeclaration","scope":5859,"src":"11924:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5809,"name":"uint256","nodeType":"ElementaryTypeName","src":"11924:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5814,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5811,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5806,"src":"11943:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"323536","id":5812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11951:3:27","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"11943:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11924:30:27"},{"assignments":[5816],"declarations":[{"constant":false,"id":5816,"mutability":"mutable","name":"indexInGroup","nameLocation":"11968:12:27","nodeType":"VariableDeclaration","scope":5859,"src":"11960:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5815,"name":"uint256","nodeType":"ElementaryTypeName","src":"11960:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5820,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5817,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5806,"src":"11983:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"323536","id":5818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11991:3:27","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"11983:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11960:34:27"},{"assignments":[5822],"declarations":[{"constant":false,"id":5822,"mutability":"mutable","name":"group","nameLocation":"12008:5:27","nodeType":"VariableDeclaration","scope":5859,"src":"12000:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5821,"name":"uint256","nodeType":"ElementaryTypeName","src":"12000:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5828,"initialValue":{"baseExpression":{"baseExpression":{"id":5823,"name":"_nonceGroups","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4865,"src":"12016:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":5825,"indexExpression":{"id":5824,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5804,"src":"12029:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12016:23:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":5827,"indexExpression":{"id":5826,"name":"groupKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5810,"src":"12040:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12016:33:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12000:49:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5829,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5822,"src":"12100:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":5830,"name":"indexInGroup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5816,"src":"12109:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12100:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5832,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12099:23:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":5833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12125:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12099:27:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":5835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12130:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12099:32:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5842,"nodeType":"IfStatement","src":"12095:83:27","trueBody":{"id":5841,"nodeType":"Block","src":"12133:45:27","statements":[{"errorCall":{"arguments":[{"id":5838,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5806,"src":"12165:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5837,"name":"NonceAlreadyUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6580,"src":"12148:16:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":5839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12148:23:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5840,"nodeType":"RevertStatement","src":"12141:30:27"}]}},{"expression":{"id":5857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5843,"name":"_nonceGroups","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4865,"src":"12184:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":5846,"indexExpression":{"id":5844,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5804,"src":"12197:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12184:23:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":5847,"indexExpression":{"id":5845,"name":"groupKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5810,"src":"12208:8:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12184:33:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5848,"name":"group","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5822,"src":"12220:5:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"31","id":5851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12237:1:27","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":5850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12229:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5849,"name":"uint256","nodeType":"ElementaryTypeName","src":"12229:7:27","typeDescriptions":{}}},"id":5852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12229:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":5853,"name":"indexInGroup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5816,"src":"12243:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12229:26:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5855,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12228:28:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12220:36:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12184:72:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5858,"nodeType":"ExpressionStatement","src":"12184:72:27"}]},"documentation":{"id":5802,"nodeType":"StructuredDocumentation","src":"11637:210:27","text":" @notice Marks a nonce as used for the given signatory\n @param signatory  address Address of the signer for which to mark the nonce as used\n @param nonce uint256 Nonce to be marked as used"},"id":5860,"implemented":true,"kind":"function","modifiers":[],"name":"_markNonceAsUsed","nameLocation":"11859:16:27","nodeType":"FunctionDefinition","parameters":{"id":5807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5804,"mutability":"mutable","name":"signatory","nameLocation":"11884:9:27","nodeType":"VariableDeclaration","scope":5860,"src":"11876:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5803,"name":"address","nodeType":"ElementaryTypeName","src":"11876:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5806,"mutability":"mutable","name":"nonce","nameLocation":"11903:5:27","nodeType":"VariableDeclaration","scope":5860,"src":"11895:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5805,"name":"uint256","nodeType":"ElementaryTypeName","src":"11895:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11875:34:27"},"returnParameters":{"id":5808,"nodeType":"ParameterList","parameters":[],"src":"11918:0:27"},"scope":6095,"src":"11850:411:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":5889,"nodeType":"Block","src":"12444:171:27","statements":[{"clauses":[{"block":{"id":5882,"nodeType":"Block","src":"12549:28:27","statements":[{"expression":{"id":5880,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5878,"src":"12564:6:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5867,"id":5881,"nodeType":"Return","src":"12557:13:27"}]},"errorName":"","id":5883,"nodeType":"TryCatchClause","parameters":{"id":5879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5878,"mutability":"mutable","name":"result","nameLocation":"12536:6:27","nodeType":"VariableDeclaration","scope":5883,"src":"12531:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5877,"name":"bool","nodeType":"ElementaryTypeName","src":"12531:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12523:25:27"},"src":"12515:62:27"},{"block":{"id":5886,"nodeType":"Block","src":"12584:27:27","statements":[{"expression":{"hexValue":"66616c7365","id":5884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12599:5:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":5867,"id":5885,"nodeType":"Return","src":"12592:12:27"}]},"errorName":"","id":5887,"nodeType":"TryCatchClause","src":"12578:33:27"}],"externalCall":{"arguments":[{"expression":{"arguments":[{"id":5873,"name":"IERC2981","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":228,"src":"12492:8:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC2981_$228_$","typeString":"type(contract IERC2981)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC2981_$228_$","typeString":"type(contract IERC2981)"}],"id":5872,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12487:4:27","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12487:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC2981_$228","typeString":"type(contract IERC2981)"}},"id":5875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12502:11:27","memberName":"interfaceId","nodeType":"MemberAccess","src":"12487:26:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"id":5869,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5863,"src":"12462:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5868,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3845,"src":"12454:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$3845_$","typeString":"type(contract IERC165)"}},"id":5870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12454:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC165_$3845","typeString":"contract IERC165"}},"id":5871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12469:17:27","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":3844,"src":"12454:32:27","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":5876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12454:60:27","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5888,"nodeType":"TryStatement","src":"12450:161:27"}]},"documentation":{"id":5861,"nodeType":"StructuredDocumentation","src":"12265:106:27","text":" @notice Checks whether a token implements EIP-2981\n @param token address token to check"},"id":5890,"implemented":true,"kind":"function","modifiers":[],"name":"supportsRoyalties","nameLocation":"12383:17:27","nodeType":"FunctionDefinition","parameters":{"id":5864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5863,"mutability":"mutable","name":"token","nameLocation":"12409:5:27","nodeType":"VariableDeclaration","scope":5890,"src":"12401:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5862,"name":"address","nodeType":"ElementaryTypeName","src":"12401:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12400:15:27"},"returnParameters":{"id":5867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5866,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5890,"src":"12438:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5865,"name":"bool","nodeType":"ElementaryTypeName","src":"12438:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12437:6:27"},"scope":6095,"src":"12374:241:27","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":5984,"nodeType":"Block","src":"12771:1097:27","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":5901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5897,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"12833:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12839:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"12833:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12846:4:27","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":6431,"src":"12833:17:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5900,"name":"requiredSenderKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"12854:18:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"12833:39:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5905,"nodeType":"IfStatement","src":"12829:72:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5902,"name":"SenderTokenInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6588,"src":"12881:18:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12881:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5904,"nodeType":"RevertStatement","src":"12874:27:27"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":5906,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"12977:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12983:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"12977:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12990:6:27","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"12977:19:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5909,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"12999:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13005:15:27","memberName":"affiliateAmount","nodeType":"MemberAccess","referencedDeclaration":6507,"src":"12999:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12977:43:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5915,"nodeType":"IfStatement","src":"12973:86:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5912,"name":"AffiliateAmountInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6590,"src":"13035:22:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13035:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5914,"nodeType":"RevertStatement","src":"13028:31:27"}},{"assignments":[5917],"declarations":[{"constant":false,"id":5917,"mutability":"mutable","name":"signatory","nameLocation":"13125:9:27","nodeType":"VariableDeclaration","scope":5984,"src":"13117:17:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5916,"name":"address","nodeType":"ElementaryTypeName","src":"13117:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5921,"initialValue":{"expression":{"expression":{"id":5918,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"13137:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13143:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"13137:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":5920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13150:6:27","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"13137:19:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13117:39:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":5922,"name":"authorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4870,"src":"13166:10:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":5924,"indexExpression":{"id":5923,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"13177:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13166:21:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13199:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13191:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5925,"name":"address","nodeType":"ElementaryTypeName","src":"13191:7:27","typeDescriptions":{}}},"id":5928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13191:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13166:35:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5937,"nodeType":"IfStatement","src":"13162:89:27","trueBody":{"id":5936,"nodeType":"Block","src":"13203:48:27","statements":[{"expression":{"id":5934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5930,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"13211:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":5931,"name":"authorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4870,"src":"13223:10:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":5933,"indexExpression":{"id":5932,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"13234:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13223:21:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13211:33:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5935,"nodeType":"ExpressionStatement","src":"13211:33:27"}]}},{"condition":{"id":5954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13321:147:27","subExpression":{"arguments":[{"id":5940,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"13368:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5942,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"13401:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}],"id":5941,"name":"_getOrderHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6029,"src":"13387:13:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Order_$6514_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct ISwap.Order calldata) view returns (bytes32)"}},"id":5943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13387:20:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":5946,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"13434:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13440:1:27","memberName":"r","nodeType":"MemberAccess","referencedDeclaration":6511,"src":"13434:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":5948,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"13443:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13449:1:27","memberName":"s","nodeType":"MemberAccess","referencedDeclaration":6513,"src":"13443:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":5950,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"13452:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13458:1:27","memberName":"v","nodeType":"MemberAccess","referencedDeclaration":6509,"src":"13452:7:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":5944,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13417:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13421:12:27","memberName":"encodePacked","nodeType":"MemberAccess","src":"13417:16:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13417:43:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5938,"name":"SignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3809,"src":"13322:16:27","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignatureChecker_$3809_$","typeString":"type(library SignatureChecker)"}},"id":5939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13339:19:27","memberName":"isValidSignatureNow","nodeType":"MemberAccess","referencedDeclaration":3756,"src":"13322:36:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes memory) view returns (bool)"}},"id":5953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13322:146:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5958,"nodeType":"IfStatement","src":"13310:186:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5955,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6610,"src":"13482:12:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13482:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5957,"nodeType":"RevertStatement","src":"13475:21:27"}},{"expression":{"arguments":[{"id":5960,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"13584:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5961,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"13595:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13601:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":6495,"src":"13595:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5959,"name":"_markNonceAsUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5860,"src":"13567:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13567:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5964,"nodeType":"ExpressionStatement","src":"13567:40:27"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5965,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"13691:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13697:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":6495,"src":"13691:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":5967,"name":"signatoryMinimumNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4874,"src":"13705:21:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5969,"indexExpression":{"id":5968,"name":"signatory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"13727:9:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13705:32:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13691:46:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5974,"nodeType":"IfStatement","src":"13687:72:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5971,"name":"NonceTooLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6582,"src":"13746:11:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13746:13:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5973,"nodeType":"RevertStatement","src":"13739:20:27"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5975,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5894,"src":"13809:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":5976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13815:6:27","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":6497,"src":"13809:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":5977,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13825:5:27","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13831:9:27","memberName":"timestamp","nodeType":"MemberAccess","src":"13825:15:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13809:31:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5983,"nodeType":"IfStatement","src":"13805:58:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5980,"name":"OrderExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6584,"src":"13849:12:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":5981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13849:14:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5982,"nodeType":"RevertStatement","src":"13842:21:27"}}]},"documentation":{"id":5891,"nodeType":"StructuredDocumentation","src":"12619:103:27","text":" @notice Tests whether signature and signer are valid\n @param order Order to validate"},"id":5985,"implemented":true,"kind":"function","modifiers":[],"name":"_check","nameLocation":"12734:6:27","nodeType":"FunctionDefinition","parameters":{"id":5895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5894,"mutability":"mutable","name":"order","nameLocation":"12756:5:27","nodeType":"VariableDeclaration","scope":5985,"src":"12741:20:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order"},"typeName":{"id":5893,"nodeType":"UserDefinedTypeName","pathNode":{"id":5892,"name":"Order","nameLocations":["12741:5:27"],"nodeType":"IdentifierPath","referencedDeclaration":6514,"src":"12741:5:27"},"referencedDeclaration":6514,"src":"12741:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_storage_ptr","typeString":"struct ISwap.Order"}},"visibility":"internal"}],"src":"12740:22:27"},"returnParameters":{"id":5896,"nodeType":"ParameterList","parameters":[],"src":"12771:0:27"},"scope":6095,"src":"12725:1143:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":6028,"nodeType":"Block","src":"14160:415:27","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":5998,"name":"ORDER_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4839,"src":"14250:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":5999,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5989,"src":"14278:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":6000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14284:5:27","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":6495,"src":"14278:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":6001,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5989,"src":"14303:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":6002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14309:6:27","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":6497,"src":"14303:12:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6003,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4876,"src":"14329:11:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":6007,"name":"PARTY_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4844,"src":"14375:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":6008,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5989,"src":"14391:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":6009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14397:6:27","memberName":"signer","nodeType":"MemberAccess","referencedDeclaration":6500,"src":"14391:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}],"expression":{"id":6005,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14364:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14368:6:27","memberName":"encode","nodeType":"MemberAccess","src":"14364:10:27","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14364:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6004,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14354:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14354:51:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":6015,"name":"PARTY_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4844,"src":"14440:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":6016,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5989,"src":"14456:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":6017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14462:6:27","memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":6503,"src":"14456:12:27","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}],"expression":{"id":6013,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14429:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14433:6:27","memberName":"encode","nodeType":"MemberAccess","src":"14429:10:27","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14429:40:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6012,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14419:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14419:51:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":6020,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5989,"src":"14484:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":6021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14490:15:27","memberName":"affiliateWallet","nodeType":"MemberAccess","referencedDeclaration":6505,"src":"14484:21:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6022,"name":"order","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5989,"src":"14519:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order calldata"}},"id":6023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14525:15:27","memberName":"affiliateAmount","nodeType":"MemberAccess","referencedDeclaration":6507,"src":"14519:21:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5996,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14226:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14230:6:27","memberName":"encode","nodeType":"MemberAccess","src":"14226:10:27","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14226:326:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5995,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"14205:9:27","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14205:357:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5994,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3662,"src":"14179:16:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":6026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14179:391:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5993,"id":6027,"nodeType":"Return","src":"14166:404:27"}]},"documentation":{"id":5986,"nodeType":"StructuredDocumentation","src":"13872:209:27","text":" @notice Hashes an order into bytes32\n @dev EIP-191 header and domain separator included\n @param order Order The order to be hashed\n @return bytes32 A keccak256 abi.encodePacked value"},"id":6029,"implemented":true,"kind":"function","modifiers":[],"name":"_getOrderHash","nameLocation":"14093:13:27","nodeType":"FunctionDefinition","parameters":{"id":5990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5989,"mutability":"mutable","name":"order","nameLocation":"14122:5:27","nodeType":"VariableDeclaration","scope":6029,"src":"14107:20:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order"},"typeName":{"id":5988,"nodeType":"UserDefinedTypeName","pathNode":{"id":5987,"name":"Order","nameLocations":["14107:5:27"],"nodeType":"IdentifierPath","referencedDeclaration":6514,"src":"14107:5:27"},"referencedDeclaration":6514,"src":"14107:5:27","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_storage_ptr","typeString":"struct ISwap.Order"}},"visibility":"internal"}],"src":"14106:22:27"},"returnParameters":{"id":5993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6029,"src":"14151:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5991,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14151:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14150:9:27"},"scope":6095,"src":"14084:491:27","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":6093,"nodeType":"Block","src":"15084:429:27","statements":[{"assignments":[6047],"declarations":[{"constant":false,"id":6047,"mutability":"mutable","name":"adapter","nameLocation":"15099:7:27","nodeType":"VariableDeclaration","scope":6093,"src":"15090:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"},"typeName":{"id":6046,"nodeType":"UserDefinedTypeName","pathNode":{"id":6045,"name":"IAdapter","nameLocations":["15090:8:27"],"nodeType":"IdentifierPath","referencedDeclaration":6490,"src":"15090:8:27"},"referencedDeclaration":6490,"src":"15090:8:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"visibility":"internal"}],"id":6051,"initialValue":{"baseExpression":{"id":6048,"name":"adapters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4885,"src":"15109:8:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_contract$_IAdapter_$6490_$","typeString":"mapping(bytes4 => contract IAdapter)"}},"id":6050,"indexExpression":{"id":6049,"name":"kind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6042,"src":"15118:4:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15109:14:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"nodeType":"VariableDeclarationStatement","src":"15090:33:27"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6054,"name":"adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6047,"src":"15141:7:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}],"id":6053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15133:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6052,"name":"address","nodeType":"ElementaryTypeName","src":"15133:7:27","typeDescriptions":{}}},"id":6055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15133:16:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15161:1:27","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15153:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6056,"name":"address","nodeType":"ElementaryTypeName","src":"15153:7:27","typeDescriptions":{}}},"id":6059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15153:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15133:30:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6064,"nodeType":"IfStatement","src":"15129:61:27","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6061,"name":"TokenKindUnknown","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6600,"src":"15172:16:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":6062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15172:18:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6063,"nodeType":"RevertStatement","src":"15165:25:27"}},{"assignments":[6066,null],"declarations":[{"constant":false,"id":6066,"mutability":"mutable","name":"success","nameLocation":"15267:7:27","nodeType":"VariableDeclaration","scope":6093,"src":"15262:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6065,"name":"bool","nodeType":"ElementaryTypeName","src":"15262:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6084,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":6074,"name":"adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6047,"src":"15349:7:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"id":6075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15357:8:27","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":6489,"src":"15349:16:27","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,uint256,address) external"}},"id":6076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15366:8:27","memberName":"selector","nodeType":"MemberAccess","src":"15349:25:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":6077,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6032,"src":"15384:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6078,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6034,"src":"15398:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6079,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6036,"src":"15410:6:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6080,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6038,"src":"15426:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6081,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6040,"src":"15438:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6072,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15317:3:27","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15321:18:27","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"15317:22:27","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15317:134:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":6069,"name":"adapter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6047,"src":"15288:7:27","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}],"id":6068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15280:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6067,"name":"address","nodeType":"ElementaryTypeName","src":"15280:7:27","typeDescriptions":{}}},"id":6070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15280:16:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15297:12:27","memberName":"delegatecall","nodeType":"MemberAccess","src":"15280:29:27","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":6083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15280:177:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"15261:196:27"},{"condition":{"id":6086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15467:8:27","subExpression":{"id":6085,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6066,"src":"15468:7:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6092,"nodeType":"IfStatement","src":"15463:45:27","trueBody":{"errorCall":{"arguments":[{"id":6088,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6032,"src":"15499:4:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6089,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6034,"src":"15505:2:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6087,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6606,"src":"15484:14:27","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":6090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15484:24:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6091,"nodeType":"RevertStatement","src":"15477:31:27"}}]},"documentation":{"id":6030,"nodeType":"StructuredDocumentation","src":"14579:365:27","text":" @notice Performs token transfer\n @param from address Wallet address to transfer from\n @param to address Wallet address to transfer to\n @param amount uint256 Amount for ERC-20\n @param id uint256 token ID for ERC-721, ERC-1155\n @param token address Contract address of token\n @param kind bytes4 EIP-165 interface ID of the token"},"id":6094,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"14956:9:27","nodeType":"FunctionDefinition","parameters":{"id":6043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6032,"mutability":"mutable","name":"from","nameLocation":"14979:4:27","nodeType":"VariableDeclaration","scope":6094,"src":"14971:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6031,"name":"address","nodeType":"ElementaryTypeName","src":"14971:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6034,"mutability":"mutable","name":"to","nameLocation":"14997:2:27","nodeType":"VariableDeclaration","scope":6094,"src":"14989:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6033,"name":"address","nodeType":"ElementaryTypeName","src":"14989:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6036,"mutability":"mutable","name":"amount","nameLocation":"15013:6:27","nodeType":"VariableDeclaration","scope":6094,"src":"15005:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6035,"name":"uint256","nodeType":"ElementaryTypeName","src":"15005:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6038,"mutability":"mutable","name":"id","nameLocation":"15033:2:27","nodeType":"VariableDeclaration","scope":6094,"src":"15025:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6037,"name":"uint256","nodeType":"ElementaryTypeName","src":"15025:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6040,"mutability":"mutable","name":"token","nameLocation":"15049:5:27","nodeType":"VariableDeclaration","scope":6094,"src":"15041:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6039,"name":"address","nodeType":"ElementaryTypeName","src":"15041:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6042,"mutability":"mutable","name":"kind","nameLocation":"15067:4:27","nodeType":"VariableDeclaration","scope":6094,"src":"15060:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6041,"name":"bytes4","nodeType":"ElementaryTypeName","src":"15060:6:27","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14965:110:27"},"returnParameters":{"id":6044,"nodeType":"ParameterList","parameters":[],"src":"15084:0:27"},"scope":6095,"src":"14947:566:27","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":6096,"src":"425:15090:27","usedErrors":[2598,2600,6572,6574,6576,6580,6582,6584,6586,6588,6590,6592,6594,6598,6600,6606,6608,6610],"usedEvents":[13,126,233,6538,6544,6550,6554,6558,6564,6570]}],"src":"32:15484:27"},"id":27},"contracts/adapters/ERC1155Adapter.sol":{"ast":{"absolutePath":"contracts/adapters/ERC1155Adapter.sol","exportedSymbols":{"ERC1155Adapter":[6204],"IAdapter":[6490],"IERC1155":[375],"IERC165":[3845],"Party":[6436]},"id":6205,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6097,"literals":["solidity","0.8",".23"],"nodeType":"PragmaDirective","src":"33:23:28"},{"absolutePath":"contracts/interfaces/IAdapter.sol","file":"../interfaces/IAdapter.sol","id":6098,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6205,"sourceUnit":6491,"src":"58:36:28","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","id":6099,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6205,"sourceUnit":376,"src":"95:60:28","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6100,"name":"IAdapter","nameLocations":["184:8:28"],"nodeType":"IdentifierPath","referencedDeclaration":6490,"src":"184:8:28"},"id":6101,"nodeType":"InheritanceSpecifier","src":"184:8:28"}],"canonicalName":"ERC1155Adapter","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":6204,"linearizedBaseContracts":[6204,6490],"name":"ERC1155Adapter","nameLocation":"166:14:28","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[6448],"constant":true,"documentation":{"id":6102,"nodeType":"StructuredDocumentation","src":"197:81:28","text":" @notice Indicates the ERC165 interfaceId supported by this adapter"},"functionSelector":"a64d0cd4","id":6105,"mutability":"constant","name":"interfaceId","nameLocation":"304:11:28","nodeType":"VariableDeclaration","scope":6204,"src":"281:47:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6103,"name":"bytes4","nodeType":"ElementaryTypeName","src":"281:6:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30786439623637613236","id":6104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"318:10:28","typeDescriptions":{"typeIdentifier":"t_rational_3652614694_by_1","typeString":"int_const 3652614694"},"value":"0xd9b67a26"},"visibility":"public"},{"baseFunctions":[6457],"body":{"id":6128,"nodeType":"Block","src":"552:97:28","statements":[{"expression":{"arguments":[{"expression":{"id":6119,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6109,"src":"610:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"616:6:28","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"610:12:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":6123,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"632:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"636:6:28","memberName":"sender","nodeType":"MemberAccess","src":"632:10:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"624:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6121,"name":"address","nodeType":"ElementaryTypeName","src":"624:7:28","typeDescriptions":{}}},"id":6125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"624:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":6115,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6109,"src":"580:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"586:5:28","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"580:11:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6114,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"571:8:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$375_$","typeString":"type(contract IERC1155)"}},"id":6117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"571:21:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$375","typeString":"contract IERC1155"}},"id":6118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"593:16:28","memberName":"isApprovedForAll","nodeType":"MemberAccess","referencedDeclaration":344,"src":"571:38:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":6126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"571:73:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6113,"id":6127,"nodeType":"Return","src":"558:86:28"}]},"documentation":{"id":6106,"nodeType":"StructuredDocumentation","src":"333:143:28","text":" @notice Checks allowance on an ERC1155\n @param party Party params to check\n @dev Use call: \"msg.sender\" is Swap contract"},"functionSelector":"3170f63d","id":6129,"implemented":true,"kind":"function","modifiers":[],"name":"hasAllowance","nameLocation":"488:12:28","nodeType":"FunctionDefinition","parameters":{"id":6110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6109,"mutability":"mutable","name":"party","nameLocation":"516:5:28","nodeType":"VariableDeclaration","scope":6129,"src":"501:20:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6108,"nodeType":"UserDefinedTypeName","pathNode":{"id":6107,"name":"Party","nameLocations":["501:5:28"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"501:5:28"},"referencedDeclaration":6436,"src":"501:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"500:22:28"},"returnParameters":{"id":6113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6129,"src":"546:4:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6111,"name":"bool","nodeType":"ElementaryTypeName","src":"546:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"545:6:28"},"scope":6204,"src":"479:170:28","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6466],"body":{"id":6152,"nodeType":"Block","src":"818:95:28","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":6143,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6133,"src":"869:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"875:6:28","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"869:12:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6145,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6133,"src":"883:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"889:2:28","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"883:8:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":6139,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6133,"src":"846:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"852:5:28","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"846:11:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6138,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"837:8:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$375_$","typeString":"type(contract IERC1155)"}},"id":6141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"837:21:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$375","typeString":"contract IERC1155"}},"id":6142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"859:9:28","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":313,"src":"837:31:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":6147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"837:55:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":6148,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6133,"src":"896:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"902:6:28","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"896:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"837:71:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6137,"id":6151,"nodeType":"Return","src":"824:84:28"}]},"documentation":{"id":6130,"nodeType":"StructuredDocumentation","src":"653:91:28","text":" @notice Checks balance on an ERC1155\n @param party Party params to check"},"functionSelector":"d1190df9","id":6153,"implemented":true,"kind":"function","modifiers":[],"name":"hasBalance","nameLocation":"756:10:28","nodeType":"FunctionDefinition","parameters":{"id":6134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6133,"mutability":"mutable","name":"party","nameLocation":"782:5:28","nodeType":"VariableDeclaration","scope":6153,"src":"767:20:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6132,"nodeType":"UserDefinedTypeName","pathNode":{"id":6131,"name":"Party","nameLocations":["767:5:28"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"767:5:28"},"referencedDeclaration":6436,"src":"767:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"766:22:28"},"returnParameters":{"id":6137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6153,"src":"812:4:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6135,"name":"bool","nodeType":"ElementaryTypeName","src":"812:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"811:6:28"},"scope":6204,"src":"747:166:28","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6475],"body":{"id":6168,"nodeType":"Block","src":"1084:37:28","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6162,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6157,"src":"1098:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1104:6:28","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"1098:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":6164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1114:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1098:17:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6166,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1097:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6161,"id":6167,"nodeType":"Return","src":"1090:26:28"}]},"documentation":{"id":6154,"nodeType":"StructuredDocumentation","src":"917:89:28","text":" @notice Checks params for transfer\n @param party Party params to check"},"functionSelector":"40944de9","id":6169,"implemented":true,"kind":"function","modifiers":[],"name":"hasValidParams","nameLocation":"1018:14:28","nodeType":"FunctionDefinition","parameters":{"id":6158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6157,"mutability":"mutable","name":"party","nameLocation":"1048:5:28","nodeType":"VariableDeclaration","scope":6169,"src":"1033:20:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6156,"nodeType":"UserDefinedTypeName","pathNode":{"id":6155,"name":"Party","nameLocations":["1033:5:28"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"1033:5:28"},"referencedDeclaration":6436,"src":"1033:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"1032:22:28"},"returnParameters":{"id":6161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6169,"src":"1078:4:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6159,"name":"bool","nodeType":"ElementaryTypeName","src":"1078:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1077:6:28"},"scope":6204,"src":"1009:112:28","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[6489],"body":{"id":6202,"nodeType":"Block","src":"1622:130:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6183,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6176,"src":"1632:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1642:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1632:11:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6190,"nodeType":"IfStatement","src":"1628:51:28","trueBody":{"errorCall":{"arguments":[{"hexValue":"616d6f756e74","id":6187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1670:8:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895","typeString":"literal_string \"amount\""},"value":"amount"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895","typeString":"literal_string \"amount\""}],"id":6186,"name":"AmountOrIDInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6442,"src":"1652:17:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1652:27:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6189,"nodeType":"RevertStatement","src":"1645:34:28"}},{"expression":{"arguments":[{"id":6195,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6172,"src":"1718:4:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6196,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6174,"src":"1724:2:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6197,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6178,"src":"1728:2:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6198,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6176,"src":"1732:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30783030","id":6199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1740:6:28","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""}],"expression":{"arguments":[{"id":6192,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6180,"src":"1694:5:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6191,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"1685:8:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$375_$","typeString":"type(contract IERC1155)"}},"id":6193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1685:15:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$375","typeString":"contract IERC1155"}},"id":6194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1701:16:28","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":358,"src":"1685:32:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":6200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1685:62:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6201,"nodeType":"ExpressionStatement","src":"1685:62:28"}]},"documentation":{"id":6170,"nodeType":"StructuredDocumentation","src":"1125:374:28","text":" @notice Function to wrap safeTransferFrom for ERC1155\n @param from address Wallet address to transfer from\n @param to address Wallet address to transfer to\n @param amount uint256 Amount for ERC-1155\n @param id uint256 token ID for ERC-1155\n @param token address Contract address of token\n @dev Use delegatecall: \"this\" is Swap contract"},"functionSelector":"47338bc3","id":6203,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1511:8:28","nodeType":"FunctionDefinition","parameters":{"id":6181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6172,"mutability":"mutable","name":"from","nameLocation":"1533:4:28","nodeType":"VariableDeclaration","scope":6203,"src":"1525:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6171,"name":"address","nodeType":"ElementaryTypeName","src":"1525:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6174,"mutability":"mutable","name":"to","nameLocation":"1551:2:28","nodeType":"VariableDeclaration","scope":6203,"src":"1543:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6173,"name":"address","nodeType":"ElementaryTypeName","src":"1543:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6176,"mutability":"mutable","name":"amount","nameLocation":"1567:6:28","nodeType":"VariableDeclaration","scope":6203,"src":"1559:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6175,"name":"uint256","nodeType":"ElementaryTypeName","src":"1559:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6178,"mutability":"mutable","name":"id","nameLocation":"1587:2:28","nodeType":"VariableDeclaration","scope":6203,"src":"1579:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6177,"name":"uint256","nodeType":"ElementaryTypeName","src":"1579:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6180,"mutability":"mutable","name":"token","nameLocation":"1603:5:28","nodeType":"VariableDeclaration","scope":6203,"src":"1595:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6179,"name":"address","nodeType":"ElementaryTypeName","src":"1595:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1519:93:28"},"returnParameters":{"id":6182,"nodeType":"ParameterList","parameters":[],"src":"1622:0:28"},"scope":6204,"src":"1502:250:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6205,"src":"157:1597:28","usedErrors":[6442],"usedEvents":[]}],"src":"33:1722:28"},"id":28},"contracts/adapters/ERC20Adapter.sol":{"ast":{"absolutePath":"contracts/adapters/ERC20Adapter.sol","exportedSymbols":{"Address":[2481],"ERC20Adapter":[6317],"IAdapter":[6490],"IERC20":[453],"IERC20Permit":[489],"Party":[6436],"SafeERC20":[865]},"id":6318,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6206,"literals":["solidity","0.8",".23"],"nodeType":"PragmaDirective","src":"33:23:29"},{"absolutePath":"contracts/interfaces/IAdapter.sol","file":"../interfaces/IAdapter.sol","id":6207,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6318,"sourceUnit":6491,"src":"58:36:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":6208,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6318,"sourceUnit":454,"src":"95:56:29","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":6209,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6318,"sourceUnit":866,"src":"152:65:29","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6210,"name":"IAdapter","nameLocations":["244:8:29"],"nodeType":"IdentifierPath","referencedDeclaration":6490,"src":"244:8:29"},"id":6211,"nodeType":"InheritanceSpecifier","src":"244:8:29"}],"canonicalName":"ERC20Adapter","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":6317,"linearizedBaseContracts":[6317,6490],"name":"ERC20Adapter","nameLocation":"228:12:29","nodeType":"ContractDefinition","nodes":[{"global":false,"id":6215,"libraryName":{"id":6212,"name":"SafeERC20","nameLocations":["263:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":865,"src":"263:9:29"},"nodeType":"UsingForDirective","src":"257:27:29","typeName":{"id":6214,"nodeType":"UserDefinedTypeName","pathNode":{"id":6213,"name":"IERC20","nameLocations":["277:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":453,"src":"277:6:29"},"referencedDeclaration":453,"src":"277:6:29","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}}},{"baseFunctions":[6448],"constant":true,"documentation":{"id":6216,"nodeType":"StructuredDocumentation","src":"287:81:29","text":" @notice Indicates the ERC165 interfaceId supported by this adapter"},"functionSelector":"a64d0cd4","id":6219,"mutability":"constant","name":"interfaceId","nameLocation":"394:11:29","nodeType":"VariableDeclaration","scope":6317,"src":"371:47:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6217,"name":"bytes4","nodeType":"ElementaryTypeName","src":"371:6:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30783336333732623037","id":6218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"408:10:29","typeDescriptions":{"typeIdentifier":"t_rational_909585159_by_1","typeString":"int_const 909585159"},"value":"0x36372b07"},"visibility":"public"},{"baseFunctions":[6457],"body":{"id":6245,"nodeType":"Block","src":"640:110:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":6233,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6223,"src":"689:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"695:6:29","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"689:12:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":6237,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"711:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"715:6:29","memberName":"sender","nodeType":"MemberAccess","src":"711:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"703:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6235,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:29","typeDescriptions":{}}},"id":6239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"703:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":6229,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6223,"src":"666:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"672:5:29","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"666:11:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6228,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"659:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$453_$","typeString":"type(contract IERC20)"}},"id":6231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"659:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":6232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"679:9:29","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":430,"src":"659:29:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":6240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"659:64:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":6241,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6223,"src":"733:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:29","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"733:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"659:86:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6227,"id":6244,"nodeType":"Return","src":"646:99:29"}]},"documentation":{"id":6220,"nodeType":"StructuredDocumentation","src":"423:141:29","text":" @notice Checks allowance on an ERC20\n @param party Party params to check\n @dev Use call: \"msg.sender\" is Swap contract"},"functionSelector":"3170f63d","id":6246,"implemented":true,"kind":"function","modifiers":[],"name":"hasAllowance","nameLocation":"576:12:29","nodeType":"FunctionDefinition","parameters":{"id":6224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6223,"mutability":"mutable","name":"party","nameLocation":"604:5:29","nodeType":"VariableDeclaration","scope":6246,"src":"589:20:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6222,"nodeType":"UserDefinedTypeName","pathNode":{"id":6221,"name":"Party","nameLocations":["589:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"589:5:29"},"referencedDeclaration":6436,"src":"589:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"588:22:29"},"returnParameters":{"id":6227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6246,"src":"634:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6225,"name":"bool","nodeType":"ElementaryTypeName","src":"634:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"633:6:29"},"scope":6317,"src":"567:183:29","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6466],"body":{"id":6267,"nodeType":"Block","src":"917:77:29","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":6260,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6250,"src":"960:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"966:6:29","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"960:12:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"id":6256,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6250,"src":"937:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"943:5:29","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"937:11:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6255,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"930:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$453_$","typeString":"type(contract IERC20)"}},"id":6258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"930:19:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":6259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"950:9:29","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":410,"src":"930:29:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"930:43:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":6263,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6250,"src":"977:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"983:6:29","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"977:12:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:59:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6254,"id":6266,"nodeType":"Return","src":"923:66:29"}]},"documentation":{"id":6247,"nodeType":"StructuredDocumentation","src":"754:89:29","text":" @notice Checks balance on an ERC20\n @param party Party params to check"},"functionSelector":"d1190df9","id":6268,"implemented":true,"kind":"function","modifiers":[],"name":"hasBalance","nameLocation":"855:10:29","nodeType":"FunctionDefinition","parameters":{"id":6251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6250,"mutability":"mutable","name":"party","nameLocation":"881:5:29","nodeType":"VariableDeclaration","scope":6268,"src":"866:20:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6249,"nodeType":"UserDefinedTypeName","pathNode":{"id":6248,"name":"Party","nameLocations":["866:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"866:5:29"},"referencedDeclaration":6436,"src":"866:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"865:22:29"},"returnParameters":{"id":6254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6253,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6268,"src":"911:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6252,"name":"bool","nodeType":"ElementaryTypeName","src":"911:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"910:6:29"},"scope":6317,"src":"846:148:29","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6475],"body":{"id":6283,"nodeType":"Block","src":"1165:33:29","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6277,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6272,"src":"1179:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1185:2:29","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"1179:8:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1191:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1179:13:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6281,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1178:15:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6276,"id":6282,"nodeType":"Return","src":"1171:22:29"}]},"documentation":{"id":6269,"nodeType":"StructuredDocumentation","src":"998:89:29","text":" @notice Checks params for transfer\n @param party Party params to check"},"functionSelector":"40944de9","id":6284,"implemented":true,"kind":"function","modifiers":[],"name":"hasValidParams","nameLocation":"1099:14:29","nodeType":"FunctionDefinition","parameters":{"id":6273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6272,"mutability":"mutable","name":"party","nameLocation":"1129:5:29","nodeType":"VariableDeclaration","scope":6284,"src":"1114:20:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6271,"nodeType":"UserDefinedTypeName","pathNode":{"id":6270,"name":"Party","nameLocations":["1114:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"1114:5:29"},"referencedDeclaration":6436,"src":"1114:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"1113:22:29"},"returnParameters":{"id":6276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6284,"src":"1159:4:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6274,"name":"bool","nodeType":"ElementaryTypeName","src":"1159:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1158:6:29"},"scope":6317,"src":"1090:108:29","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[6489],"body":{"id":6315,"nodeType":"Block","src":"1704:108:29","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6298,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"1714:2:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":6299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1720:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1714:7:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6305,"nodeType":"IfStatement","src":"1710:43:29","trueBody":{"errorCall":{"arguments":[{"hexValue":"6964","id":6302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1748:4:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_a709fd3aa96d9faf770e44a5aef2f4808a6fe3a5ddf546568f36ad3a3873f31d","typeString":"literal_string \"id\""},"value":"id"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a709fd3aa96d9faf770e44a5aef2f4808a6fe3a5ddf546568f36ad3a3873f31d","typeString":"literal_string \"id\""}],"id":6301,"name":"AmountOrIDInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6442,"src":"1730:17:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1730:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6304,"nodeType":"RevertStatement","src":"1723:30:29"}},{"expression":{"arguments":[{"id":6310,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6287,"src":"1790:4:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6311,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6289,"src":"1796:2:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6312,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6291,"src":"1800:6:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6307,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6295,"src":"1766:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6306,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1759:6:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$453_$","typeString":"type(contract IERC20)"}},"id":6308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1759:13:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$453","typeString":"contract IERC20"}},"id":6309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1773:16:29","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":549,"src":"1759:30:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$453_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$453_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":6313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1759:48:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6314,"nodeType":"ExpressionStatement","src":"1759:48:29"}]},"documentation":{"id":6285,"nodeType":"StructuredDocumentation","src":"1202:379:29","text":" @notice Function to wrap safeTransferFrom for ERC20\n @param from address Wallet address to transfer from\n @param to address Wallet address to transfer to\n @param amount uint256 Amount for ERC20\n @param id uint256 ID, must be 0 for this contract\n @param token address Contract address of token\n @dev Use delegatecall: \"this\" is Swap contract"},"functionSelector":"47338bc3","id":6316,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1593:8:29","nodeType":"FunctionDefinition","parameters":{"id":6296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6287,"mutability":"mutable","name":"from","nameLocation":"1615:4:29","nodeType":"VariableDeclaration","scope":6316,"src":"1607:12:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6286,"name":"address","nodeType":"ElementaryTypeName","src":"1607:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6289,"mutability":"mutable","name":"to","nameLocation":"1633:2:29","nodeType":"VariableDeclaration","scope":6316,"src":"1625:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6288,"name":"address","nodeType":"ElementaryTypeName","src":"1625:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6291,"mutability":"mutable","name":"amount","nameLocation":"1649:6:29","nodeType":"VariableDeclaration","scope":6316,"src":"1641:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6290,"name":"uint256","nodeType":"ElementaryTypeName","src":"1641:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6293,"mutability":"mutable","name":"id","nameLocation":"1669:2:29","nodeType":"VariableDeclaration","scope":6316,"src":"1661:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6292,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6295,"mutability":"mutable","name":"token","nameLocation":"1685:5:29","nodeType":"VariableDeclaration","scope":6316,"src":"1677:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6294,"name":"address","nodeType":"ElementaryTypeName","src":"1677:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1601:93:29"},"returnParameters":{"id":6297,"nodeType":"ParameterList","parameters":[],"src":"1704:0:29"},"scope":6317,"src":"1584:228:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6318,"src":"219:1595:29","usedErrors":[6442],"usedEvents":[]}],"src":"33:1782:29"},"id":29},"contracts/adapters/ERC721Adapter.sol":{"ast":{"absolutePath":"contracts/adapters/ERC721Adapter.sol","exportedSymbols":{"ERC721Adapter":[6423],"IAdapter":[6490],"IERC165":[3845],"IERC721":[1908],"Party":[6436]},"id":6424,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6319,"literals":["solidity","0.8",".23"],"nodeType":"PragmaDirective","src":"33:23:30"},{"absolutePath":"contracts/interfaces/IAdapter.sol","file":"../interfaces/IAdapter.sol","id":6320,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6424,"sourceUnit":6491,"src":"58:36:30","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":6321,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6424,"sourceUnit":1909,"src":"95:58:30","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6322,"name":"IAdapter","nameLocations":["181:8:30"],"nodeType":"IdentifierPath","referencedDeclaration":6490,"src":"181:8:30"},"id":6323,"nodeType":"InheritanceSpecifier","src":"181:8:30"}],"canonicalName":"ERC721Adapter","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":6423,"linearizedBaseContracts":[6423,6490],"name":"ERC721Adapter","nameLocation":"164:13:30","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[6448],"constant":true,"documentation":{"id":6324,"nodeType":"StructuredDocumentation","src":"194:81:30","text":" @notice Indicates the ERC165 interfaceId supported by this adapter"},"functionSelector":"a64d0cd4","id":6327,"mutability":"constant","name":"interfaceId","nameLocation":"301:11:30","nodeType":"VariableDeclaration","scope":6423,"src":"278:47:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6325,"name":"bytes4","nodeType":"ElementaryTypeName","src":"278:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"hexValue":"30783830616335386364","id":6326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"315:10:30","typeDescriptions":{"typeIdentifier":"t_rational_2158778573_by_1","typeString":"int_const 2158778573"},"value":"0x80ac58cd"},"visibility":"public"},{"baseFunctions":[6457],"body":{"id":6351,"nodeType":"Block","src":"548:83:30","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":6341,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6331,"src":"594:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"600:2:30","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"594:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":6337,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6331,"src":"569:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"575:5:30","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"569:11:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6336,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"561:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$1908_$","typeString":"type(contract IERC721)"}},"id":6339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"561:20:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$1908","typeString":"contract IERC721"}},"id":6340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"582:11:30","memberName":"getApproved","nodeType":"MemberAccess","referencedDeclaration":1897,"src":"561:32:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":6343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"561:42:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":6346,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"615:3:30","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"619:6:30","memberName":"sender","nodeType":"MemberAccess","src":"615:10:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"607:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6344,"name":"address","nodeType":"ElementaryTypeName","src":"607:7:30","typeDescriptions":{}}},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"607:19:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"561:65:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6335,"id":6350,"nodeType":"Return","src":"554:72:30"}]},"documentation":{"id":6328,"nodeType":"StructuredDocumentation","src":"330:142:30","text":" @notice Checks allowance on an ERC721\n @param party Party params to check\n @dev Use call: \"msg.sender\" is Swap contract"},"functionSelector":"3170f63d","id":6352,"implemented":true,"kind":"function","modifiers":[],"name":"hasAllowance","nameLocation":"484:12:30","nodeType":"FunctionDefinition","parameters":{"id":6332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6331,"mutability":"mutable","name":"party","nameLocation":"512:5:30","nodeType":"VariableDeclaration","scope":6352,"src":"497:20:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6330,"nodeType":"UserDefinedTypeName","pathNode":{"id":6329,"name":"Party","nameLocations":["497:5:30"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"497:5:30"},"referencedDeclaration":6436,"src":"497:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"496:22:30"},"returnParameters":{"id":6335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6352,"src":"542:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6333,"name":"bool","nodeType":"ElementaryTypeName","src":"542:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"541:6:30"},"scope":6423,"src":"475:156:30","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6466],"body":{"id":6373,"nodeType":"Block","src":"799:72:30","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":6366,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6356,"src":"841:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"847:2:30","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":6433,"src":"841:8:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":6362,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6356,"src":"820:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"826:5:30","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":6429,"src":"820:11:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6361,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"812:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$1908_$","typeString":"type(contract IERC721)"}},"id":6364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"812:20:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$1908","typeString":"contract IERC721"}},"id":6365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"833:7:30","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":1841,"src":"812:28:30","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":6368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"812:38:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":6369,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6356,"src":"854:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"860:6:30","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":6427,"src":"854:12:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"812:54:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6360,"id":6372,"nodeType":"Return","src":"805:61:30"}]},"documentation":{"id":6353,"nodeType":"StructuredDocumentation","src":"635:90:30","text":" @notice Checks balance on an ERC721\n @param party Party params to check"},"functionSelector":"d1190df9","id":6374,"implemented":true,"kind":"function","modifiers":[],"name":"hasBalance","nameLocation":"737:10:30","nodeType":"FunctionDefinition","parameters":{"id":6357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6356,"mutability":"mutable","name":"party","nameLocation":"763:5:30","nodeType":"VariableDeclaration","scope":6374,"src":"748:20:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6355,"nodeType":"UserDefinedTypeName","pathNode":{"id":6354,"name":"Party","nameLocations":["748:5:30"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"748:5:30"},"referencedDeclaration":6436,"src":"748:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"747:22:30"},"returnParameters":{"id":6360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6374,"src":"793:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6358,"name":"bool","nodeType":"ElementaryTypeName","src":"793:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"792:6:30"},"scope":6423,"src":"728:143:30","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6475],"body":{"id":6389,"nodeType":"Block","src":"1042:37:30","statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6383,"name":"party","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6378,"src":"1056:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party calldata"}},"id":6384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1062:6:30","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":6435,"src":"1056:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1072:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1056:17:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6387,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1055:19:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6382,"id":6388,"nodeType":"Return","src":"1048:26:30"}]},"documentation":{"id":6375,"nodeType":"StructuredDocumentation","src":"875:89:30","text":" @notice Checks params for transfer\n @param party Party params to check"},"functionSelector":"40944de9","id":6390,"implemented":true,"kind":"function","modifiers":[],"name":"hasValidParams","nameLocation":"976:14:30","nodeType":"FunctionDefinition","parameters":{"id":6379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6378,"mutability":"mutable","name":"party","nameLocation":"1006:5:30","nodeType":"VariableDeclaration","scope":6390,"src":"991:20:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6377,"nodeType":"UserDefinedTypeName","pathNode":{"id":6376,"name":"Party","nameLocations":["991:5:30"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"991:5:30"},"referencedDeclaration":6436,"src":"991:5:30","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"990:22:30"},"returnParameters":{"id":6382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6390,"src":"1036:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6380,"name":"bool","nodeType":"ElementaryTypeName","src":"1036:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1035:6:30"},"scope":6423,"src":"967:112:30","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[6489],"body":{"id":6421,"nodeType":"Block","src":"1580:113:30","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6404,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6397,"src":"1590:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":6405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1600:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1590:11:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6411,"nodeType":"IfStatement","src":"1586:51:30","trueBody":{"errorCall":{"arguments":[{"hexValue":"616d6f756e74","id":6408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1628:8:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895","typeString":"literal_string \"amount\""},"value":"amount"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895","typeString":"literal_string \"amount\""}],"id":6407,"name":"AmountOrIDInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6442,"src":"1610:17:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1610:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6410,"nodeType":"RevertStatement","src":"1603:34:30"}},{"expression":{"arguments":[{"id":6416,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6393,"src":"1675:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6417,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6395,"src":"1681:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6418,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6399,"src":"1685:2:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6413,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6401,"src":"1651:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6412,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1908,"src":"1643:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$1908_$","typeString":"type(contract IERC721)"}},"id":6414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1643:14:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$1908","typeString":"contract IERC721"}},"id":6415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1658:16:30","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1863,"src":"1643:31:30","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":6419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1643:45:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6420,"nodeType":"ExpressionStatement","src":"1643:45:30"}]},"documentation":{"id":6391,"nodeType":"StructuredDocumentation","src":"1083:374:30","text":" @notice Function to wrap safeTransferFrom for ERC721\n @param from address Wallet address to transfer from\n @param to address Wallet address to transfer to\n @param amount uint256, must be 0 for this contract\n @param id uint256 ID for ERC721\n @param token address Contract address of token\n @dev Use delegatecall: \"this\" is Swap contract"},"functionSelector":"47338bc3","id":6422,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1469:8:30","nodeType":"FunctionDefinition","parameters":{"id":6402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6393,"mutability":"mutable","name":"from","nameLocation":"1491:4:30","nodeType":"VariableDeclaration","scope":6422,"src":"1483:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6392,"name":"address","nodeType":"ElementaryTypeName","src":"1483:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6395,"mutability":"mutable","name":"to","nameLocation":"1509:2:30","nodeType":"VariableDeclaration","scope":6422,"src":"1501:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6394,"name":"address","nodeType":"ElementaryTypeName","src":"1501:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6397,"mutability":"mutable","name":"amount","nameLocation":"1525:6:30","nodeType":"VariableDeclaration","scope":6422,"src":"1517:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6396,"name":"uint256","nodeType":"ElementaryTypeName","src":"1517:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6399,"mutability":"mutable","name":"id","nameLocation":"1545:2:30","nodeType":"VariableDeclaration","scope":6422,"src":"1537:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6398,"name":"uint256","nodeType":"ElementaryTypeName","src":"1537:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6401,"mutability":"mutable","name":"token","nameLocation":"1561:5:30","nodeType":"VariableDeclaration","scope":6422,"src":"1553:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6400,"name":"address","nodeType":"ElementaryTypeName","src":"1553:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1477:93:30"},"returnParameters":{"id":6403,"nodeType":"ParameterList","parameters":[],"src":"1580:0:30"},"scope":6423,"src":"1460:233:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6424,"src":"155:1540:30","usedErrors":[6442],"usedEvents":[]}],"src":"33:1663:30"},"id":30},"contracts/interfaces/IAdapter.sol":{"ast":{"absolutePath":"contracts/interfaces/IAdapter.sol","exportedSymbols":{"IAdapter":[6490],"Party":[6436]},"id":6491,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6425,"literals":["solidity","0.8",".23"],"nodeType":"PragmaDirective","src":"33:23:31"},{"canonicalName":"Party","id":6436,"members":[{"constant":false,"id":6427,"mutability":"mutable","name":"wallet","nameLocation":"83:6:31","nodeType":"VariableDeclaration","scope":6436,"src":"75:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6426,"name":"address","nodeType":"ElementaryTypeName","src":"75:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6429,"mutability":"mutable","name":"token","nameLocation":"132:5:31","nodeType":"VariableDeclaration","scope":6436,"src":"124:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6428,"name":"address","nodeType":"ElementaryTypeName","src":"124:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6431,"mutability":"mutable","name":"kind","nameLocation":"181:4:31","nodeType":"VariableDeclaration","scope":6436,"src":"174:11:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6430,"name":"bytes4","nodeType":"ElementaryTypeName","src":"174:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":6433,"mutability":"mutable","name":"id","nameLocation":"226:2:31","nodeType":"VariableDeclaration","scope":6436,"src":"218:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6432,"name":"uint256","nodeType":"ElementaryTypeName","src":"218:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6435,"mutability":"mutable","name":"amount","nameLocation":"270:6:31","nodeType":"VariableDeclaration","scope":6436,"src":"262:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6434,"name":"uint256","nodeType":"ElementaryTypeName","src":"262:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Party","nameLocation":"65:5:31","nodeType":"StructDefinition","scope":6491,"src":"58:254:31","visibility":"public"},{"abstract":false,"baseContracts":[],"canonicalName":"IAdapter","contractDependencies":[],"contractKind":"interface","documentation":{"id":6437,"nodeType":"StructuredDocumentation","src":"314:59:31","text":" @title IAdapter: Adapter for various token kinds"},"fullyImplemented":false,"id":6490,"linearizedBaseContracts":[6490],"name":"IAdapter","nameLocation":"384:8:31","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6438,"nodeType":"StructuredDocumentation","src":"397:70:31","text":" @notice Revert if provided an invalid transfer argument"},"errorSelector":"94d40be7","id":6442,"name":"AmountOrIDInvalid","nameLocation":"476:17:31","nodeType":"ErrorDefinition","parameters":{"id":6441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6440,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6442,"src":"494:6:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6439,"name":"string","nodeType":"ElementaryTypeName","src":"494:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"493:8:31"},"src":"470:32:31"},{"documentation":{"id":6443,"nodeType":"StructuredDocumentation","src":"506:74:31","text":" @notice Return the ERC165 interfaceId this adapter supports"},"functionSelector":"a64d0cd4","id":6448,"implemented":false,"kind":"function","modifiers":[],"name":"interfaceId","nameLocation":"592:11:31","nodeType":"FunctionDefinition","parameters":{"id":6444,"nodeType":"ParameterList","parameters":[],"src":"603:2:31"},"returnParameters":{"id":6447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6446,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6448,"src":"629:6:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6445,"name":"bytes4","nodeType":"ElementaryTypeName","src":"629:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"628:8:31"},"scope":6490,"src":"583:54:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6449,"nodeType":"StructuredDocumentation","src":"641:90:31","text":" @notice Checks allowance on a token\n @param party Party params to check"},"functionSelector":"3170f63d","id":6457,"implemented":false,"kind":"function","modifiers":[],"name":"hasAllowance","nameLocation":"743:12:31","nodeType":"FunctionDefinition","parameters":{"id":6453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6452,"mutability":"mutable","name":"party","nameLocation":"771:5:31","nodeType":"VariableDeclaration","scope":6457,"src":"756:20:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6451,"nodeType":"UserDefinedTypeName","pathNode":{"id":6450,"name":"Party","nameLocations":["756:5:31"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"756:5:31"},"referencedDeclaration":6436,"src":"756:5:31","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"755:22:31"},"returnParameters":{"id":6456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6457,"src":"801:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6454,"name":"bool","nodeType":"ElementaryTypeName","src":"801:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"800:6:31"},"scope":6490,"src":"734:73:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6458,"nodeType":"StructuredDocumentation","src":"811:88:31","text":" @notice Checks balance on a token\n @param party Party params to check"},"functionSelector":"d1190df9","id":6466,"implemented":false,"kind":"function","modifiers":[],"name":"hasBalance","nameLocation":"911:10:31","nodeType":"FunctionDefinition","parameters":{"id":6462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6461,"mutability":"mutable","name":"party","nameLocation":"937:5:31","nodeType":"VariableDeclaration","scope":6466,"src":"922:20:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6460,"nodeType":"UserDefinedTypeName","pathNode":{"id":6459,"name":"Party","nameLocations":["922:5:31"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"922:5:31"},"referencedDeclaration":6436,"src":"922:5:31","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"921:22:31"},"returnParameters":{"id":6465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6466,"src":"967:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6463,"name":"bool","nodeType":"ElementaryTypeName","src":"967:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"966:6:31"},"scope":6490,"src":"902:71:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6467,"nodeType":"StructuredDocumentation","src":"977:89:31","text":" @notice Checks params for transfer\n @param party Party params to check"},"functionSelector":"40944de9","id":6475,"implemented":false,"kind":"function","modifiers":[],"name":"hasValidParams","nameLocation":"1078:14:31","nodeType":"FunctionDefinition","parameters":{"id":6471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6470,"mutability":"mutable","name":"party","nameLocation":"1108:5:31","nodeType":"VariableDeclaration","scope":6475,"src":"1093:20:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_calldata_ptr","typeString":"struct Party"},"typeName":{"id":6469,"nodeType":"UserDefinedTypeName","pathNode":{"id":6468,"name":"Party","nameLocations":["1093:5:31"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"1093:5:31"},"referencedDeclaration":6436,"src":"1093:5:31","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"}],"src":"1092:22:31"},"returnParameters":{"id":6474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6475,"src":"1138:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6472,"name":"bool","nodeType":"ElementaryTypeName","src":"1138:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1137:6:31"},"scope":6490,"src":"1069:75:31","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":6476,"nodeType":"StructuredDocumentation","src":"1148:323:31","text":" @notice Function to wrap token transfer for different token types\n @param from address Wallet address to transfer from\n @param to address Wallet address to transfer to\n @param amount uint256 Amount for ERC-20\n @param id token ID for ERC-721\n @param token address Contract address of token"},"functionSelector":"47338bc3","id":6489,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1483:8:31","nodeType":"FunctionDefinition","parameters":{"id":6487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6478,"mutability":"mutable","name":"from","nameLocation":"1505:4:31","nodeType":"VariableDeclaration","scope":6489,"src":"1497:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6477,"name":"address","nodeType":"ElementaryTypeName","src":"1497:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6480,"mutability":"mutable","name":"to","nameLocation":"1523:2:31","nodeType":"VariableDeclaration","scope":6489,"src":"1515:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6479,"name":"address","nodeType":"ElementaryTypeName","src":"1515:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6482,"mutability":"mutable","name":"amount","nameLocation":"1539:6:31","nodeType":"VariableDeclaration","scope":6489,"src":"1531:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6481,"name":"uint256","nodeType":"ElementaryTypeName","src":"1531:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6484,"mutability":"mutable","name":"id","nameLocation":"1559:2:31","nodeType":"VariableDeclaration","scope":6489,"src":"1551:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6483,"name":"uint256","nodeType":"ElementaryTypeName","src":"1551:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6486,"mutability":"mutable","name":"token","nameLocation":"1575:5:31","nodeType":"VariableDeclaration","scope":6489,"src":"1567:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6485,"name":"address","nodeType":"ElementaryTypeName","src":"1567:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1491:93:31"},"returnParameters":{"id":6488,"nodeType":"ParameterList","parameters":[],"src":"1593:0:31"},"scope":6490,"src":"1474:120:31","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6491,"src":"374:1222:31","usedErrors":[6442],"usedEvents":[]}],"src":"33:1564:31"},"id":31},"contracts/interfaces/ISwap.sol":{"ast":{"absolutePath":"contracts/interfaces/ISwap.sol","exportedSymbols":{"IAdapter":[6490],"ISwap":[6682],"Party":[6436]},"id":6683,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6492,"literals":["solidity","0.8",".23"],"nodeType":"PragmaDirective","src":"32:23:32"},{"absolutePath":"contracts/interfaces/IAdapter.sol","file":"./IAdapter.sol","id":6493,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6683,"sourceUnit":6491,"src":"57:24:32","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ISwap","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6682,"linearizedBaseContracts":[6682],"name":"ISwap","nameLocation":"93:5:32","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ISwap.Order","id":6514,"members":[{"constant":false,"id":6495,"mutability":"mutable","name":"nonce","nameLocation":"130:5:32","nodeType":"VariableDeclaration","scope":6514,"src":"122:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6494,"name":"uint256","nodeType":"ElementaryTypeName","src":"122:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6497,"mutability":"mutable","name":"expiry","nameLocation":"190:6:32","nodeType":"VariableDeclaration","scope":6514,"src":"182:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6496,"name":"uint256","nodeType":"ElementaryTypeName","src":"182:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6500,"mutability":"mutable","name":"signer","nameLocation":"250:6:32","nodeType":"VariableDeclaration","scope":6514,"src":"244:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"},"typeName":{"id":6499,"nodeType":"UserDefinedTypeName","pathNode":{"id":6498,"name":"Party","nameLocations":["244:5:32"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"244:5:32"},"referencedDeclaration":6436,"src":"244:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"},{"constant":false,"id":6503,"mutability":"mutable","name":"sender","nameLocation":"305:6:32","nodeType":"VariableDeclaration","scope":6514,"src":"299:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"},"typeName":{"id":6502,"nodeType":"UserDefinedTypeName","pathNode":{"id":6501,"name":"Party","nameLocations":["299:5:32"],"nodeType":"IdentifierPath","referencedDeclaration":6436,"src":"299:5:32"},"referencedDeclaration":6436,"src":"299:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_Party_$6436_storage_ptr","typeString":"struct Party"}},"visibility":"internal"},{"constant":false,"id":6505,"mutability":"mutable","name":"affiliateWallet","nameLocation":"365:15:32","nodeType":"VariableDeclaration","scope":6514,"src":"357:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6504,"name":"address","nodeType":"ElementaryTypeName","src":"357:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6507,"mutability":"mutable","name":"affiliateAmount","nameLocation":"438:15:32","nodeType":"VariableDeclaration","scope":6514,"src":"430:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6506,"name":"uint256","nodeType":"ElementaryTypeName","src":"430:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6509,"mutability":"mutable","name":"v","nameLocation":"465:1:32","nodeType":"VariableDeclaration","scope":6514,"src":"459:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":6508,"name":"uint8","nodeType":"ElementaryTypeName","src":"459:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":6511,"mutability":"mutable","name":"r","nameLocation":"489:1:32","nodeType":"VariableDeclaration","scope":6514,"src":"481:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"481:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6513,"mutability":"mutable","name":"s","nameLocation":"504:1:32","nodeType":"VariableDeclaration","scope":6514,"src":"496:9:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"496:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Order","nameLocation":"110:5:32","nodeType":"StructDefinition","scope":6682,"src":"103:407:32","visibility":"public"},{"anonymous":false,"eventSelector":"182e847dc18073123e8aa17e204b9e3874caf71387e52fe3083ffb98716d3d6b","id":6538,"name":"Swap","nameLocation":"520:4:32","nodeType":"EventDefinition","parameters":{"id":6537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6516,"indexed":true,"mutability":"mutable","name":"nonce","nameLocation":"546:5:32","nodeType":"VariableDeclaration","scope":6538,"src":"530:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6515,"name":"uint256","nodeType":"ElementaryTypeName","src":"530:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6518,"indexed":true,"mutability":"mutable","name":"signerWallet","nameLocation":"573:12:32","nodeType":"VariableDeclaration","scope":6538,"src":"557:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6517,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6520,"indexed":false,"mutability":"mutable","name":"signerAmount","nameLocation":"599:12:32","nodeType":"VariableDeclaration","scope":6538,"src":"591:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6519,"name":"uint256","nodeType":"ElementaryTypeName","src":"591:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6522,"indexed":false,"mutability":"mutable","name":"signerId","nameLocation":"625:8:32","nodeType":"VariableDeclaration","scope":6538,"src":"617:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6521,"name":"uint256","nodeType":"ElementaryTypeName","src":"617:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6524,"indexed":false,"mutability":"mutable","name":"signerToken","nameLocation":"647:11:32","nodeType":"VariableDeclaration","scope":6538,"src":"639:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6523,"name":"address","nodeType":"ElementaryTypeName","src":"639:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6526,"indexed":true,"mutability":"mutable","name":"senderWallet","nameLocation":"680:12:32","nodeType":"VariableDeclaration","scope":6538,"src":"664:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6525,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6528,"indexed":false,"mutability":"mutable","name":"senderAmount","nameLocation":"706:12:32","nodeType":"VariableDeclaration","scope":6538,"src":"698:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6527,"name":"uint256","nodeType":"ElementaryTypeName","src":"698:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6530,"indexed":false,"mutability":"mutable","name":"senderId","nameLocation":"732:8:32","nodeType":"VariableDeclaration","scope":6538,"src":"724:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6529,"name":"uint256","nodeType":"ElementaryTypeName","src":"724:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6532,"indexed":false,"mutability":"mutable","name":"senderToken","nameLocation":"754:11:32","nodeType":"VariableDeclaration","scope":6538,"src":"746:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6531,"name":"address","nodeType":"ElementaryTypeName","src":"746:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6534,"indexed":false,"mutability":"mutable","name":"affiliateWallet","nameLocation":"779:15:32","nodeType":"VariableDeclaration","scope":6538,"src":"771:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6533,"name":"address","nodeType":"ElementaryTypeName","src":"771:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6536,"indexed":false,"mutability":"mutable","name":"affiliateAmount","nameLocation":"808:15:32","nodeType":"VariableDeclaration","scope":6538,"src":"800:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6535,"name":"uint256","nodeType":"ElementaryTypeName","src":"800:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"524:303:32"},"src":"514:314:32"},{"anonymous":false,"eventSelector":"8dd3c361eb2366ff27c2db0eb07b9261f1d052570742ab8c9a0c326f37aa576d","id":6544,"name":"Cancel","nameLocation":"837:6:32","nodeType":"EventDefinition","parameters":{"id":6543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6540,"indexed":true,"mutability":"mutable","name":"nonce","nameLocation":"860:5:32","nodeType":"VariableDeclaration","scope":6544,"src":"844:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6539,"name":"uint256","nodeType":"ElementaryTypeName","src":"844:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6542,"indexed":true,"mutability":"mutable","name":"signerWallet","nameLocation":"883:12:32","nodeType":"VariableDeclaration","scope":6544,"src":"867:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6541,"name":"address","nodeType":"ElementaryTypeName","src":"867:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"843:53:32"},"src":"831:66:32"},{"anonymous":false,"eventSelector":"863123978d9b13946753a916c935c0688a01802440d3ffc668d04d2720c4e110","id":6550,"name":"CancelUpTo","nameLocation":"906:10:32","nodeType":"EventDefinition","parameters":{"id":6549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6546,"indexed":true,"mutability":"mutable","name":"nonce","nameLocation":"933:5:32","nodeType":"VariableDeclaration","scope":6550,"src":"917:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6545,"name":"uint256","nodeType":"ElementaryTypeName","src":"917:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6548,"indexed":true,"mutability":"mutable","name":"signerWallet","nameLocation":"956:12:32","nodeType":"VariableDeclaration","scope":6550,"src":"940:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6547,"name":"address","nodeType":"ElementaryTypeName","src":"940:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"916:53:32"},"src":"900:70:32"},{"anonymous":false,"eventSelector":"dc0410a296e1e33943a772020d333d5f99319d7fcad932a484c53889f7aaa2b1","id":6554,"name":"SetProtocolFee","nameLocation":"979:14:32","nodeType":"EventDefinition","parameters":{"id":6553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6552,"indexed":false,"mutability":"mutable","name":"protocolFee","nameLocation":"1002:11:32","nodeType":"VariableDeclaration","scope":6554,"src":"994:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6551,"name":"uint256","nodeType":"ElementaryTypeName","src":"994:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"993:21:32"},"src":"973:42:32"},{"anonymous":false,"eventSelector":"8b2a800ce9e2e7ccdf4741ae0e41b1f16983192291080ae3b78ac4296ddf598a","id":6558,"name":"SetProtocolFeeWallet","nameLocation":"1024:20:32","nodeType":"EventDefinition","parameters":{"id":6557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6556,"indexed":true,"mutability":"mutable","name":"feeWallet","nameLocation":"1061:9:32","nodeType":"VariableDeclaration","scope":6558,"src":"1045:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6555,"name":"address","nodeType":"ElementaryTypeName","src":"1045:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1044:27:32"},"src":"1018:54:32"},{"anonymous":false,"eventSelector":"30468de898bda644e26bab66e5a2241a3aa6aaf527257f5ca54e0f65204ba14a","id":6564,"name":"Authorize","nameLocation":"1081:9:32","nodeType":"EventDefinition","parameters":{"id":6563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6560,"indexed":true,"mutability":"mutable","name":"signer","nameLocation":"1107:6:32","nodeType":"VariableDeclaration","scope":6564,"src":"1091:22:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6559,"name":"address","nodeType":"ElementaryTypeName","src":"1091:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6562,"indexed":true,"mutability":"mutable","name":"signerWallet","nameLocation":"1131:12:32","nodeType":"VariableDeclaration","scope":6564,"src":"1115:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6561,"name":"address","nodeType":"ElementaryTypeName","src":"1115:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1090:54:32"},"src":"1075:70:32"},{"anonymous":false,"eventSelector":"d7426110292f20fe59e73ccf52124e0f5440a756507c91c7b0a6c50e1eb1a23a","id":6570,"name":"Revoke","nameLocation":"1154:6:32","nodeType":"EventDefinition","parameters":{"id":6569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6566,"indexed":true,"mutability":"mutable","name":"signer","nameLocation":"1177:6:32","nodeType":"VariableDeclaration","scope":6570,"src":"1161:22:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6565,"name":"address","nodeType":"ElementaryTypeName","src":"1161:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6568,"indexed":true,"mutability":"mutable","name":"signerWallet","nameLocation":"1201:12:32","nodeType":"VariableDeclaration","scope":6570,"src":"1185:28:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6567,"name":"address","nodeType":"ElementaryTypeName","src":"1185:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1160:54:32"},"src":"1148:67:32"},{"errorSelector":"b2c4ea1c","id":6572,"name":"AdaptersInvalid","nameLocation":"1225:15:32","nodeType":"ErrorDefinition","parameters":{"id":6571,"nodeType":"ParameterList","parameters":[],"src":"1240:2:32"},"src":"1219:24:32"},{"errorSelector":"52dadcf9","id":6574,"name":"FeeInvalid","nameLocation":"1252:10:32","nodeType":"ErrorDefinition","parameters":{"id":6573,"nodeType":"ParameterList","parameters":[],"src":"1262:2:32"},"src":"1246:19:32"},{"errorSelector":"6b8df363","id":6576,"name":"FeeWalletInvalid","nameLocation":"1274:16:32","nodeType":"ErrorDefinition","parameters":{"id":6575,"nodeType":"ParameterList","parameters":[],"src":"1290:2:32"},"src":"1268:25:32"},{"errorSelector":"91cab504","id":6580,"name":"NonceAlreadyUsed","nameLocation":"1302:16:32","nodeType":"ErrorDefinition","parameters":{"id":6579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6580,"src":"1319:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6577,"name":"uint256","nodeType":"ElementaryTypeName","src":"1319:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1318:9:32"},"src":"1296:32:32"},{"errorSelector":"d24d82a4","id":6582,"name":"NonceTooLow","nameLocation":"1337:11:32","nodeType":"ErrorDefinition","parameters":{"id":6581,"nodeType":"ParameterList","parameters":[],"src":"1348:2:32"},"src":"1331:20:32"},{"errorSelector":"c56873ba","id":6584,"name":"OrderExpired","nameLocation":"1360:12:32","nodeType":"ErrorDefinition","parameters":{"id":6583,"nodeType":"ParameterList","parameters":[],"src":"1372:2:32"},"src":"1354:21:32"},{"errorSelector":"a7202ef6","id":6586,"name":"SenderInvalid","nameLocation":"1384:13:32","nodeType":"ErrorDefinition","parameters":{"id":6585,"nodeType":"ParameterList","parameters":[],"src":"1397:2:32"},"src":"1378:22:32"},{"errorSelector":"d0bd721a","id":6588,"name":"SenderTokenInvalid","nameLocation":"1409:18:32","nodeType":"ErrorDefinition","parameters":{"id":6587,"nodeType":"ParameterList","parameters":[],"src":"1427:2:32"},"src":"1403:27:32"},{"errorSelector":"3b71bbca","id":6590,"name":"AffiliateAmountInvalid","nameLocation":"1439:22:32","nodeType":"ErrorDefinition","parameters":{"id":6589,"nodeType":"ParameterList","parameters":[],"src":"1461:2:32"},"src":"1433:31:32"},{"errorSelector":"37e8456b","id":6592,"name":"SignatureInvalid","nameLocation":"1473:16:32","nodeType":"ErrorDefinition","parameters":{"id":6591,"nodeType":"ParameterList","parameters":[],"src":"1489:2:32"},"src":"1467:25:32"},{"errorSelector":"cd4b78cf","id":6594,"name":"SignatoryInvalid","nameLocation":"1501:16:32","nodeType":"ErrorDefinition","parameters":{"id":6593,"nodeType":"ParameterList","parameters":[],"src":"1517:2:32"},"src":"1495:25:32"},{"errorSelector":"9c08743a","id":6598,"name":"RoyaltyExceedsMax","nameLocation":"1529:17:32","nodeType":"ErrorDefinition","parameters":{"id":6597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6598,"src":"1547:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6595,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1546:9:32"},"src":"1523:33:32"},{"errorSelector":"33c8207c","id":6600,"name":"TokenKindUnknown","nameLocation":"1565:16:32","nodeType":"ErrorDefinition","parameters":{"id":6599,"nodeType":"ParameterList","parameters":[],"src":"1581:2:32"},"src":"1559:25:32"},{"errorSelector":"523c3aaa","id":6606,"name":"TransferFailed","nameLocation":"1593:14:32","nodeType":"ErrorDefinition","parameters":{"id":6605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6606,"src":"1608:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6601,"name":"address","nodeType":"ElementaryTypeName","src":"1608:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6606,"src":"1617:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6603,"name":"address","nodeType":"ElementaryTypeName","src":"1617:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1607:18:32"},"src":"1587:39:32"},{"errorSelector":"9e7fe839","id":6608,"name":"SignatoryUnauthorized","nameLocation":"1635:21:32","nodeType":"ErrorDefinition","parameters":{"id":6607,"nodeType":"ParameterList","parameters":[],"src":"1656:2:32"},"src":"1629:30:32"},{"errorSelector":"82b42900","id":6610,"name":"Unauthorized","nameLocation":"1668:12:32","nodeType":"ErrorDefinition","parameters":{"id":6609,"nodeType":"ParameterList","parameters":[],"src":"1680:2:32"},"src":"1662:21:32"},{"functionSelector":"48542105","id":6620,"implemented":false,"kind":"function","modifiers":[],"name":"swap","nameLocation":"1696:4:32","nodeType":"FunctionDefinition","parameters":{"id":6618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6612,"mutability":"mutable","name":"recipient","nameLocation":"1714:9:32","nodeType":"VariableDeclaration","scope":6620,"src":"1706:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6611,"name":"address","nodeType":"ElementaryTypeName","src":"1706:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6614,"mutability":"mutable","name":"maxRoyalty","nameLocation":"1737:10:32","nodeType":"VariableDeclaration","scope":6620,"src":"1729:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6613,"name":"uint256","nodeType":"ElementaryTypeName","src":"1729:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6617,"mutability":"mutable","name":"order","nameLocation":"1768:5:32","nodeType":"VariableDeclaration","scope":6620,"src":"1753:20:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order"},"typeName":{"id":6616,"nodeType":"UserDefinedTypeName","pathNode":{"id":6615,"name":"Order","nameLocations":["1753:5:32"],"nodeType":"IdentifierPath","referencedDeclaration":6514,"src":"1753:5:32"},"referencedDeclaration":6514,"src":"1753:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_storage_ptr","typeString":"struct ISwap.Order"}},"visibility":"internal"}],"src":"1700:77:32"},"returnParameters":{"id":6619,"nodeType":"ParameterList","parameters":[],"src":"1786:0:32"},"scope":6682,"src":"1687:100:32","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2e340823","id":6626,"implemented":false,"kind":"function","modifiers":[],"name":"cancel","nameLocation":"1800:6:32","nodeType":"FunctionDefinition","parameters":{"id":6624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6623,"mutability":"mutable","name":"nonces","nameLocation":"1826:6:32","nodeType":"VariableDeclaration","scope":6626,"src":"1807:25:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6621,"name":"uint256","nodeType":"ElementaryTypeName","src":"1807:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6622,"nodeType":"ArrayTypeName","src":"1807:9:32","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1806:27:32"},"returnParameters":{"id":6625,"nodeType":"ParameterList","parameters":[],"src":"1842:0:32"},"scope":6682,"src":"1791:52:32","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3c641910","id":6631,"implemented":false,"kind":"function","modifiers":[],"name":"cancelUpTo","nameLocation":"1856:10:32","nodeType":"FunctionDefinition","parameters":{"id":6629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6628,"mutability":"mutable","name":"minimumNonce","nameLocation":"1875:12:32","nodeType":"VariableDeclaration","scope":6631,"src":"1867:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6627,"name":"uint256","nodeType":"ElementaryTypeName","src":"1867:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1866:22:32"},"returnParameters":{"id":6630,"nodeType":"ParameterList","parameters":[],"src":"1897:0:32"},"scope":6682,"src":"1847:51:32","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"49b8a932","id":6642,"implemented":false,"kind":"function","modifiers":[],"name":"check","nameLocation":"1911:5:32","nodeType":"FunctionDefinition","parameters":{"id":6637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6642,"src":"1922:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6632,"name":"address","nodeType":"ElementaryTypeName","src":"1922:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6642,"src":"1935:14:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_calldata_ptr","typeString":"struct ISwap.Order"},"typeName":{"id":6635,"nodeType":"UserDefinedTypeName","pathNode":{"id":6634,"name":"Order","nameLocations":["1935:5:32"],"nodeType":"IdentifierPath","referencedDeclaration":6514,"src":"1935:5:32"},"referencedDeclaration":6514,"src":"1935:5:32","typeDescriptions":{"typeIdentifier":"t_struct$_Order_$6514_storage_ptr","typeString":"struct ISwap.Order"}},"visibility":"internal"}],"src":"1916:37:32"},"returnParameters":{"id":6641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6642,"src":"1977:16:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1977:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6639,"nodeType":"ArrayTypeName","src":"1977:9:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1976:18:32"},"scope":6682,"src":"1902:93:32","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1647795e","id":6651,"implemented":false,"kind":"function","modifiers":[],"name":"nonceUsed","nameLocation":"2008:9:32","nodeType":"FunctionDefinition","parameters":{"id":6647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6651,"src":"2018:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6643,"name":"address","nodeType":"ElementaryTypeName","src":"2018:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6651,"src":"2027:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6645,"name":"uint256","nodeType":"ElementaryTypeName","src":"2027:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2017:18:32"},"returnParameters":{"id":6650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6651,"src":"2059:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6648,"name":"bool","nodeType":"ElementaryTypeName","src":"2059:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2058:6:32"},"scope":6682,"src":"1999:66:32","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b6a5d7de","id":6656,"implemented":false,"kind":"function","modifiers":[],"name":"authorize","nameLocation":"2078:9:32","nodeType":"FunctionDefinition","parameters":{"id":6654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6653,"mutability":"mutable","name":"sender","nameLocation":"2096:6:32","nodeType":"VariableDeclaration","scope":6656,"src":"2088:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6652,"name":"address","nodeType":"ElementaryTypeName","src":"2088:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2087:16:32"},"returnParameters":{"id":6655,"nodeType":"ParameterList","parameters":[],"src":"2112:0:32"},"scope":6682,"src":"2069:44:32","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b6549f75","id":6659,"implemented":false,"kind":"function","modifiers":[],"name":"revoke","nameLocation":"2126:6:32","nodeType":"FunctionDefinition","parameters":{"id":6657,"nodeType":"ParameterList","parameters":[],"src":"2132:2:32"},"returnParameters":{"id":6658,"nodeType":"ParameterList","parameters":[],"src":"2143:0:32"},"scope":6682,"src":"2117:27:32","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6e038752","id":6667,"implemented":false,"kind":"function","modifiers":[],"name":"adapters","nameLocation":"2157:8:32","nodeType":"FunctionDefinition","parameters":{"id":6662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6667,"src":"2166:6:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6660,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2166:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2165:8:32"},"returnParameters":{"id":6666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6665,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6667,"src":"2197:8:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"},"typeName":{"id":6664,"nodeType":"UserDefinedTypeName","pathNode":{"id":6663,"name":"IAdapter","nameLocations":["2197:8:32"],"nodeType":"IdentifierPath","referencedDeclaration":6490,"src":"2197:8:32"},"referencedDeclaration":6490,"src":"2197:8:32","typeDescriptions":{"typeIdentifier":"t_contract$_IAdapter_$6490","typeString":"contract IAdapter"}},"visibility":"internal"}],"src":"2196:10:32"},"scope":6682,"src":"2148:59:32","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b9181611","id":6674,"implemented":false,"kind":"function","modifiers":[],"name":"authorized","nameLocation":"2220:10:32","nodeType":"FunctionDefinition","parameters":{"id":6670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6674,"src":"2231:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6668,"name":"address","nodeType":"ElementaryTypeName","src":"2231:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2230:9:32"},"returnParameters":{"id":6673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6674,"src":"2263:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6671,"name":"address","nodeType":"ElementaryTypeName","src":"2263:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2262:9:32"},"scope":6682,"src":"2211:61:32","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b0dd4943","id":6681,"implemented":false,"kind":"function","modifiers":[],"name":"signatoryMinimumNonce","nameLocation":"2285:21:32","nodeType":"FunctionDefinition","parameters":{"id":6677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6681,"src":"2307:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6675,"name":"address","nodeType":"ElementaryTypeName","src":"2307:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2306:9:32"},"returnParameters":{"id":6680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6681,"src":"2339:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6678,"name":"uint256","nodeType":"ElementaryTypeName","src":"2339:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2338:9:32"},"scope":6682,"src":"2276:72:32","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6683,"src":"83:2267:32","usedErrors":[6572,6574,6576,6580,6582,6584,6586,6588,6590,6592,6594,6598,6600,6606,6608,6610],"usedEvents":[6538,6544,6550,6554,6558,6564,6570]}],"src":"32:2319:32"},"id":32},"contracts/test/ERC721Royalty.sol":{"ast":{"absolutePath":"contracts/test/ERC721Royalty.sol","exportedSymbols":{"Address":[2481],"Context":[2511],"Counters":[2585],"ERC165":[3833],"ERC2981":[2151],"ERC721":[1792],"ERC721Royalty":[6813],"IERC165":[3845],"IERC2981":[228],"IERC721":[1908],"IERC721Metadata":[1953],"IERC721Receiver":[1926],"Math":[4711],"Ownable":[112],"SignedMath":[4816],"Strings":[3140]},"id":6814,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6684,"literals":["solidity","0.8",".23"],"nodeType":"PragmaDirective","src":"32:23:33"},{"absolutePath":"@openzeppelin/contracts/token/common/ERC2981.sol","file":"@openzeppelin/contracts/token/common/ERC2981.sol","id":6685,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6814,"sourceUnit":2152,"src":"57:58:33","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"@openzeppelin/contracts/token/ERC721/ERC721.sol","id":6686,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6814,"sourceUnit":1793,"src":"116:57:33","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":6687,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6814,"sourceUnit":113,"src":"174:52:33","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Counters.sol","file":"@openzeppelin/contracts/utils/Counters.sol","id":6688,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6814,"sourceUnit":2586,"src":"227:52:33","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6689,"name":"ERC2981","nameLocations":["307:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":2151,"src":"307:7:33"},"id":6690,"nodeType":"InheritanceSpecifier","src":"307:7:33"},{"baseName":{"id":6691,"name":"ERC721","nameLocations":["316:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":1792,"src":"316:6:33"},"id":6692,"nodeType":"InheritanceSpecifier","src":"316:6:33"},{"baseName":{"id":6693,"name":"Ownable","nameLocations":["324:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":112,"src":"324:7:33"},"id":6694,"nodeType":"InheritanceSpecifier","src":"324:7:33"}],"canonicalName":"ERC721Royalty","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":6813,"linearizedBaseContracts":[6813,112,1792,1953,1908,2151,3833,228,3845,2511],"name":"ERC721Royalty","nameLocation":"290:13:33","nodeType":"ContractDefinition","nodes":[{"global":false,"id":6698,"libraryName":{"id":6695,"name":"Counters","nameLocations":["342:8:33"],"nodeType":"IdentifierPath","referencedDeclaration":2585,"src":"342:8:33"},"nodeType":"UsingForDirective","src":"336:36:33","typeName":{"id":6697,"nodeType":"UserDefinedTypeName","pathNode":{"id":6696,"name":"Counters.Counter","nameLocations":["355:8:33","364:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":2517,"src":"355:16:33"},"referencedDeclaration":2517,"src":"355:16:33","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter"}}},{"constant":false,"id":6701,"mutability":"mutable","name":"_tokenIds","nameLocation":"400:9:33","nodeType":"VariableDeclaration","scope":6813,"src":"375:34:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage","typeString":"struct Counters.Counter"},"typeName":{"id":6700,"nodeType":"UserDefinedTypeName","pathNode":{"id":6699,"name":"Counters.Counter","nameLocations":["375:8:33","384:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":2517,"src":"375:16:33"},"referencedDeclaration":2517,"src":"375:16:33","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage_ptr","typeString":"struct Counters.Counter"}},"visibility":"private"},{"body":{"id":6714,"nodeType":"Block","src":"455:46:33","statements":[{"expression":{"arguments":[{"expression":{"id":6709,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"480:3:33","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"484:6:33","memberName":"sender","nodeType":"MemberAccess","src":"480:10:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":6711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"492:3:33","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":6708,"name":"_setDefaultRoyalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2092,"src":"461:18:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint96_$returns$__$","typeString":"function (address,uint96)"}},"id":6712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"461:35:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6713,"nodeType":"ExpressionStatement","src":"461:35:33"}]},"id":6715,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"5465737420546f6b656e","id":6704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"435:12:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_81e8ad438398ab0d4a2a7ecb159490c091bb27c67ace5181f70084e30fadaea2","typeString":"literal_string \"Test Token\""},"value":"Test Token"},{"hexValue":"5454","id":6705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"449:4:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ac50a34f0da9360cfd7e529a34ccdaa61aa98e2a0ac0928bf981af8e73352ba","typeString":"literal_string \"TT\""},"value":"TT"}],"id":6706,"kind":"baseConstructorSpecifier","modifierName":{"id":6703,"name":"ERC721","nameLocations":["428:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":1792,"src":"428:6:33"},"nodeType":"ModifierInvocation","src":"428:26:33"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6702,"nodeType":"ParameterList","parameters":[],"src":"425:2:33"},"returnParameters":{"id":6707,"nodeType":"ParameterList","parameters":[],"src":"455:0:33"},"scope":6813,"src":"414:87:33","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[959,1999],"body":{"id":6730,"nodeType":"Block","src":"621:54:33","statements":[{"expression":{"arguments":[{"id":6727,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6717,"src":"658:11:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":6725,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"634:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Royalty_$6813_$","typeString":"type(contract super ERC721Royalty)"}},"id":6726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"640:17:33","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":959,"src":"634:23:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":6728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"634:36:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6724,"id":6729,"nodeType":"Return","src":"627:43:33"}]},"functionSelector":"01ffc9a7","id":6731,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"514:17:33","nodeType":"FunctionDefinition","overrides":{"id":6721,"nodeType":"OverrideSpecifier","overrides":[{"id":6719,"name":"ERC721","nameLocations":["589:6:33"],"nodeType":"IdentifierPath","referencedDeclaration":1792,"src":"589:6:33"},{"id":6720,"name":"ERC2981","nameLocations":["597:7:33"],"nodeType":"IdentifierPath","referencedDeclaration":2151,"src":"597:7:33"}],"src":"580:25:33"},"parameters":{"id":6718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6717,"mutability":"mutable","name":"interfaceId","nameLocation":"544:11:33","nodeType":"VariableDeclaration","scope":6731,"src":"537:18:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6716,"name":"bytes4","nodeType":"ElementaryTypeName","src":"537:6:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"531:28:33"},"returnParameters":{"id":6724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6731,"src":"615:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6722,"name":"bool","nodeType":"ElementaryTypeName","src":"615:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"614:6:33"},"scope":6813,"src":"505:170:33","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1533],"body":{"id":6747,"nodeType":"Block","src":"737:64:33","statements":[{"expression":{"arguments":[{"id":6740,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6733,"src":"755:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6737,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"743:5:33","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721Royalty_$6813_$","typeString":"type(contract super ERC721Royalty)"}},"id":6739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"749:5:33","memberName":"_burn","nodeType":"MemberAccess","referencedDeclaration":1533,"src":"743:11:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":6741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"743:20:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6742,"nodeType":"ExpressionStatement","src":"743:20:33"},{"expression":{"arguments":[{"id":6744,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6733,"src":"788:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6743,"name":"_resetTokenRoyalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2150,"src":"769:18:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":6745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"769:27:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6746,"nodeType":"ExpressionStatement","src":"769:27:33"}]},"id":6748,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"688:5:33","nodeType":"FunctionDefinition","overrides":{"id":6735,"nodeType":"OverrideSpecifier","overrides":[],"src":"728:8:33"},"parameters":{"id":6734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6733,"mutability":"mutable","name":"tokenId","nameLocation":"702:7:33","nodeType":"VariableDeclaration","scope":6748,"src":"694:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6732,"name":"uint256","nodeType":"ElementaryTypeName","src":"694:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"693:17:33"},"returnParameters":{"id":6736,"nodeType":"ParameterList","parameters":[],"src":"737:0:33"},"scope":6813,"src":"679:122:33","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6759,"nodeType":"Block","src":"853:25:33","statements":[{"expression":{"arguments":[{"id":6756,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6750,"src":"865:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6755,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[6748],"referencedDeclaration":6748,"src":"859:5:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":6757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"859:14:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6758,"nodeType":"ExpressionStatement","src":"859:14:33"}]},"functionSelector":"42966c68","id":6760,"implemented":true,"kind":"function","modifiers":[{"id":6753,"kind":"modifierInvocation","modifierName":{"id":6752,"name":"onlyOwner","nameLocations":["843:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"843:9:33"},"nodeType":"ModifierInvocation","src":"843:9:33"}],"name":"burn","nameLocation":"814:4:33","nodeType":"FunctionDefinition","parameters":{"id":6751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6750,"mutability":"mutable","name":"tokenId","nameLocation":"827:7:33","nodeType":"VariableDeclaration","scope":6760,"src":"819:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6749,"name":"uint256","nodeType":"ElementaryTypeName","src":"819:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"818:17:33"},"returnParameters":{"id":6754,"nodeType":"ParameterList","parameters":[],"src":"853:0:33"},"scope":6813,"src":"805:73:33","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6787,"nodeType":"Block","src":"950:138:33","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6769,"name":"_tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6701,"src":"956:9:33","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage","typeString":"struct Counters.Counter storage ref"}},"id":6771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"966:9:33","memberName":"increment","nodeType":"MemberAccess","referencedDeclaration":2543,"src":"956:19:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Counter_$2517_storage_ptr_$returns$__$attached_to$_t_struct$_Counter_$2517_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer)"}},"id":6772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"956:21:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6773,"nodeType":"ExpressionStatement","src":"956:21:33"},{"assignments":[6775],"declarations":[{"constant":false,"id":6775,"mutability":"mutable","name":"newItemId","nameLocation":"992:9:33","nodeType":"VariableDeclaration","scope":6787,"src":"984:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6774,"name":"uint256","nodeType":"ElementaryTypeName","src":"984:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6779,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6776,"name":"_tokenIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6701,"src":"1004:9:33","typeDescriptions":{"typeIdentifier":"t_struct$_Counter_$2517_storage","typeString":"struct Counters.Counter storage ref"}},"id":6777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1014:7:33","memberName":"current","nodeType":"MemberAccess","referencedDeclaration":2529,"src":"1004:17:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Counter_$2517_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Counter_$2517_storage_ptr_$","typeString":"function (struct Counters.Counter storage pointer) view returns (uint256)"}},"id":6778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1004:19:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"984:39:33"},{"expression":{"arguments":[{"id":6781,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6762,"src":"1039:9:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6782,"name":"newItemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6775,"src":"1050:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6780,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[1360,1389],"referencedDeclaration":1360,"src":"1029:9:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1029:31:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6784,"nodeType":"ExpressionStatement","src":"1029:31:33"},{"expression":{"id":6785,"name":"newItemId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6775,"src":"1074:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6768,"id":6786,"nodeType":"Return","src":"1067:16:33"}]},"functionSelector":"6a627842","id":6788,"implemented":true,"kind":"function","modifiers":[{"id":6765,"kind":"modifierInvocation","modifierName":{"id":6764,"name":"onlyOwner","nameLocations":["922:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"922:9:33"},"nodeType":"ModifierInvocation","src":"922:9:33"}],"name":"mint","nameLocation":"891:4:33","nodeType":"FunctionDefinition","parameters":{"id":6763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6762,"mutability":"mutable","name":"recipient","nameLocation":"904:9:33","nodeType":"VariableDeclaration","scope":6788,"src":"896:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6761,"name":"address","nodeType":"ElementaryTypeName","src":"896:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"895:19:33"},"returnParameters":{"id":6768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6767,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6788,"src":"941:7:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6766,"name":"uint256","nodeType":"ElementaryTypeName","src":"941:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"940:9:33"},"scope":6813,"src":"882:206:33","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":6811,"nodeType":"Block","src":"1215:106:33","statements":[{"assignments":[6800],"declarations":[{"constant":false,"id":6800,"mutability":"mutable","name":"tokenId","nameLocation":"1229:7:33","nodeType":"VariableDeclaration","scope":6811,"src":"1221:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6799,"name":"uint256","nodeType":"ElementaryTypeName","src":"1221:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6804,"initialValue":{"arguments":[{"id":6802,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6790,"src":"1244:9:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6801,"name":"mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6788,"src":"1239:4:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":6803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1239:15:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1221:33:33"},{"expression":{"arguments":[{"id":6806,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6800,"src":"1277:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6807,"name":"royaltyReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6792,"src":"1286:15:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6808,"name":"feeNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6794,"src":"1303:12:33","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint96","typeString":"uint96"}],"id":6805,"name":"_setTokenRoyalty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2138,"src":"1260:16:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint96_$returns$__$","typeString":"function (uint256,address,uint96)"}},"id":6809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1260:56:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6810,"nodeType":"ExpressionStatement","src":"1260:56:33"}]},"functionSelector":"ffc38f56","id":6812,"implemented":true,"kind":"function","modifiers":[{"id":6797,"kind":"modifierInvocation","modifierName":{"id":6796,"name":"onlyOwner","nameLocations":["1205:9:33"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"1205:9:33"},"nodeType":"ModifierInvocation","src":"1205:9:33"}],"name":"mintWithRoyalty","nameLocation":"1101:15:33","nodeType":"FunctionDefinition","parameters":{"id":6795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6790,"mutability":"mutable","name":"recipient","nameLocation":"1130:9:33","nodeType":"VariableDeclaration","scope":6812,"src":"1122:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6789,"name":"address","nodeType":"ElementaryTypeName","src":"1122:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6792,"mutability":"mutable","name":"royaltyReceiver","nameLocation":"1153:15:33","nodeType":"VariableDeclaration","scope":6812,"src":"1145:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6791,"name":"address","nodeType":"ElementaryTypeName","src":"1145:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6794,"mutability":"mutable","name":"feeNumerator","nameLocation":"1181:12:33","nodeType":"VariableDeclaration","scope":6812,"src":"1174:19:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":6793,"name":"uint96","nodeType":"ElementaryTypeName","src":"1174:6:33","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"1116:81:33"},"returnParameters":{"id":6798,"nodeType":"ParameterList","parameters":[],"src":"1215:0:33"},"scope":6813,"src":"1092:229:33","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":6814,"src":"281:1042:33","usedErrors":[],"usedEvents":[13,1807,1816,1825]}],"src":"32:1292:33"},"id":33}},"contracts":{"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"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. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling 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\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/Ownable2Step.sol":{"Ownable2Step":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"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":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"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\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"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 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} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).\",\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable2Step.sol\":\"Ownable2Step\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xde231558366826d7cb61725af8147965a61c53b77a352cc8c9af38fc5a92ac3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd55624076bf61d44af5ff351919e32dda748567acfbdd6ba3d6c7be61c758e\",\"dweb:/ipfs/QmSki4dTrf4GPm7MTpG3fk8mC7rnjwd2zMomLp6jLuF63Q\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/IERC1271.sol":{"IERC1271":{"abi":[{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"isValidSignature","outputs":[{"internalType":"bytes4","name":"magicValue","type":"bytes4"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"isValidSignature\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"magicValue\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC1271 standard signature validation method for contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"isValidSignature(bytes32,bytes)\":{\"details\":\"Should return whether the signature provided is valid for the provided data\",\"params\":{\"hash\":\"Hash of the data to be signed\",\"signature\":\"Signature byte array associated with _data\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC1271.sol\":\"IERC1271\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/IERC2981.sol":{"IERC2981":{"abi":[{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"royaltyInfo(uint256,uint256)":"2a55205a","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"salePrice\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"royaltyAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the NFT Royalty Standard. A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal support for royalty payments across all NFT marketplaces and ecosystem participants. _Available since v4.5._\",\"kind\":\"dev\",\"methods\":{\"royaltyInfo(uint256,uint256)\":{\"details\":\"Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\"},\"supportsInterface(bytes4)\":{\"details\":\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC2981.sol\":\"IERC2981\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC2981.sol\":{\"keccak256\":\"0x3976825a61df20457730b79ad0ac9c8908e3c7978ed9bf090c67137c91256b5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f3fe369b6d0e101844b425f1d08e35bf512962d0590b1f80decb8130c9a6890\",\"dweb:/ipfs/QmXCan6wX4qwJkdR1VvsYLeq8JTB2YxRHLucpuXpsKAvzQ\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/IERC5267.sol":{"IERC5267":{"abi":[{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"eip712Domain()":"84b0196e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":\"IERC5267\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"IERC1155":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC1155 compliant contract, as defined in the https://eips.ethereum.org/EIPS/eip-1155[EIP]. _Available since v3.1._\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"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}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the amount of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"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.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"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 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.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"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.\"},\"supportsInterface(bytes4)\":{\"details\":\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xcab667ddad478ff0d39c2053ca77fac778af8483c18ab07d810277b4216fd582\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://919c7ea27c77275c3c341da0c4a26a66a20ed27605fbe8becf11f58ec3bc65bf\",\"dweb:/ipfs/QmRLKyVE2n7e2Jo4bLNn8eLgqqhNGYnVQyjJPWdr8poskf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {     try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}     doThing(..., value); } function doThing(..., uint256 value) public {     token.safeTransferFrom(msg.sender, address(this), value);     ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c8793b7848bbd6ad4cace81a5ccd9a10194b82ddd8016c163b9df73938496cd64736f6c63430008170033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0xC DUP8 SWAP4 0xB7 DUP5 DUP12 0xBD PUSH11 0xD4CACE81A5CCD9A10194B8 0x2D 0xDD DUP1 AND 0xC1 PUSH4 0xB9DF7393 DUP5 SWAP7 0xCD PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"701:6234:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;701:6234:8;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c8793b7848bbd6ad4cace81a5ccd9a10194b82ddd8016c163b9df73938496cd64736f6c63430008170033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC DUP8 SWAP4 0xB7 DUP5 DUP12 0xBD PUSH11 0xD4CACE81A5CCD9A10194B8 0x2D 0xDD DUP1 AND 0xC1 PUSH4 0xB9DF7393 DUP5 SWAP7 0xCD PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"701:6234:8:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ERC721":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_928":{"entryPoint":null,"id":928,"parameterSlots":2,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":112,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory":{"entryPoint":290,"id":null,"parameterSlots":2,"returnSlots":2},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":456,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":541,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":396,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":90,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:4139:34","nodeType":"YulBlock","src":"0:4139:34","statements":[{"nativeSrc":"6:3:34","nodeType":"YulBlock","src":"6:3:34","statements":[]},{"body":{"nativeSrc":"46:95:34","nodeType":"YulBlock","src":"46:95:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:34","nodeType":"YulLiteral","src":"63:1:34","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:34","nodeType":"YulLiteral","src":"70:3:34","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:34","nodeType":"YulLiteral","src":"75:10:34","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:34","nodeType":"YulIdentifier","src":"66:3:34"},"nativeSrc":"66:20:34","nodeType":"YulFunctionCall","src":"66:20:34"}],"functionName":{"name":"mstore","nativeSrc":"56:6:34","nodeType":"YulIdentifier","src":"56:6:34"},"nativeSrc":"56:31:34","nodeType":"YulFunctionCall","src":"56:31:34"},"nativeSrc":"56:31:34","nodeType":"YulExpressionStatement","src":"56:31:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:34","nodeType":"YulLiteral","src":"103:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:34","nodeType":"YulLiteral","src":"106:4:34","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:34","nodeType":"YulIdentifier","src":"96:6:34"},"nativeSrc":"96:15:34","nodeType":"YulFunctionCall","src":"96:15:34"},"nativeSrc":"96:15:34","nodeType":"YulExpressionStatement","src":"96:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:34","nodeType":"YulLiteral","src":"127:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:34","nodeType":"YulLiteral","src":"130:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:34","nodeType":"YulIdentifier","src":"120:6:34"},"nativeSrc":"120:15:34","nodeType":"YulFunctionCall","src":"120:15:34"},"nativeSrc":"120:15:34","nodeType":"YulExpressionStatement","src":"120:15:34"}]},"name":"panic_error_0x41","nativeSrc":"14:127:34","nodeType":"YulFunctionDefinition","src":"14:127:34"},{"body":{"nativeSrc":"210:780:34","nodeType":"YulBlock","src":"210:780:34","statements":[{"body":{"nativeSrc":"259:16:34","nodeType":"YulBlock","src":"259:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"268:1:34","nodeType":"YulLiteral","src":"268:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"271:1:34","nodeType":"YulLiteral","src":"271:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"261:6:34","nodeType":"YulIdentifier","src":"261:6:34"},"nativeSrc":"261:12:34","nodeType":"YulFunctionCall","src":"261:12:34"},"nativeSrc":"261:12:34","nodeType":"YulExpressionStatement","src":"261:12:34"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"238:6:34","nodeType":"YulIdentifier","src":"238:6:34"},{"kind":"number","nativeSrc":"246:4:34","nodeType":"YulLiteral","src":"246:4:34","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"234:3:34","nodeType":"YulIdentifier","src":"234:3:34"},"nativeSrc":"234:17:34","nodeType":"YulFunctionCall","src":"234:17:34"},{"name":"end","nativeSrc":"253:3:34","nodeType":"YulIdentifier","src":"253:3:34"}],"functionName":{"name":"slt","nativeSrc":"230:3:34","nodeType":"YulIdentifier","src":"230:3:34"},"nativeSrc":"230:27:34","nodeType":"YulFunctionCall","src":"230:27:34"}],"functionName":{"name":"iszero","nativeSrc":"223:6:34","nodeType":"YulIdentifier","src":"223:6:34"},"nativeSrc":"223:35:34","nodeType":"YulFunctionCall","src":"223:35:34"},"nativeSrc":"220:55:34","nodeType":"YulIf","src":"220:55:34"},{"nativeSrc":"284:23:34","nodeType":"YulVariableDeclaration","src":"284:23:34","value":{"arguments":[{"name":"offset","nativeSrc":"300:6:34","nodeType":"YulIdentifier","src":"300:6:34"}],"functionName":{"name":"mload","nativeSrc":"294:5:34","nodeType":"YulIdentifier","src":"294:5:34"},"nativeSrc":"294:13:34","nodeType":"YulFunctionCall","src":"294:13:34"},"variables":[{"name":"_1","nativeSrc":"288:2:34","nodeType":"YulTypedName","src":"288:2:34","type":""}]},{"nativeSrc":"316:28:34","nodeType":"YulVariableDeclaration","src":"316:28:34","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"334:2:34","nodeType":"YulLiteral","src":"334:2:34","type":"","value":"64"},{"kind":"number","nativeSrc":"338:1:34","nodeType":"YulLiteral","src":"338:1:34","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"330:3:34","nodeType":"YulIdentifier","src":"330:3:34"},"nativeSrc":"330:10:34","nodeType":"YulFunctionCall","src":"330:10:34"},{"kind":"number","nativeSrc":"342:1:34","nodeType":"YulLiteral","src":"342:1:34","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"326:3:34","nodeType":"YulIdentifier","src":"326:3:34"},"nativeSrc":"326:18:34","nodeType":"YulFunctionCall","src":"326:18:34"},"variables":[{"name":"_2","nativeSrc":"320:2:34","nodeType":"YulTypedName","src":"320:2:34","type":""}]},{"body":{"nativeSrc":"367:22:34","nodeType":"YulBlock","src":"367:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"369:16:34","nodeType":"YulIdentifier","src":"369:16:34"},"nativeSrc":"369:18:34","nodeType":"YulFunctionCall","src":"369:18:34"},"nativeSrc":"369:18:34","nodeType":"YulExpressionStatement","src":"369:18:34"}]},"condition":{"arguments":[{"name":"_1","nativeSrc":"359:2:34","nodeType":"YulIdentifier","src":"359:2:34"},{"name":"_2","nativeSrc":"363:2:34","nodeType":"YulIdentifier","src":"363:2:34"}],"functionName":{"name":"gt","nativeSrc":"356:2:34","nodeType":"YulIdentifier","src":"356:2:34"},"nativeSrc":"356:10:34","nodeType":"YulFunctionCall","src":"356:10:34"},"nativeSrc":"353:36:34","nodeType":"YulIf","src":"353:36:34"},{"nativeSrc":"398:17:34","nodeType":"YulVariableDeclaration","src":"398:17:34","value":{"arguments":[{"kind":"number","nativeSrc":"412:2:34","nodeType":"YulLiteral","src":"412:2:34","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"408:3:34","nodeType":"YulIdentifier","src":"408:3:34"},"nativeSrc":"408:7:34","nodeType":"YulFunctionCall","src":"408:7:34"},"variables":[{"name":"_3","nativeSrc":"402:2:34","nodeType":"YulTypedName","src":"402:2:34","type":""}]},{"nativeSrc":"424:23:34","nodeType":"YulVariableDeclaration","src":"424:23:34","value":{"arguments":[{"kind":"number","nativeSrc":"444:2:34","nodeType":"YulLiteral","src":"444:2:34","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"438:5:34","nodeType":"YulIdentifier","src":"438:5:34"},"nativeSrc":"438:9:34","nodeType":"YulFunctionCall","src":"438:9:34"},"variables":[{"name":"memPtr","nativeSrc":"428:6:34","nodeType":"YulTypedName","src":"428:6:34","type":""}]},{"nativeSrc":"456:71:34","nodeType":"YulVariableDeclaration","src":"456:71:34","value":{"arguments":[{"name":"memPtr","nativeSrc":"478:6:34","nodeType":"YulIdentifier","src":"478:6:34"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nativeSrc":"502:2:34","nodeType":"YulIdentifier","src":"502:2:34"},{"kind":"number","nativeSrc":"506:4:34","nodeType":"YulLiteral","src":"506:4:34","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"498:3:34","nodeType":"YulIdentifier","src":"498:3:34"},"nativeSrc":"498:13:34","nodeType":"YulFunctionCall","src":"498:13:34"},{"name":"_3","nativeSrc":"513:2:34","nodeType":"YulIdentifier","src":"513:2:34"}],"functionName":{"name":"and","nativeSrc":"494:3:34","nodeType":"YulIdentifier","src":"494:3:34"},"nativeSrc":"494:22:34","nodeType":"YulFunctionCall","src":"494:22:34"},{"kind":"number","nativeSrc":"518:2:34","nodeType":"YulLiteral","src":"518:2:34","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"490:3:34","nodeType":"YulIdentifier","src":"490:3:34"},"nativeSrc":"490:31:34","nodeType":"YulFunctionCall","src":"490:31:34"},{"name":"_3","nativeSrc":"523:2:34","nodeType":"YulIdentifier","src":"523:2:34"}],"functionName":{"name":"and","nativeSrc":"486:3:34","nodeType":"YulIdentifier","src":"486:3:34"},"nativeSrc":"486:40:34","nodeType":"YulFunctionCall","src":"486:40:34"}],"functionName":{"name":"add","nativeSrc":"474:3:34","nodeType":"YulIdentifier","src":"474:3:34"},"nativeSrc":"474:53:34","nodeType":"YulFunctionCall","src":"474:53:34"},"variables":[{"name":"newFreePtr","nativeSrc":"460:10:34","nodeType":"YulTypedName","src":"460:10:34","type":""}]},{"body":{"nativeSrc":"586:22:34","nodeType":"YulBlock","src":"586:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"588:16:34","nodeType":"YulIdentifier","src":"588:16:34"},"nativeSrc":"588:18:34","nodeType":"YulFunctionCall","src":"588:18:34"},"nativeSrc":"588:18:34","nodeType":"YulExpressionStatement","src":"588:18:34"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"545:10:34","nodeType":"YulIdentifier","src":"545:10:34"},{"name":"_2","nativeSrc":"557:2:34","nodeType":"YulIdentifier","src":"557:2:34"}],"functionName":{"name":"gt","nativeSrc":"542:2:34","nodeType":"YulIdentifier","src":"542:2:34"},"nativeSrc":"542:18:34","nodeType":"YulFunctionCall","src":"542:18:34"},{"arguments":[{"name":"newFreePtr","nativeSrc":"565:10:34","nodeType":"YulIdentifier","src":"565:10:34"},{"name":"memPtr","nativeSrc":"577:6:34","nodeType":"YulIdentifier","src":"577:6:34"}],"functionName":{"name":"lt","nativeSrc":"562:2:34","nodeType":"YulIdentifier","src":"562:2:34"},"nativeSrc":"562:22:34","nodeType":"YulFunctionCall","src":"562:22:34"}],"functionName":{"name":"or","nativeSrc":"539:2:34","nodeType":"YulIdentifier","src":"539:2:34"},"nativeSrc":"539:46:34","nodeType":"YulFunctionCall","src":"539:46:34"},"nativeSrc":"536:72:34","nodeType":"YulIf","src":"536:72:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"624:2:34","nodeType":"YulLiteral","src":"624:2:34","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"628:10:34","nodeType":"YulIdentifier","src":"628:10:34"}],"functionName":{"name":"mstore","nativeSrc":"617:6:34","nodeType":"YulIdentifier","src":"617:6:34"},"nativeSrc":"617:22:34","nodeType":"YulFunctionCall","src":"617:22:34"},"nativeSrc":"617:22:34","nodeType":"YulExpressionStatement","src":"617:22:34"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"655:6:34","nodeType":"YulIdentifier","src":"655:6:34"},{"name":"_1","nativeSrc":"663:2:34","nodeType":"YulIdentifier","src":"663:2:34"}],"functionName":{"name":"mstore","nativeSrc":"648:6:34","nodeType":"YulIdentifier","src":"648:6:34"},"nativeSrc":"648:18:34","nodeType":"YulFunctionCall","src":"648:18:34"},"nativeSrc":"648:18:34","nodeType":"YulExpressionStatement","src":"648:18:34"},{"nativeSrc":"675:14:34","nodeType":"YulVariableDeclaration","src":"675:14:34","value":{"kind":"number","nativeSrc":"685:4:34","nodeType":"YulLiteral","src":"685:4:34","type":"","value":"0x20"},"variables":[{"name":"_4","nativeSrc":"679:2:34","nodeType":"YulTypedName","src":"679:2:34","type":""}]},{"body":{"nativeSrc":"737:16:34","nodeType":"YulBlock","src":"737:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"746:1:34","nodeType":"YulLiteral","src":"746:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"749:1:34","nodeType":"YulLiteral","src":"749:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"739:6:34","nodeType":"YulIdentifier","src":"739:6:34"},"nativeSrc":"739:12:34","nodeType":"YulFunctionCall","src":"739:12:34"},"nativeSrc":"739:12:34","nodeType":"YulExpressionStatement","src":"739:12:34"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"712:6:34","nodeType":"YulIdentifier","src":"712:6:34"},{"name":"_1","nativeSrc":"720:2:34","nodeType":"YulIdentifier","src":"720:2:34"}],"functionName":{"name":"add","nativeSrc":"708:3:34","nodeType":"YulIdentifier","src":"708:3:34"},"nativeSrc":"708:15:34","nodeType":"YulFunctionCall","src":"708:15:34"},{"kind":"number","nativeSrc":"725:4:34","nodeType":"YulLiteral","src":"725:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"704:3:34","nodeType":"YulIdentifier","src":"704:3:34"},"nativeSrc":"704:26:34","nodeType":"YulFunctionCall","src":"704:26:34"},{"name":"end","nativeSrc":"732:3:34","nodeType":"YulIdentifier","src":"732:3:34"}],"functionName":{"name":"gt","nativeSrc":"701:2:34","nodeType":"YulIdentifier","src":"701:2:34"},"nativeSrc":"701:35:34","nodeType":"YulFunctionCall","src":"701:35:34"},"nativeSrc":"698:55:34","nodeType":"YulIf","src":"698:55:34"},{"nativeSrc":"762:10:34","nodeType":"YulVariableDeclaration","src":"762:10:34","value":{"kind":"number","nativeSrc":"771:1:34","nodeType":"YulLiteral","src":"771:1:34","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"766:1:34","nodeType":"YulTypedName","src":"766:1:34","type":""}]},{"body":{"nativeSrc":"827:87:34","nodeType":"YulBlock","src":"827:87:34","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"856:6:34","nodeType":"YulIdentifier","src":"856:6:34"},{"name":"i","nativeSrc":"864:1:34","nodeType":"YulIdentifier","src":"864:1:34"}],"functionName":{"name":"add","nativeSrc":"852:3:34","nodeType":"YulIdentifier","src":"852:3:34"},"nativeSrc":"852:14:34","nodeType":"YulFunctionCall","src":"852:14:34"},{"name":"_4","nativeSrc":"868:2:34","nodeType":"YulIdentifier","src":"868:2:34"}],"functionName":{"name":"add","nativeSrc":"848:3:34","nodeType":"YulIdentifier","src":"848:3:34"},"nativeSrc":"848:23:34","nodeType":"YulFunctionCall","src":"848:23:34"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"887:6:34","nodeType":"YulIdentifier","src":"887:6:34"},{"name":"i","nativeSrc":"895:1:34","nodeType":"YulIdentifier","src":"895:1:34"}],"functionName":{"name":"add","nativeSrc":"883:3:34","nodeType":"YulIdentifier","src":"883:3:34"},"nativeSrc":"883:14:34","nodeType":"YulFunctionCall","src":"883:14:34"},{"name":"_4","nativeSrc":"899:2:34","nodeType":"YulIdentifier","src":"899:2:34"}],"functionName":{"name":"add","nativeSrc":"879:3:34","nodeType":"YulIdentifier","src":"879:3:34"},"nativeSrc":"879:23:34","nodeType":"YulFunctionCall","src":"879:23:34"}],"functionName":{"name":"mload","nativeSrc":"873:5:34","nodeType":"YulIdentifier","src":"873:5:34"},"nativeSrc":"873:30:34","nodeType":"YulFunctionCall","src":"873:30:34"}],"functionName":{"name":"mstore","nativeSrc":"841:6:34","nodeType":"YulIdentifier","src":"841:6:34"},"nativeSrc":"841:63:34","nodeType":"YulFunctionCall","src":"841:63:34"},"nativeSrc":"841:63:34","nodeType":"YulExpressionStatement","src":"841:63:34"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"792:1:34","nodeType":"YulIdentifier","src":"792:1:34"},{"name":"_1","nativeSrc":"795:2:34","nodeType":"YulIdentifier","src":"795:2:34"}],"functionName":{"name":"lt","nativeSrc":"789:2:34","nodeType":"YulIdentifier","src":"789:2:34"},"nativeSrc":"789:9:34","nodeType":"YulFunctionCall","src":"789:9:34"},"nativeSrc":"781:133:34","nodeType":"YulForLoop","post":{"nativeSrc":"799:19:34","nodeType":"YulBlock","src":"799:19:34","statements":[{"nativeSrc":"801:15:34","nodeType":"YulAssignment","src":"801:15:34","value":{"arguments":[{"name":"i","nativeSrc":"810:1:34","nodeType":"YulIdentifier","src":"810:1:34"},{"name":"_4","nativeSrc":"813:2:34","nodeType":"YulIdentifier","src":"813:2:34"}],"functionName":{"name":"add","nativeSrc":"806:3:34","nodeType":"YulIdentifier","src":"806:3:34"},"nativeSrc":"806:10:34","nodeType":"YulFunctionCall","src":"806:10:34"},"variableNames":[{"name":"i","nativeSrc":"801:1:34","nodeType":"YulIdentifier","src":"801:1:34"}]}]},"pre":{"nativeSrc":"785:3:34","nodeType":"YulBlock","src":"785:3:34","statements":[]},"src":"781:133:34"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"938:6:34","nodeType":"YulIdentifier","src":"938:6:34"},{"name":"_1","nativeSrc":"946:2:34","nodeType":"YulIdentifier","src":"946:2:34"}],"functionName":{"name":"add","nativeSrc":"934:3:34","nodeType":"YulIdentifier","src":"934:3:34"},"nativeSrc":"934:15:34","nodeType":"YulFunctionCall","src":"934:15:34"},{"kind":"number","nativeSrc":"951:4:34","nodeType":"YulLiteral","src":"951:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"930:3:34","nodeType":"YulIdentifier","src":"930:3:34"},"nativeSrc":"930:26:34","nodeType":"YulFunctionCall","src":"930:26:34"},{"kind":"number","nativeSrc":"958:1:34","nodeType":"YulLiteral","src":"958:1:34","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"923:6:34","nodeType":"YulIdentifier","src":"923:6:34"},"nativeSrc":"923:37:34","nodeType":"YulFunctionCall","src":"923:37:34"},"nativeSrc":"923:37:34","nodeType":"YulExpressionStatement","src":"923:37:34"},{"nativeSrc":"969:15:34","nodeType":"YulAssignment","src":"969:15:34","value":{"name":"memPtr","nativeSrc":"978:6:34","nodeType":"YulIdentifier","src":"978:6:34"},"variableNames":[{"name":"array","nativeSrc":"969:5:34","nodeType":"YulIdentifier","src":"969:5:34"}]}]},"name":"abi_decode_string_fromMemory","nativeSrc":"146:844:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"184:6:34","nodeType":"YulTypedName","src":"184:6:34","type":""},{"name":"end","nativeSrc":"192:3:34","nodeType":"YulTypedName","src":"192:3:34","type":""}],"returnVariables":[{"name":"array","nativeSrc":"200:5:34","nodeType":"YulTypedName","src":"200:5:34","type":""}],"src":"146:844:34"},{"body":{"nativeSrc":"1113:444:34","nodeType":"YulBlock","src":"1113:444:34","statements":[{"body":{"nativeSrc":"1159:16:34","nodeType":"YulBlock","src":"1159:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1168:1:34","nodeType":"YulLiteral","src":"1168:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1171:1:34","nodeType":"YulLiteral","src":"1171:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1161:6:34","nodeType":"YulIdentifier","src":"1161:6:34"},"nativeSrc":"1161:12:34","nodeType":"YulFunctionCall","src":"1161:12:34"},"nativeSrc":"1161:12:34","nodeType":"YulExpressionStatement","src":"1161:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1134:7:34","nodeType":"YulIdentifier","src":"1134:7:34"},{"name":"headStart","nativeSrc":"1143:9:34","nodeType":"YulIdentifier","src":"1143:9:34"}],"functionName":{"name":"sub","nativeSrc":"1130:3:34","nodeType":"YulIdentifier","src":"1130:3:34"},"nativeSrc":"1130:23:34","nodeType":"YulFunctionCall","src":"1130:23:34"},{"kind":"number","nativeSrc":"1155:2:34","nodeType":"YulLiteral","src":"1155:2:34","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1126:3:34","nodeType":"YulIdentifier","src":"1126:3:34"},"nativeSrc":"1126:32:34","nodeType":"YulFunctionCall","src":"1126:32:34"},"nativeSrc":"1123:52:34","nodeType":"YulIf","src":"1123:52:34"},{"nativeSrc":"1184:30:34","nodeType":"YulVariableDeclaration","src":"1184:30:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1204:9:34","nodeType":"YulIdentifier","src":"1204:9:34"}],"functionName":{"name":"mload","nativeSrc":"1198:5:34","nodeType":"YulIdentifier","src":"1198:5:34"},"nativeSrc":"1198:16:34","nodeType":"YulFunctionCall","src":"1198:16:34"},"variables":[{"name":"offset","nativeSrc":"1188:6:34","nodeType":"YulTypedName","src":"1188:6:34","type":""}]},{"nativeSrc":"1223:28:34","nodeType":"YulVariableDeclaration","src":"1223:28:34","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1241:2:34","nodeType":"YulLiteral","src":"1241:2:34","type":"","value":"64"},{"kind":"number","nativeSrc":"1245:1:34","nodeType":"YulLiteral","src":"1245:1:34","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1237:3:34","nodeType":"YulIdentifier","src":"1237:3:34"},"nativeSrc":"1237:10:34","nodeType":"YulFunctionCall","src":"1237:10:34"},{"kind":"number","nativeSrc":"1249:1:34","nodeType":"YulLiteral","src":"1249:1:34","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1233:3:34","nodeType":"YulIdentifier","src":"1233:3:34"},"nativeSrc":"1233:18:34","nodeType":"YulFunctionCall","src":"1233:18:34"},"variables":[{"name":"_1","nativeSrc":"1227:2:34","nodeType":"YulTypedName","src":"1227:2:34","type":""}]},{"body":{"nativeSrc":"1278:16:34","nodeType":"YulBlock","src":"1278:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1287:1:34","nodeType":"YulLiteral","src":"1287:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1290:1:34","nodeType":"YulLiteral","src":"1290:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1280:6:34","nodeType":"YulIdentifier","src":"1280:6:34"},"nativeSrc":"1280:12:34","nodeType":"YulFunctionCall","src":"1280:12:34"},"nativeSrc":"1280:12:34","nodeType":"YulExpressionStatement","src":"1280:12:34"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1266:6:34","nodeType":"YulIdentifier","src":"1266:6:34"},{"name":"_1","nativeSrc":"1274:2:34","nodeType":"YulIdentifier","src":"1274:2:34"}],"functionName":{"name":"gt","nativeSrc":"1263:2:34","nodeType":"YulIdentifier","src":"1263:2:34"},"nativeSrc":"1263:14:34","nodeType":"YulFunctionCall","src":"1263:14:34"},"nativeSrc":"1260:34:34","nodeType":"YulIf","src":"1260:34:34"},{"nativeSrc":"1303:71:34","nodeType":"YulAssignment","src":"1303:71:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1346:9:34","nodeType":"YulIdentifier","src":"1346:9:34"},{"name":"offset","nativeSrc":"1357:6:34","nodeType":"YulIdentifier","src":"1357:6:34"}],"functionName":{"name":"add","nativeSrc":"1342:3:34","nodeType":"YulIdentifier","src":"1342:3:34"},"nativeSrc":"1342:22:34","nodeType":"YulFunctionCall","src":"1342:22:34"},{"name":"dataEnd","nativeSrc":"1366:7:34","nodeType":"YulIdentifier","src":"1366:7:34"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1313:28:34","nodeType":"YulIdentifier","src":"1313:28:34"},"nativeSrc":"1313:61:34","nodeType":"YulFunctionCall","src":"1313:61:34"},"variableNames":[{"name":"value0","nativeSrc":"1303:6:34","nodeType":"YulIdentifier","src":"1303:6:34"}]},{"nativeSrc":"1383:41:34","nodeType":"YulVariableDeclaration","src":"1383:41:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1409:9:34","nodeType":"YulIdentifier","src":"1409:9:34"},{"kind":"number","nativeSrc":"1420:2:34","nodeType":"YulLiteral","src":"1420:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1405:3:34","nodeType":"YulIdentifier","src":"1405:3:34"},"nativeSrc":"1405:18:34","nodeType":"YulFunctionCall","src":"1405:18:34"}],"functionName":{"name":"mload","nativeSrc":"1399:5:34","nodeType":"YulIdentifier","src":"1399:5:34"},"nativeSrc":"1399:25:34","nodeType":"YulFunctionCall","src":"1399:25:34"},"variables":[{"name":"offset_1","nativeSrc":"1387:8:34","nodeType":"YulTypedName","src":"1387:8:34","type":""}]},{"body":{"nativeSrc":"1453:16:34","nodeType":"YulBlock","src":"1453:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1462:1:34","nodeType":"YulLiteral","src":"1462:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1465:1:34","nodeType":"YulLiteral","src":"1465:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1455:6:34","nodeType":"YulIdentifier","src":"1455:6:34"},"nativeSrc":"1455:12:34","nodeType":"YulFunctionCall","src":"1455:12:34"},"nativeSrc":"1455:12:34","nodeType":"YulExpressionStatement","src":"1455:12:34"}]},"condition":{"arguments":[{"name":"offset_1","nativeSrc":"1439:8:34","nodeType":"YulIdentifier","src":"1439:8:34"},{"name":"_1","nativeSrc":"1449:2:34","nodeType":"YulIdentifier","src":"1449:2:34"}],"functionName":{"name":"gt","nativeSrc":"1436:2:34","nodeType":"YulIdentifier","src":"1436:2:34"},"nativeSrc":"1436:16:34","nodeType":"YulFunctionCall","src":"1436:16:34"},"nativeSrc":"1433:36:34","nodeType":"YulIf","src":"1433:36:34"},{"nativeSrc":"1478:73:34","nodeType":"YulAssignment","src":"1478:73:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1521:9:34","nodeType":"YulIdentifier","src":"1521:9:34"},{"name":"offset_1","nativeSrc":"1532:8:34","nodeType":"YulIdentifier","src":"1532:8:34"}],"functionName":{"name":"add","nativeSrc":"1517:3:34","nodeType":"YulIdentifier","src":"1517:3:34"},"nativeSrc":"1517:24:34","nodeType":"YulFunctionCall","src":"1517:24:34"},{"name":"dataEnd","nativeSrc":"1543:7:34","nodeType":"YulIdentifier","src":"1543:7:34"}],"functionName":{"name":"abi_decode_string_fromMemory","nativeSrc":"1488:28:34","nodeType":"YulIdentifier","src":"1488:28:34"},"nativeSrc":"1488:63:34","nodeType":"YulFunctionCall","src":"1488:63:34"},"variableNames":[{"name":"value1","nativeSrc":"1478:6:34","nodeType":"YulIdentifier","src":"1478:6:34"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nativeSrc":"995:562:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1071:9:34","nodeType":"YulTypedName","src":"1071:9:34","type":""},{"name":"dataEnd","nativeSrc":"1082:7:34","nodeType":"YulTypedName","src":"1082:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1094:6:34","nodeType":"YulTypedName","src":"1094:6:34","type":""},{"name":"value1","nativeSrc":"1102:6:34","nodeType":"YulTypedName","src":"1102:6:34","type":""}],"src":"995:562:34"},{"body":{"nativeSrc":"1617:325:34","nodeType":"YulBlock","src":"1617:325:34","statements":[{"nativeSrc":"1627:22:34","nodeType":"YulAssignment","src":"1627:22:34","value":{"arguments":[{"kind":"number","nativeSrc":"1641:1:34","nodeType":"YulLiteral","src":"1641:1:34","type":"","value":"1"},{"name":"data","nativeSrc":"1644:4:34","nodeType":"YulIdentifier","src":"1644:4:34"}],"functionName":{"name":"shr","nativeSrc":"1637:3:34","nodeType":"YulIdentifier","src":"1637:3:34"},"nativeSrc":"1637:12:34","nodeType":"YulFunctionCall","src":"1637:12:34"},"variableNames":[{"name":"length","nativeSrc":"1627:6:34","nodeType":"YulIdentifier","src":"1627:6:34"}]},{"nativeSrc":"1658:38:34","nodeType":"YulVariableDeclaration","src":"1658:38:34","value":{"arguments":[{"name":"data","nativeSrc":"1688:4:34","nodeType":"YulIdentifier","src":"1688:4:34"},{"kind":"number","nativeSrc":"1694:1:34","nodeType":"YulLiteral","src":"1694:1:34","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"1684:3:34","nodeType":"YulIdentifier","src":"1684:3:34"},"nativeSrc":"1684:12:34","nodeType":"YulFunctionCall","src":"1684:12:34"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"1662:18:34","nodeType":"YulTypedName","src":"1662:18:34","type":""}]},{"body":{"nativeSrc":"1735:31:34","nodeType":"YulBlock","src":"1735:31:34","statements":[{"nativeSrc":"1737:27:34","nodeType":"YulAssignment","src":"1737:27:34","value":{"arguments":[{"name":"length","nativeSrc":"1751:6:34","nodeType":"YulIdentifier","src":"1751:6:34"},{"kind":"number","nativeSrc":"1759:4:34","nodeType":"YulLiteral","src":"1759:4:34","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"1747:3:34","nodeType":"YulIdentifier","src":"1747:3:34"},"nativeSrc":"1747:17:34","nodeType":"YulFunctionCall","src":"1747:17:34"},"variableNames":[{"name":"length","nativeSrc":"1737:6:34","nodeType":"YulIdentifier","src":"1737:6:34"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1715:18:34","nodeType":"YulIdentifier","src":"1715:18:34"}],"functionName":{"name":"iszero","nativeSrc":"1708:6:34","nodeType":"YulIdentifier","src":"1708:6:34"},"nativeSrc":"1708:26:34","nodeType":"YulFunctionCall","src":"1708:26:34"},"nativeSrc":"1705:61:34","nodeType":"YulIf","src":"1705:61:34"},{"body":{"nativeSrc":"1825:111:34","nodeType":"YulBlock","src":"1825:111:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1846:1:34","nodeType":"YulLiteral","src":"1846:1:34","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1853:3:34","nodeType":"YulLiteral","src":"1853:3:34","type":"","value":"224"},{"kind":"number","nativeSrc":"1858:10:34","nodeType":"YulLiteral","src":"1858:10:34","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1849:3:34","nodeType":"YulIdentifier","src":"1849:3:34"},"nativeSrc":"1849:20:34","nodeType":"YulFunctionCall","src":"1849:20:34"}],"functionName":{"name":"mstore","nativeSrc":"1839:6:34","nodeType":"YulIdentifier","src":"1839:6:34"},"nativeSrc":"1839:31:34","nodeType":"YulFunctionCall","src":"1839:31:34"},"nativeSrc":"1839:31:34","nodeType":"YulExpressionStatement","src":"1839:31:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1890:1:34","nodeType":"YulLiteral","src":"1890:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"1893:4:34","nodeType":"YulLiteral","src":"1893:4:34","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"1883:6:34","nodeType":"YulIdentifier","src":"1883:6:34"},"nativeSrc":"1883:15:34","nodeType":"YulFunctionCall","src":"1883:15:34"},"nativeSrc":"1883:15:34","nodeType":"YulExpressionStatement","src":"1883:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1918:1:34","nodeType":"YulLiteral","src":"1918:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1921:4:34","nodeType":"YulLiteral","src":"1921:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1911:6:34","nodeType":"YulIdentifier","src":"1911:6:34"},"nativeSrc":"1911:15:34","nodeType":"YulFunctionCall","src":"1911:15:34"},"nativeSrc":"1911:15:34","nodeType":"YulExpressionStatement","src":"1911:15:34"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"1781:18:34","nodeType":"YulIdentifier","src":"1781:18:34"},{"arguments":[{"name":"length","nativeSrc":"1804:6:34","nodeType":"YulIdentifier","src":"1804:6:34"},{"kind":"number","nativeSrc":"1812:2:34","nodeType":"YulLiteral","src":"1812:2:34","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"1801:2:34","nodeType":"YulIdentifier","src":"1801:2:34"},"nativeSrc":"1801:14:34","nodeType":"YulFunctionCall","src":"1801:14:34"}],"functionName":{"name":"eq","nativeSrc":"1778:2:34","nodeType":"YulIdentifier","src":"1778:2:34"},"nativeSrc":"1778:38:34","nodeType":"YulFunctionCall","src":"1778:38:34"},"nativeSrc":"1775:161:34","nodeType":"YulIf","src":"1775:161:34"}]},"name":"extract_byte_array_length","nativeSrc":"1562:380:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1597:4:34","nodeType":"YulTypedName","src":"1597:4:34","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1606:6:34","nodeType":"YulTypedName","src":"1606:6:34","type":""}],"src":"1562:380:34"},{"body":{"nativeSrc":"2003:65:34","nodeType":"YulBlock","src":"2003:65:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2020:1:34","nodeType":"YulLiteral","src":"2020:1:34","type":"","value":"0"},{"name":"ptr","nativeSrc":"2023:3:34","nodeType":"YulIdentifier","src":"2023:3:34"}],"functionName":{"name":"mstore","nativeSrc":"2013:6:34","nodeType":"YulIdentifier","src":"2013:6:34"},"nativeSrc":"2013:14:34","nodeType":"YulFunctionCall","src":"2013:14:34"},"nativeSrc":"2013:14:34","nodeType":"YulExpressionStatement","src":"2013:14:34"},{"nativeSrc":"2036:26:34","nodeType":"YulAssignment","src":"2036:26:34","value":{"arguments":[{"kind":"number","nativeSrc":"2054:1:34","nodeType":"YulLiteral","src":"2054:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2057:4:34","nodeType":"YulLiteral","src":"2057:4:34","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2044:9:34","nodeType":"YulIdentifier","src":"2044:9:34"},"nativeSrc":"2044:18:34","nodeType":"YulFunctionCall","src":"2044:18:34"},"variableNames":[{"name":"data","nativeSrc":"2036:4:34","nodeType":"YulIdentifier","src":"2036:4:34"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"1947:121:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"1986:3:34","nodeType":"YulTypedName","src":"1986:3:34","type":""}],"returnVariables":[{"name":"data","nativeSrc":"1994:4:34","nodeType":"YulTypedName","src":"1994:4:34","type":""}],"src":"1947:121:34"},{"body":{"nativeSrc":"2154:462:34","nodeType":"YulBlock","src":"2154:462:34","statements":[{"body":{"nativeSrc":"2187:423:34","nodeType":"YulBlock","src":"2187:423:34","statements":[{"nativeSrc":"2201:11:34","nodeType":"YulVariableDeclaration","src":"2201:11:34","value":{"kind":"number","nativeSrc":"2211:1:34","nodeType":"YulLiteral","src":"2211:1:34","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"2205:2:34","nodeType":"YulTypedName","src":"2205:2:34","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2232:1:34","nodeType":"YulLiteral","src":"2232:1:34","type":"","value":"0"},{"name":"array","nativeSrc":"2235:5:34","nodeType":"YulIdentifier","src":"2235:5:34"}],"functionName":{"name":"mstore","nativeSrc":"2225:6:34","nodeType":"YulIdentifier","src":"2225:6:34"},"nativeSrc":"2225:16:34","nodeType":"YulFunctionCall","src":"2225:16:34"},"nativeSrc":"2225:16:34","nodeType":"YulExpressionStatement","src":"2225:16:34"},{"nativeSrc":"2254:30:34","nodeType":"YulVariableDeclaration","src":"2254:30:34","value":{"arguments":[{"kind":"number","nativeSrc":"2276:1:34","nodeType":"YulLiteral","src":"2276:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2279:4:34","nodeType":"YulLiteral","src":"2279:4:34","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2266:9:34","nodeType":"YulIdentifier","src":"2266:9:34"},"nativeSrc":"2266:18:34","nodeType":"YulFunctionCall","src":"2266:18:34"},"variables":[{"name":"data","nativeSrc":"2258:4:34","nodeType":"YulTypedName","src":"2258:4:34","type":""}]},{"nativeSrc":"2297:57:34","nodeType":"YulVariableDeclaration","src":"2297:57:34","value":{"arguments":[{"name":"data","nativeSrc":"2320:4:34","nodeType":"YulIdentifier","src":"2320:4:34"},{"arguments":[{"kind":"number","nativeSrc":"2330:1:34","nodeType":"YulLiteral","src":"2330:1:34","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"2337:10:34","nodeType":"YulIdentifier","src":"2337:10:34"},{"kind":"number","nativeSrc":"2349:2:34","nodeType":"YulLiteral","src":"2349:2:34","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2333:3:34","nodeType":"YulIdentifier","src":"2333:3:34"},"nativeSrc":"2333:19:34","nodeType":"YulFunctionCall","src":"2333:19:34"}],"functionName":{"name":"shr","nativeSrc":"2326:3:34","nodeType":"YulIdentifier","src":"2326:3:34"},"nativeSrc":"2326:27:34","nodeType":"YulFunctionCall","src":"2326:27:34"}],"functionName":{"name":"add","nativeSrc":"2316:3:34","nodeType":"YulIdentifier","src":"2316:3:34"},"nativeSrc":"2316:38:34","nodeType":"YulFunctionCall","src":"2316:38:34"},"variables":[{"name":"deleteStart","nativeSrc":"2301:11:34","nodeType":"YulTypedName","src":"2301:11:34","type":""}]},{"body":{"nativeSrc":"2391:23:34","nodeType":"YulBlock","src":"2391:23:34","statements":[{"nativeSrc":"2393:19:34","nodeType":"YulAssignment","src":"2393:19:34","value":{"name":"data","nativeSrc":"2408:4:34","nodeType":"YulIdentifier","src":"2408:4:34"},"variableNames":[{"name":"deleteStart","nativeSrc":"2393:11:34","nodeType":"YulIdentifier","src":"2393:11:34"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"2373:10:34","nodeType":"YulIdentifier","src":"2373:10:34"},{"kind":"number","nativeSrc":"2385:4:34","nodeType":"YulLiteral","src":"2385:4:34","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"2370:2:34","nodeType":"YulIdentifier","src":"2370:2:34"},"nativeSrc":"2370:20:34","nodeType":"YulFunctionCall","src":"2370:20:34"},"nativeSrc":"2367:47:34","nodeType":"YulIf","src":"2367:47:34"},{"nativeSrc":"2427:41:34","nodeType":"YulVariableDeclaration","src":"2427:41:34","value":{"arguments":[{"name":"data","nativeSrc":"2441:4:34","nodeType":"YulIdentifier","src":"2441:4:34"},{"arguments":[{"kind":"number","nativeSrc":"2451:1:34","nodeType":"YulLiteral","src":"2451:1:34","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"2458:3:34","nodeType":"YulIdentifier","src":"2458:3:34"},{"kind":"number","nativeSrc":"2463:2:34","nodeType":"YulLiteral","src":"2463:2:34","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2454:3:34","nodeType":"YulIdentifier","src":"2454:3:34"},"nativeSrc":"2454:12:34","nodeType":"YulFunctionCall","src":"2454:12:34"}],"functionName":{"name":"shr","nativeSrc":"2447:3:34","nodeType":"YulIdentifier","src":"2447:3:34"},"nativeSrc":"2447:20:34","nodeType":"YulFunctionCall","src":"2447:20:34"}],"functionName":{"name":"add","nativeSrc":"2437:3:34","nodeType":"YulIdentifier","src":"2437:3:34"},"nativeSrc":"2437:31:34","nodeType":"YulFunctionCall","src":"2437:31:34"},"variables":[{"name":"_2","nativeSrc":"2431:2:34","nodeType":"YulTypedName","src":"2431:2:34","type":""}]},{"nativeSrc":"2481:24:34","nodeType":"YulVariableDeclaration","src":"2481:24:34","value":{"name":"deleteStart","nativeSrc":"2494:11:34","nodeType":"YulIdentifier","src":"2494:11:34"},"variables":[{"name":"start","nativeSrc":"2485:5:34","nodeType":"YulTypedName","src":"2485:5:34","type":""}]},{"body":{"nativeSrc":"2579:21:34","nodeType":"YulBlock","src":"2579:21:34","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"2588:5:34","nodeType":"YulIdentifier","src":"2588:5:34"},{"name":"_1","nativeSrc":"2595:2:34","nodeType":"YulIdentifier","src":"2595:2:34"}],"functionName":{"name":"sstore","nativeSrc":"2581:6:34","nodeType":"YulIdentifier","src":"2581:6:34"},"nativeSrc":"2581:17:34","nodeType":"YulFunctionCall","src":"2581:17:34"},"nativeSrc":"2581:17:34","nodeType":"YulExpressionStatement","src":"2581:17:34"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"2529:5:34","nodeType":"YulIdentifier","src":"2529:5:34"},{"name":"_2","nativeSrc":"2536:2:34","nodeType":"YulIdentifier","src":"2536:2:34"}],"functionName":{"name":"lt","nativeSrc":"2526:2:34","nodeType":"YulIdentifier","src":"2526:2:34"},"nativeSrc":"2526:13:34","nodeType":"YulFunctionCall","src":"2526:13:34"},"nativeSrc":"2518:82:34","nodeType":"YulForLoop","post":{"nativeSrc":"2540:26:34","nodeType":"YulBlock","src":"2540:26:34","statements":[{"nativeSrc":"2542:22:34","nodeType":"YulAssignment","src":"2542:22:34","value":{"arguments":[{"name":"start","nativeSrc":"2555:5:34","nodeType":"YulIdentifier","src":"2555:5:34"},{"kind":"number","nativeSrc":"2562:1:34","nodeType":"YulLiteral","src":"2562:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2551:3:34","nodeType":"YulIdentifier","src":"2551:3:34"},"nativeSrc":"2551:13:34","nodeType":"YulFunctionCall","src":"2551:13:34"},"variableNames":[{"name":"start","nativeSrc":"2542:5:34","nodeType":"YulIdentifier","src":"2542:5:34"}]}]},"pre":{"nativeSrc":"2522:3:34","nodeType":"YulBlock","src":"2522:3:34","statements":[]},"src":"2518:82:34"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2170:3:34","nodeType":"YulIdentifier","src":"2170:3:34"},{"kind":"number","nativeSrc":"2175:2:34","nodeType":"YulLiteral","src":"2175:2:34","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2167:2:34","nodeType":"YulIdentifier","src":"2167:2:34"},"nativeSrc":"2167:11:34","nodeType":"YulFunctionCall","src":"2167:11:34"},"nativeSrc":"2164:446:34","nodeType":"YulIf","src":"2164:446:34"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"2073:543:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2126:5:34","nodeType":"YulTypedName","src":"2126:5:34","type":""},{"name":"len","nativeSrc":"2133:3:34","nodeType":"YulTypedName","src":"2133:3:34","type":""},{"name":"startIndex","nativeSrc":"2138:10:34","nodeType":"YulTypedName","src":"2138:10:34","type":""}],"src":"2073:543:34"},{"body":{"nativeSrc":"2706:81:34","nodeType":"YulBlock","src":"2706:81:34","statements":[{"nativeSrc":"2716:65:34","nodeType":"YulAssignment","src":"2716:65:34","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"2731:4:34","nodeType":"YulIdentifier","src":"2731:4:34"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2749:1:34","nodeType":"YulLiteral","src":"2749:1:34","type":"","value":"3"},{"name":"len","nativeSrc":"2752:3:34","nodeType":"YulIdentifier","src":"2752:3:34"}],"functionName":{"name":"shl","nativeSrc":"2745:3:34","nodeType":"YulIdentifier","src":"2745:3:34"},"nativeSrc":"2745:11:34","nodeType":"YulFunctionCall","src":"2745:11:34"},{"arguments":[{"kind":"number","nativeSrc":"2762:1:34","nodeType":"YulLiteral","src":"2762:1:34","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2758:3:34","nodeType":"YulIdentifier","src":"2758:3:34"},"nativeSrc":"2758:6:34","nodeType":"YulFunctionCall","src":"2758:6:34"}],"functionName":{"name":"shr","nativeSrc":"2741:3:34","nodeType":"YulIdentifier","src":"2741:3:34"},"nativeSrc":"2741:24:34","nodeType":"YulFunctionCall","src":"2741:24:34"}],"functionName":{"name":"not","nativeSrc":"2737:3:34","nodeType":"YulIdentifier","src":"2737:3:34"},"nativeSrc":"2737:29:34","nodeType":"YulFunctionCall","src":"2737:29:34"}],"functionName":{"name":"and","nativeSrc":"2727:3:34","nodeType":"YulIdentifier","src":"2727:3:34"},"nativeSrc":"2727:40:34","nodeType":"YulFunctionCall","src":"2727:40:34"},{"arguments":[{"kind":"number","nativeSrc":"2773:1:34","nodeType":"YulLiteral","src":"2773:1:34","type":"","value":"1"},{"name":"len","nativeSrc":"2776:3:34","nodeType":"YulIdentifier","src":"2776:3:34"}],"functionName":{"name":"shl","nativeSrc":"2769:3:34","nodeType":"YulIdentifier","src":"2769:3:34"},"nativeSrc":"2769:11:34","nodeType":"YulFunctionCall","src":"2769:11:34"}],"functionName":{"name":"or","nativeSrc":"2724:2:34","nodeType":"YulIdentifier","src":"2724:2:34"},"nativeSrc":"2724:57:34","nodeType":"YulFunctionCall","src":"2724:57:34"},"variableNames":[{"name":"used","nativeSrc":"2716:4:34","nodeType":"YulIdentifier","src":"2716:4:34"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"2621:166:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2683:4:34","nodeType":"YulTypedName","src":"2683:4:34","type":""},{"name":"len","nativeSrc":"2689:3:34","nodeType":"YulTypedName","src":"2689:3:34","type":""}],"returnVariables":[{"name":"used","nativeSrc":"2697:4:34","nodeType":"YulTypedName","src":"2697:4:34","type":""}],"src":"2621:166:34"},{"body":{"nativeSrc":"2888:1249:34","nodeType":"YulBlock","src":"2888:1249:34","statements":[{"nativeSrc":"2898:24:34","nodeType":"YulVariableDeclaration","src":"2898:24:34","value":{"arguments":[{"name":"src","nativeSrc":"2918:3:34","nodeType":"YulIdentifier","src":"2918:3:34"}],"functionName":{"name":"mload","nativeSrc":"2912:5:34","nodeType":"YulIdentifier","src":"2912:5:34"},"nativeSrc":"2912:10:34","nodeType":"YulFunctionCall","src":"2912:10:34"},"variables":[{"name":"newLen","nativeSrc":"2902:6:34","nodeType":"YulTypedName","src":"2902:6:34","type":""}]},{"body":{"nativeSrc":"2965:22:34","nodeType":"YulBlock","src":"2965:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2967:16:34","nodeType":"YulIdentifier","src":"2967:16:34"},"nativeSrc":"2967:18:34","nodeType":"YulFunctionCall","src":"2967:18:34"},"nativeSrc":"2967:18:34","nodeType":"YulExpressionStatement","src":"2967:18:34"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"2937:6:34","nodeType":"YulIdentifier","src":"2937:6:34"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2953:2:34","nodeType":"YulLiteral","src":"2953:2:34","type":"","value":"64"},{"kind":"number","nativeSrc":"2957:1:34","nodeType":"YulLiteral","src":"2957:1:34","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2949:3:34","nodeType":"YulIdentifier","src":"2949:3:34"},"nativeSrc":"2949:10:34","nodeType":"YulFunctionCall","src":"2949:10:34"},{"kind":"number","nativeSrc":"2961:1:34","nodeType":"YulLiteral","src":"2961:1:34","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2945:3:34","nodeType":"YulIdentifier","src":"2945:3:34"},"nativeSrc":"2945:18:34","nodeType":"YulFunctionCall","src":"2945:18:34"}],"functionName":{"name":"gt","nativeSrc":"2934:2:34","nodeType":"YulIdentifier","src":"2934:2:34"},"nativeSrc":"2934:30:34","nodeType":"YulFunctionCall","src":"2934:30:34"},"nativeSrc":"2931:56:34","nodeType":"YulIf","src":"2931:56:34"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3040:4:34","nodeType":"YulIdentifier","src":"3040:4:34"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"3078:4:34","nodeType":"YulIdentifier","src":"3078:4:34"}],"functionName":{"name":"sload","nativeSrc":"3072:5:34","nodeType":"YulIdentifier","src":"3072:5:34"},"nativeSrc":"3072:11:34","nodeType":"YulFunctionCall","src":"3072:11:34"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"3046:25:34","nodeType":"YulIdentifier","src":"3046:25:34"},"nativeSrc":"3046:38:34","nodeType":"YulFunctionCall","src":"3046:38:34"},{"name":"newLen","nativeSrc":"3086:6:34","nodeType":"YulIdentifier","src":"3086:6:34"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"2996:43:34","nodeType":"YulIdentifier","src":"2996:43:34"},"nativeSrc":"2996:97:34","nodeType":"YulFunctionCall","src":"2996:97:34"},"nativeSrc":"2996:97:34","nodeType":"YulExpressionStatement","src":"2996:97:34"},{"nativeSrc":"3102:18:34","nodeType":"YulVariableDeclaration","src":"3102:18:34","value":{"kind":"number","nativeSrc":"3119:1:34","nodeType":"YulLiteral","src":"3119:1:34","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"3106:9:34","nodeType":"YulTypedName","src":"3106:9:34","type":""}]},{"nativeSrc":"3129:23:34","nodeType":"YulVariableDeclaration","src":"3129:23:34","value":{"kind":"number","nativeSrc":"3148:4:34","nodeType":"YulLiteral","src":"3148:4:34","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"3133:11:34","nodeType":"YulTypedName","src":"3133:11:34","type":""}]},{"nativeSrc":"3161:17:34","nodeType":"YulAssignment","src":"3161:17:34","value":{"kind":"number","nativeSrc":"3174:4:34","nodeType":"YulLiteral","src":"3174:4:34","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"3161:9:34","nodeType":"YulIdentifier","src":"3161:9:34"}]},{"cases":[{"body":{"nativeSrc":"3224:656:34","nodeType":"YulBlock","src":"3224:656:34","statements":[{"nativeSrc":"3238:35:34","nodeType":"YulVariableDeclaration","src":"3238:35:34","value":{"arguments":[{"name":"newLen","nativeSrc":"3257:6:34","nodeType":"YulIdentifier","src":"3257:6:34"},{"arguments":[{"kind":"number","nativeSrc":"3269:2:34","nodeType":"YulLiteral","src":"3269:2:34","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3265:3:34","nodeType":"YulIdentifier","src":"3265:3:34"},"nativeSrc":"3265:7:34","nodeType":"YulFunctionCall","src":"3265:7:34"}],"functionName":{"name":"and","nativeSrc":"3253:3:34","nodeType":"YulIdentifier","src":"3253:3:34"},"nativeSrc":"3253:20:34","nodeType":"YulFunctionCall","src":"3253:20:34"},"variables":[{"name":"loopEnd","nativeSrc":"3242:7:34","nodeType":"YulTypedName","src":"3242:7:34","type":""}]},{"nativeSrc":"3286:49:34","nodeType":"YulVariableDeclaration","src":"3286:49:34","value":{"arguments":[{"name":"slot","nativeSrc":"3330:4:34","nodeType":"YulIdentifier","src":"3330:4:34"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"3300:29:34","nodeType":"YulIdentifier","src":"3300:29:34"},"nativeSrc":"3300:35:34","nodeType":"YulFunctionCall","src":"3300:35:34"},"variables":[{"name":"dstPtr","nativeSrc":"3290:6:34","nodeType":"YulTypedName","src":"3290:6:34","type":""}]},{"nativeSrc":"3348:10:34","nodeType":"YulVariableDeclaration","src":"3348:10:34","value":{"kind":"number","nativeSrc":"3357:1:34","nodeType":"YulLiteral","src":"3357:1:34","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3352:1:34","nodeType":"YulTypedName","src":"3352:1:34","type":""}]},{"body":{"nativeSrc":"3435:172:34","nodeType":"YulBlock","src":"3435:172:34","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3460:6:34","nodeType":"YulIdentifier","src":"3460:6:34"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3478:3:34","nodeType":"YulIdentifier","src":"3478:3:34"},{"name":"srcOffset","nativeSrc":"3483:9:34","nodeType":"YulIdentifier","src":"3483:9:34"}],"functionName":{"name":"add","nativeSrc":"3474:3:34","nodeType":"YulIdentifier","src":"3474:3:34"},"nativeSrc":"3474:19:34","nodeType":"YulFunctionCall","src":"3474:19:34"}],"functionName":{"name":"mload","nativeSrc":"3468:5:34","nodeType":"YulIdentifier","src":"3468:5:34"},"nativeSrc":"3468:26:34","nodeType":"YulFunctionCall","src":"3468:26:34"}],"functionName":{"name":"sstore","nativeSrc":"3453:6:34","nodeType":"YulIdentifier","src":"3453:6:34"},"nativeSrc":"3453:42:34","nodeType":"YulFunctionCall","src":"3453:42:34"},"nativeSrc":"3453:42:34","nodeType":"YulExpressionStatement","src":"3453:42:34"},{"nativeSrc":"3512:24:34","nodeType":"YulAssignment","src":"3512:24:34","value":{"arguments":[{"name":"dstPtr","nativeSrc":"3526:6:34","nodeType":"YulIdentifier","src":"3526:6:34"},{"kind":"number","nativeSrc":"3534:1:34","nodeType":"YulLiteral","src":"3534:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3522:3:34","nodeType":"YulIdentifier","src":"3522:3:34"},"nativeSrc":"3522:14:34","nodeType":"YulFunctionCall","src":"3522:14:34"},"variableNames":[{"name":"dstPtr","nativeSrc":"3512:6:34","nodeType":"YulIdentifier","src":"3512:6:34"}]},{"nativeSrc":"3553:40:34","nodeType":"YulAssignment","src":"3553:40:34","value":{"arguments":[{"name":"srcOffset","nativeSrc":"3570:9:34","nodeType":"YulIdentifier","src":"3570:9:34"},{"name":"srcOffset_1","nativeSrc":"3581:11:34","nodeType":"YulIdentifier","src":"3581:11:34"}],"functionName":{"name":"add","nativeSrc":"3566:3:34","nodeType":"YulIdentifier","src":"3566:3:34"},"nativeSrc":"3566:27:34","nodeType":"YulFunctionCall","src":"3566:27:34"},"variableNames":[{"name":"srcOffset","nativeSrc":"3553:9:34","nodeType":"YulIdentifier","src":"3553:9:34"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3382:1:34","nodeType":"YulIdentifier","src":"3382:1:34"},{"name":"loopEnd","nativeSrc":"3385:7:34","nodeType":"YulIdentifier","src":"3385:7:34"}],"functionName":{"name":"lt","nativeSrc":"3379:2:34","nodeType":"YulIdentifier","src":"3379:2:34"},"nativeSrc":"3379:14:34","nodeType":"YulFunctionCall","src":"3379:14:34"},"nativeSrc":"3371:236:34","nodeType":"YulForLoop","post":{"nativeSrc":"3394:28:34","nodeType":"YulBlock","src":"3394:28:34","statements":[{"nativeSrc":"3396:24:34","nodeType":"YulAssignment","src":"3396:24:34","value":{"arguments":[{"name":"i","nativeSrc":"3405:1:34","nodeType":"YulIdentifier","src":"3405:1:34"},{"name":"srcOffset_1","nativeSrc":"3408:11:34","nodeType":"YulIdentifier","src":"3408:11:34"}],"functionName":{"name":"add","nativeSrc":"3401:3:34","nodeType":"YulIdentifier","src":"3401:3:34"},"nativeSrc":"3401:19:34","nodeType":"YulFunctionCall","src":"3401:19:34"},"variableNames":[{"name":"i","nativeSrc":"3396:1:34","nodeType":"YulIdentifier","src":"3396:1:34"}]}]},"pre":{"nativeSrc":"3375:3:34","nodeType":"YulBlock","src":"3375:3:34","statements":[]},"src":"3371:236:34"},{"body":{"nativeSrc":"3655:166:34","nodeType":"YulBlock","src":"3655:166:34","statements":[{"nativeSrc":"3673:43:34","nodeType":"YulVariableDeclaration","src":"3673:43:34","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3700:3:34","nodeType":"YulIdentifier","src":"3700:3:34"},{"name":"srcOffset","nativeSrc":"3705:9:34","nodeType":"YulIdentifier","src":"3705:9:34"}],"functionName":{"name":"add","nativeSrc":"3696:3:34","nodeType":"YulIdentifier","src":"3696:3:34"},"nativeSrc":"3696:19:34","nodeType":"YulFunctionCall","src":"3696:19:34"}],"functionName":{"name":"mload","nativeSrc":"3690:5:34","nodeType":"YulIdentifier","src":"3690:5:34"},"nativeSrc":"3690:26:34","nodeType":"YulFunctionCall","src":"3690:26:34"},"variables":[{"name":"lastValue","nativeSrc":"3677:9:34","nodeType":"YulTypedName","src":"3677:9:34","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"3740:6:34","nodeType":"YulIdentifier","src":"3740:6:34"},{"arguments":[{"name":"lastValue","nativeSrc":"3752:9:34","nodeType":"YulIdentifier","src":"3752:9:34"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3779:1:34","nodeType":"YulLiteral","src":"3779:1:34","type":"","value":"3"},{"name":"newLen","nativeSrc":"3782:6:34","nodeType":"YulIdentifier","src":"3782:6:34"}],"functionName":{"name":"shl","nativeSrc":"3775:3:34","nodeType":"YulIdentifier","src":"3775:3:34"},"nativeSrc":"3775:14:34","nodeType":"YulFunctionCall","src":"3775:14:34"},{"kind":"number","nativeSrc":"3791:3:34","nodeType":"YulLiteral","src":"3791:3:34","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"3771:3:34","nodeType":"YulIdentifier","src":"3771:3:34"},"nativeSrc":"3771:24:34","nodeType":"YulFunctionCall","src":"3771:24:34"},{"arguments":[{"kind":"number","nativeSrc":"3801:1:34","nodeType":"YulLiteral","src":"3801:1:34","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3797:3:34","nodeType":"YulIdentifier","src":"3797:3:34"},"nativeSrc":"3797:6:34","nodeType":"YulFunctionCall","src":"3797:6:34"}],"functionName":{"name":"shr","nativeSrc":"3767:3:34","nodeType":"YulIdentifier","src":"3767:3:34"},"nativeSrc":"3767:37:34","nodeType":"YulFunctionCall","src":"3767:37:34"}],"functionName":{"name":"not","nativeSrc":"3763:3:34","nodeType":"YulIdentifier","src":"3763:3:34"},"nativeSrc":"3763:42:34","nodeType":"YulFunctionCall","src":"3763:42:34"}],"functionName":{"name":"and","nativeSrc":"3748:3:34","nodeType":"YulIdentifier","src":"3748:3:34"},"nativeSrc":"3748:58:34","nodeType":"YulFunctionCall","src":"3748:58:34"}],"functionName":{"name":"sstore","nativeSrc":"3733:6:34","nodeType":"YulIdentifier","src":"3733:6:34"},"nativeSrc":"3733:74:34","nodeType":"YulFunctionCall","src":"3733:74:34"},"nativeSrc":"3733:74:34","nodeType":"YulExpressionStatement","src":"3733:74:34"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"3626:7:34","nodeType":"YulIdentifier","src":"3626:7:34"},{"name":"newLen","nativeSrc":"3635:6:34","nodeType":"YulIdentifier","src":"3635:6:34"}],"functionName":{"name":"lt","nativeSrc":"3623:2:34","nodeType":"YulIdentifier","src":"3623:2:34"},"nativeSrc":"3623:19:34","nodeType":"YulFunctionCall","src":"3623:19:34"},"nativeSrc":"3620:201:34","nodeType":"YulIf","src":"3620:201:34"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3841:4:34","nodeType":"YulIdentifier","src":"3841:4:34"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3855:1:34","nodeType":"YulLiteral","src":"3855:1:34","type":"","value":"1"},{"name":"newLen","nativeSrc":"3858:6:34","nodeType":"YulIdentifier","src":"3858:6:34"}],"functionName":{"name":"shl","nativeSrc":"3851:3:34","nodeType":"YulIdentifier","src":"3851:3:34"},"nativeSrc":"3851:14:34","nodeType":"YulFunctionCall","src":"3851:14:34"},{"kind":"number","nativeSrc":"3867:1:34","nodeType":"YulLiteral","src":"3867:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3847:3:34","nodeType":"YulIdentifier","src":"3847:3:34"},"nativeSrc":"3847:22:34","nodeType":"YulFunctionCall","src":"3847:22:34"}],"functionName":{"name":"sstore","nativeSrc":"3834:6:34","nodeType":"YulIdentifier","src":"3834:6:34"},"nativeSrc":"3834:36:34","nodeType":"YulFunctionCall","src":"3834:36:34"},"nativeSrc":"3834:36:34","nodeType":"YulExpressionStatement","src":"3834:36:34"}]},"nativeSrc":"3217:663:34","nodeType":"YulCase","src":"3217:663:34","value":{"kind":"number","nativeSrc":"3222:1:34","nodeType":"YulLiteral","src":"3222:1:34","type":"","value":"1"}},{"body":{"nativeSrc":"3897:234:34","nodeType":"YulBlock","src":"3897:234:34","statements":[{"nativeSrc":"3911:14:34","nodeType":"YulVariableDeclaration","src":"3911:14:34","value":{"kind":"number","nativeSrc":"3924:1:34","nodeType":"YulLiteral","src":"3924:1:34","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"3915:5:34","nodeType":"YulTypedName","src":"3915:5:34","type":""}]},{"body":{"nativeSrc":"3960:67:34","nodeType":"YulBlock","src":"3960:67:34","statements":[{"nativeSrc":"3978:35:34","nodeType":"YulAssignment","src":"3978:35:34","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3997:3:34","nodeType":"YulIdentifier","src":"3997:3:34"},{"name":"srcOffset","nativeSrc":"4002:9:34","nodeType":"YulIdentifier","src":"4002:9:34"}],"functionName":{"name":"add","nativeSrc":"3993:3:34","nodeType":"YulIdentifier","src":"3993:3:34"},"nativeSrc":"3993:19:34","nodeType":"YulFunctionCall","src":"3993:19:34"}],"functionName":{"name":"mload","nativeSrc":"3987:5:34","nodeType":"YulIdentifier","src":"3987:5:34"},"nativeSrc":"3987:26:34","nodeType":"YulFunctionCall","src":"3987:26:34"},"variableNames":[{"name":"value","nativeSrc":"3978:5:34","nodeType":"YulIdentifier","src":"3978:5:34"}]}]},"condition":{"name":"newLen","nativeSrc":"3941:6:34","nodeType":"YulIdentifier","src":"3941:6:34"},"nativeSrc":"3938:89:34","nodeType":"YulIf","src":"3938:89:34"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4047:4:34","nodeType":"YulIdentifier","src":"4047:4:34"},{"arguments":[{"name":"value","nativeSrc":"4106:5:34","nodeType":"YulIdentifier","src":"4106:5:34"},{"name":"newLen","nativeSrc":"4113:6:34","nodeType":"YulIdentifier","src":"4113:6:34"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"4053:52:34","nodeType":"YulIdentifier","src":"4053:52:34"},"nativeSrc":"4053:67:34","nodeType":"YulFunctionCall","src":"4053:67:34"}],"functionName":{"name":"sstore","nativeSrc":"4040:6:34","nodeType":"YulIdentifier","src":"4040:6:34"},"nativeSrc":"4040:81:34","nodeType":"YulFunctionCall","src":"4040:81:34"},"nativeSrc":"4040:81:34","nodeType":"YulExpressionStatement","src":"4040:81:34"}]},"nativeSrc":"3889:242:34","nodeType":"YulCase","src":"3889:242:34","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"3197:6:34","nodeType":"YulIdentifier","src":"3197:6:34"},{"kind":"number","nativeSrc":"3205:2:34","nodeType":"YulLiteral","src":"3205:2:34","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3194:2:34","nodeType":"YulIdentifier","src":"3194:2:34"},"nativeSrc":"3194:14:34","nodeType":"YulFunctionCall","src":"3194:14:34"},"nativeSrc":"3187:944:34","nodeType":"YulSwitch","src":"3187:944:34"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"2792:1345:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"2873:4:34","nodeType":"YulTypedName","src":"2873:4:34","type":""},{"name":"src","nativeSrc":"2879:3:34","nodeType":"YulTypedName","src":"2879:3:34","type":""}],"src":"2792:1345:34"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_string_fromMemory(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := mload(offset)\n        let _2 := sub(shl(64, 1), 1)\n        if gt(_1, _2) { panic_error_0x41() }\n        let _3 := not(31)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n        if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _1)\n        let _4 := 0x20\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        let i := 0\n        for { } lt(i, _1) { i := add(i, _4) }\n        {\n            mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n        }\n        mstore(add(add(memPtr, _1), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n        let offset_1 := mload(add(headStart, 32))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n}","id":34,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162001a6838038062001a68833981016040819052620000349162000122565b60006200004283826200021d565b5060016200005182826200021d565b505050620002e9565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b8160405283815260209250866020858801011115620000e857600080fd5b600091505b838210156200010c5785820183015181830184015290820190620000ed565b6000602085830101528094505050505092915050565b600080604083850312156200013657600080fd5b82516001600160401b03808211156200014e57600080fd5b6200015c8683870162000070565b935060208501519150808211156200017357600080fd5b50620001828582860162000070565b9150509250929050565b600181811c90821680620001a157607f821691505b602082108103620001c257634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000218576000816000526020600020601f850160051c81016020861015620001f35750805b601f850160051c820191505b818110156200021457828155600101620001ff565b5050505b505050565b81516001600160401b038111156200023957620002396200005a565b62000251816200024a84546200018c565b84620001c8565b602080601f831160018114620002895760008415620002705750858301515b600019600386901b1c1916600185901b17855562000214565b600085815260208120601f198616915b82811015620002ba5788860151825594840194600190910190840162000299565b5085821015620002d95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61176f80620002f96000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101d0578063b88d4fde146101e3578063c87b56dd146101f6578063e985e9c51461020957600080fd5b80636352211e1461019457806370a08231146101a757806395d89b41146101c857600080fd5b8063095ea7b3116100bd578063095ea7b31461015957806323b872dd1461016e57806342842e0e1461018157600080fd5b806301ffc9a7146100e457806306fdde031461010c578063081812fc14610121575b600080fd5b6100f76100f2366004611358565b610252565b60405190151581526020015b60405180910390f35b610114610337565b60405161010391906113e3565b61013461012f3660046113f6565b6103c9565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610103565b61016c610167366004611438565b6103fd565b005b61016c61017c366004611462565b61058e565b61016c61018f366004611462565b61062f565b6101346101a23660046113f6565b61064a565b6101ba6101b536600461149e565b6106d6565b604051908152602001610103565b6101146107a4565b61016c6101de3660046114b9565b6107b3565b61016c6101f1366004611524565b6107c2565b6101146102043660046113f6565b61086a565b6100f761021736600461161e565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102e557507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061033157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606000805461034690611651565b80601f016020809104026020016040519081016040528092919081815260200182805461037290611651565b80156103bf5780601f10610394576101008083540402835291602001916103bf565b820191906000526020600020905b8154815290600101906020018083116103a257829003601f168201915b5050505050905090565b60006103d4826108de565b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006104088261064a565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff821614806104f357506104f38133610217565b61057f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016104c1565b610589838361096c565b505050565b6105983382610a0c565b610624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016104c1565b610589838383610acc565b610589838383604051806020016040528060008152506107c2565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016104c1565b600073ffffffffffffffffffffffffffffffffffffffff821661077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e6572000000000000000000000000000000000000000000000060648201526084016104c1565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60606001805461034690611651565b6107be338383610dc7565b5050565b6107cc3383610a0c565b610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016104c1565b61086484848484610ef4565b50505050565b6060610875826108de565b600061088c60408051602081019091526000815290565b905060008151116108ac57604051806020016040528060008152506108d7565b806108b684610f97565b6040516020016108c79291906116a4565b6040516020818303038152906040525b9392505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016104c1565b50565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906109c68261064a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610a188361064a565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610a86575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b80610ac457508373ffffffffffffffffffffffffffffffffffffffff16610aac846103c9565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610aec8261064a565b73ffffffffffffffffffffffffffffffffffffffff1614610b8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016104c1565b73ffffffffffffffffffffffffffffffffffffffff8216610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104c1565b8273ffffffffffffffffffffffffffffffffffffffff16610c518261064a565b73ffffffffffffffffffffffffffffffffffffffff1614610cf4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016104c1565b600081815260046020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526003855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104c1565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610eff848484610acc565b610f0b84848484611055565b610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016104c1565b60606000610fa483611248565b600101905060008167ffffffffffffffff811115610fc457610fc46114f5565b6040519080825280601f01601f191660200182016040528015610fee576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610ff857509392505050565b600073ffffffffffffffffffffffffffffffffffffffff84163b1561123d576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906110cc9033908990889088906004016116d3565b6020604051808303816000875af1925050508015611125575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526111229181019061171c565b60015b6111f2573d808015611153576040519150601f19603f3d011682016040523d82523d6000602084013e611158565b606091505b5080516000036111ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016104c1565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610ac4565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611291577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106112bd576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106112db57662386f26fc10000830492506010015b6305f5e10083106112f3576305f5e100830492506008015b612710831061130757612710830492506004015b60648310611319576064830492506002015b600a83106103315760010192915050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461096957600080fd5b60006020828403121561136a57600080fd5b81356108d78161132a565b60005b83811015611390578181015183820152602001611378565b50506000910152565b600081518084526113b1816020860160208601611375565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006108d76020830184611399565b60006020828403121561140857600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461143357600080fd5b919050565b6000806040838503121561144b57600080fd5b6114548361140f565b946020939093013593505050565b60008060006060848603121561147757600080fd5b6114808461140f565b925061148e6020850161140f565b9150604084013590509250925092565b6000602082840312156114b057600080fd5b6108d78261140f565b600080604083850312156114cc57600080fd5b6114d58361140f565b9150602083013580151581146114ea57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561153a57600080fd5b6115438561140f565b93506115516020860161140f565b925060408501359150606085013567ffffffffffffffff8082111561157557600080fd5b818701915087601f83011261158957600080fd5b81358181111561159b5761159b6114f5565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156115e1576115e16114f5565b816040528281528a60208487010111156115fa57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561163157600080fd5b61163a8361140f565b91506116486020840161140f565b90509250929050565b600181811c9082168061166557607f821691505b60208210810361169e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600083516116b6818460208801611375565b8351908301906116ca818360208801611375565b01949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526117126080830184611399565b9695505050505050565b60006020828403121561172e57600080fd5b81516108d78161132a56fea264697066735822122047779c09e6a4ad00acf1e739a208e212ab40295a4e994e9cba5d65ce116759e364736f6c63430008170033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1A68 CODESIZE SUB DUP1 PUSH3 0x1A68 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x122 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x42 DUP4 DUP3 PUSH3 0x21D JUMP JUMPDEST POP PUSH1 0x1 PUSH3 0x51 DUP3 DUP3 PUSH3 0x21D JUMP JUMPDEST POP POP POP PUSH3 0x2E9 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x9F JUMPI PUSH3 0x9F PUSH3 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0xCA JUMPI PUSH3 0xCA PUSH3 0x5A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 PUSH1 0x20 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0xE8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x10C JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0xED JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x14E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x15C DUP7 DUP4 DUP8 ADD PUSH3 0x70 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x182 DUP6 DUP3 DUP7 ADD PUSH3 0x70 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x1A1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x1C2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x218 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x1F3 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x214 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x1FF JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x239 JUMPI PUSH3 0x239 PUSH3 0x5A JUMP JUMPDEST PUSH3 0x251 DUP2 PUSH3 0x24A DUP5 SLOAD PUSH3 0x18C JUMP JUMPDEST DUP5 PUSH3 0x1C8 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x289 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x270 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x214 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x2BA JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x299 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x2D9 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x176F DUP1 PUSH3 0x2F9 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 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1D0 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x181 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x121 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1358 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x114 PUSH2 0x337 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x13E3 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0x13F6 JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0x1438 JUMP JUMPDEST PUSH2 0x3FD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16C PUSH2 0x17C CALLDATASIZE PUSH1 0x4 PUSH2 0x1462 JUMP JUMPDEST PUSH2 0x58E JUMP JUMPDEST PUSH2 0x16C PUSH2 0x18F CALLDATASIZE PUSH1 0x4 PUSH2 0x1462 JUMP JUMPDEST PUSH2 0x62F JUMP JUMPDEST PUSH2 0x134 PUSH2 0x1A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x13F6 JUMP JUMPDEST PUSH2 0x64A JUMP JUMPDEST PUSH2 0x1BA PUSH2 0x1B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x149E JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x114 PUSH2 0x7A4 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x1DE CALLDATASIZE PUSH1 0x4 PUSH2 0x14B9 JUMP JUMPDEST PUSH2 0x7B3 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x1F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1524 JUMP JUMPDEST PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x114 PUSH2 0x204 CALLDATASIZE PUSH1 0x4 PUSH2 0x13F6 JUMP JUMPDEST PUSH2 0x86A JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x217 CALLDATASIZE PUSH1 0x4 PUSH2 0x161E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x2E5 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0x331 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x346 SWAP1 PUSH2 0x1651 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 0x372 SWAP1 PUSH2 0x1651 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3BF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x394 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3BF 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 0x3A2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D4 DUP3 PUSH2 0x8DE JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x408 DUP3 PUSH2 0x64A JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x4CA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND EQ DUP1 PUSH2 0x4F3 JUMPI POP PUSH2 0x4F3 DUP2 CALLER PUSH2 0x217 JUMP JUMPDEST PUSH2 0x57F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH2 0x589 DUP4 DUP4 PUSH2 0x96C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x598 CALLER DUP3 PUSH2 0xA0C JUMP JUMPDEST PUSH2 0x624 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH2 0x589 DUP4 DUP4 DUP4 PUSH2 0xACC JUMP JUMPDEST PUSH2 0x589 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 PUSH2 0x331 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x77B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x346 SWAP1 PUSH2 0x1651 JUMP JUMPDEST PUSH2 0x7BE CALLER DUP4 DUP4 PUSH2 0xDC7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x7CC CALLER DUP4 PUSH2 0xA0C JUMP JUMPDEST PUSH2 0x858 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH2 0x864 DUP5 DUP5 DUP5 DUP5 PUSH2 0xEF4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x875 DUP3 PUSH2 0x8DE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x88C PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x8AC JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x8D7 JUMP JUMPDEST DUP1 PUSH2 0x8B6 DUP5 PUSH2 0xF97 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8C7 SWAP3 SWAP2 SWAP1 PUSH2 0x16A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x969 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x9C6 DUP3 PUSH2 0x64A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA18 DUP4 PUSH2 0x64A JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xA86 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0xAC4 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xAAC DUP5 PUSH2 0x3C9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xAEC DUP3 PUSH2 0x64A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB8F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xC31 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC51 DUP3 PUSH2 0x64A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x3 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0x2 SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE5C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xEFF DUP5 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST PUSH2 0xF0B DUP5 DUP5 DUP5 DUP5 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0x864 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xFA4 DUP4 PUSH2 0x1248 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFC4 JUMPI PUSH2 0xFC4 PUSH2 0x14F5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFEE JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xFF8 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE ISZERO PUSH2 0x123D JUMPI PUSH1 0x40 MLOAD PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x10CC SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x16D3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1125 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1122 SWAP2 DUP2 ADD SWAP1 PUSH2 0x171C JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11F2 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1153 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1158 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x11EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 EQ SWAP1 POP PUSH2 0xAC4 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1291 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x12BD JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x12DB JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x12F3 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1307 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1319 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x331 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x969 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x136A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x8D7 DUP2 PUSH2 0x132A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1390 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1378 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x13B1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1375 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x8D7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1433 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x144B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1454 DUP4 PUSH2 0x140F JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1477 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1480 DUP5 PUSH2 0x140F JUMP JUMPDEST SWAP3 POP PUSH2 0x148E PUSH1 0x20 DUP6 ADD PUSH2 0x140F JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8D7 DUP3 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14D5 DUP4 PUSH2 0x140F JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x14EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x153A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1543 DUP6 PUSH2 0x140F JUMP JUMPDEST SWAP4 POP PUSH2 0x1551 PUSH1 0x20 DUP7 ADD PUSH2 0x140F JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1589 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x159B JUMPI PUSH2 0x159B PUSH2 0x14F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x15E1 JUMPI PUSH2 0x15E1 PUSH2 0x14F5 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x15FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1631 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x163A DUP4 PUSH2 0x140F JUMP JUMPDEST SWAP2 POP PUSH2 0x1648 PUSH1 0x20 DUP5 ADD PUSH2 0x140F JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1665 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x169E JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x16B6 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1375 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x16CA DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1375 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1712 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x1399 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x172E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x8D7 DUP2 PUSH2 0x132A JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE PUSH24 0x9C09E6A4AD00ACF1E739A208E212AB40295A4E994E9CBA5D PUSH6 0xCE116759E364 PUSH20 0x6F6C634300081700330000000000000000000000 ","sourceMap":"628:16377:9:-:0;;;1390:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1456:5;:13;1464:5;1456;:13;:::i;:::-;-1:-1:-1;1479:7:9;:17;1489:7;1479;:17;:::i;:::-;;1390:113;;628:16377;;14:127:34;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:34;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:34;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:562::-;1094:6;1102;1155:2;1143:9;1134:7;1130:23;1126:32;1123:52;;;1171:1;1168;1161:12;1123:52;1198:16;;-1:-1:-1;;;;;1263:14:34;;;1260:34;;;1290:1;1287;1280:12;1260:34;1313:61;1366:7;1357:6;1346:9;1342:22;1313:61;:::i;:::-;1303:71;;1420:2;1409:9;1405:18;1399:25;1383:41;;1449:2;1439:8;1436:16;1433:36;;;1465:1;1462;1455:12;1433:36;;1488:63;1543:7;1532:8;1521:9;1517:24;1488:63;:::i;:::-;1478:73;;;995:562;;;;;:::o;1562:380::-;1641:1;1637:12;;;;1684;;;1705:61;;1759:4;1751:6;1747:17;1737:27;;1705:61;1812:2;1804:6;1801:14;1781:18;1778:38;1775:161;;1858:10;1853:3;1849:20;1846:1;1839:31;1893:4;1890:1;1883:15;1921:4;1918:1;1911:15;1775:161;;1562:380;;;:::o;2073:543::-;2175:2;2170:3;2167:11;2164:446;;;2211:1;2235:5;2232:1;2225:16;2279:4;2276:1;2266:18;2349:2;2337:10;2333:19;2330:1;2326:27;2320:4;2316:38;2385:4;2373:10;2370:20;2367:47;;;-1:-1:-1;2408:4:34;2367:47;2463:2;2458:3;2454:12;2451:1;2447:20;2441:4;2437:31;2427:41;;2518:82;2536:2;2529:5;2526:13;2518:82;;;2581:17;;;2562:1;2551:13;2518:82;;;2522:3;;;2164:446;2073:543;;;:::o;2792:1345::-;2912:10;;-1:-1:-1;;;;;2934:30:34;;2931:56;;;2967:18;;:::i;:::-;2996:97;3086:6;3046:38;3078:4;3072:11;3046:38;:::i;:::-;3040:4;2996:97;:::i;:::-;3148:4;;3205:2;3194:14;;3222:1;3217:663;;;;3924:1;3941:6;3938:89;;;-1:-1:-1;3993:19:34;;;3987:26;3938:89;-1:-1:-1;;2749:1:34;2745:11;;;2741:24;2737:29;2727:40;2773:1;2769:11;;;2724:57;4040:81;;3187:944;;3217:663;2020:1;2013:14;;;2057:4;2044:18;;-1:-1:-1;;3253:20:34;;;3371:236;3385:7;3382:1;3379:14;3371:236;;;3474:19;;;3468:26;3453:42;;3566:27;;;;3534:1;3522:14;;;;3401:19;;3371:236;;;3375:3;3635:6;3626:7;3623:19;3620:201;;;3696:19;;;3690:26;-1:-1:-1;;3779:1:34;3775:14;;;3791:3;3771:24;3767:37;3763:42;3748:58;3733:74;;3620:201;-1:-1:-1;;;;;3867:1:34;3851:14;;;3847:22;3834:36;;-1:-1:-1;2792:1345:34:o;:::-;628:16377:9;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1776":{"entryPoint":null,"id":1776,"parameterSlots":4,"returnSlots":0},"@_approve_1642":{"entryPoint":2412,"id":1642,"parameterSlots":2,"returnSlots":0},"@_baseURI_1079":{"entryPoint":null,"id":1079,"parameterSlots":0,"returnSlots":1},"@_beforeTokenTransfer_1763":{"entryPoint":null,"id":1763,"parameterSlots":4,"returnSlots":0},"@_checkOnERC721Received_1750":{"entryPoint":4181,"id":1750,"parameterSlots":4,"returnSlots":1},"@_exists_1311":{"entryPoint":null,"id":1311,"parameterSlots":1,"returnSlots":1},"@_isApprovedOrOwner_1345":{"entryPoint":2572,"id":1345,"parameterSlots":2,"returnSlots":1},"@_msgSender_2493":{"entryPoint":null,"id":2493,"parameterSlots":0,"returnSlots":1},"@_ownerOf_1293":{"entryPoint":null,"id":1293,"parameterSlots":1,"returnSlots":1},"@_requireMinted_1688":{"entryPoint":2270,"id":1688,"parameterSlots":1,"returnSlots":0},"@_safeTransfer_1280":{"entryPoint":3828,"id":1280,"parameterSlots":4,"returnSlots":0},"@_setApprovalForAll_1674":{"entryPoint":3527,"id":1674,"parameterSlots":3,"returnSlots":0},"@_transfer_1618":{"entryPoint":2764,"id":1618,"parameterSlots":3,"returnSlots":0},"@approve_1122":{"entryPoint":1021,"id":1122,"parameterSlots":2,"returnSlots":0},"@balanceOf_983":{"entryPoint":1750,"id":983,"parameterSlots":1,"returnSlots":1},"@getApproved_1140":{"entryPoint":969,"id":1140,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_1175":{"entryPoint":null,"id":1175,"parameterSlots":2,"returnSlots":1},"@isContract_2169":{"entryPoint":null,"id":2169,"parameterSlots":1,"returnSlots":1},"@log10_4548":{"entryPoint":4680,"id":4548,"parameterSlots":1,"returnSlots":1},"@name_1021":{"entryPoint":823,"id":1021,"parameterSlots":0,"returnSlots":1},"@ownerOf_1011":{"entryPoint":1610,"id":1011,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_1221":{"entryPoint":1583,"id":1221,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_1251":{"entryPoint":1986,"id":1251,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_1157":{"entryPoint":1971,"id":1157,"parameterSlots":2,"returnSlots":0},"@supportsInterface_3832":{"entryPoint":null,"id":3832,"parameterSlots":1,"returnSlots":1},"@supportsInterface_959":{"entryPoint":594,"id":959,"parameterSlots":1,"returnSlots":1},"@symbol_1031":{"entryPoint":1956,"id":1031,"parameterSlots":0,"returnSlots":1},"@toString_2970":{"entryPoint":3991,"id":2970,"parameterSlots":1,"returnSlots":1},"@tokenURI_1070":{"entryPoint":2154,"id":1070,"parameterSlots":1,"returnSlots":1},"@transferFrom_1202":{"entryPoint":1422,"id":1202,"parameterSlots":3,"returnSlots":0},"abi_decode_address":{"entryPoint":5135,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5278,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":5662,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":5218,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":5412,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_bool":{"entryPoint":5305,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":5176,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":4952,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":5916,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":5110,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":5017,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5796,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5843,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5091,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":4981,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":5713,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5365,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":4906,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10536:34","nodeType":"YulBlock","src":"0:10536:34","statements":[{"nativeSrc":"6:3:34","nodeType":"YulBlock","src":"6:3:34","statements":[]},{"body":{"nativeSrc":"58:133:34","nodeType":"YulBlock","src":"58:133:34","statements":[{"body":{"nativeSrc":"169:16:34","nodeType":"YulBlock","src":"169:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:34","nodeType":"YulLiteral","src":"178:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:34","nodeType":"YulLiteral","src":"181:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:34","nodeType":"YulIdentifier","src":"171:6:34"},"nativeSrc":"171:12:34","nodeType":"YulFunctionCall","src":"171:12:34"},"nativeSrc":"171:12:34","nodeType":"YulExpressionStatement","src":"171:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"81:5:34","nodeType":"YulIdentifier","src":"81:5:34"},{"arguments":[{"name":"value","nativeSrc":"92:5:34","nodeType":"YulIdentifier","src":"92:5:34"},{"kind":"number","nativeSrc":"99:66:34","nodeType":"YulLiteral","src":"99:66:34","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"88:3:34","nodeType":"YulIdentifier","src":"88:3:34"},"nativeSrc":"88:78:34","nodeType":"YulFunctionCall","src":"88:78:34"}],"functionName":{"name":"eq","nativeSrc":"78:2:34","nodeType":"YulIdentifier","src":"78:2:34"},"nativeSrc":"78:89:34","nodeType":"YulFunctionCall","src":"78:89:34"}],"functionName":{"name":"iszero","nativeSrc":"71:6:34","nodeType":"YulIdentifier","src":"71:6:34"},"nativeSrc":"71:97:34","nodeType":"YulFunctionCall","src":"71:97:34"},"nativeSrc":"68:117:34","nodeType":"YulIf","src":"68:117:34"}]},"name":"validator_revert_bytes4","nativeSrc":"14:177:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47:5:34","nodeType":"YulTypedName","src":"47:5:34","type":""}],"src":"14:177:34"},{"body":{"nativeSrc":"265:176:34","nodeType":"YulBlock","src":"265:176:34","statements":[{"body":{"nativeSrc":"311:16:34","nodeType":"YulBlock","src":"311:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"320:1:34","nodeType":"YulLiteral","src":"320:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"323:1:34","nodeType":"YulLiteral","src":"323:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"313:6:34","nodeType":"YulIdentifier","src":"313:6:34"},"nativeSrc":"313:12:34","nodeType":"YulFunctionCall","src":"313:12:34"},"nativeSrc":"313:12:34","nodeType":"YulExpressionStatement","src":"313:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"286:7:34","nodeType":"YulIdentifier","src":"286:7:34"},{"name":"headStart","nativeSrc":"295:9:34","nodeType":"YulIdentifier","src":"295:9:34"}],"functionName":{"name":"sub","nativeSrc":"282:3:34","nodeType":"YulIdentifier","src":"282:3:34"},"nativeSrc":"282:23:34","nodeType":"YulFunctionCall","src":"282:23:34"},{"kind":"number","nativeSrc":"307:2:34","nodeType":"YulLiteral","src":"307:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"278:3:34","nodeType":"YulIdentifier","src":"278:3:34"},"nativeSrc":"278:32:34","nodeType":"YulFunctionCall","src":"278:32:34"},"nativeSrc":"275:52:34","nodeType":"YulIf","src":"275:52:34"},{"nativeSrc":"336:36:34","nodeType":"YulVariableDeclaration","src":"336:36:34","value":{"arguments":[{"name":"headStart","nativeSrc":"362:9:34","nodeType":"YulIdentifier","src":"362:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"349:12:34","nodeType":"YulIdentifier","src":"349:12:34"},"nativeSrc":"349:23:34","nodeType":"YulFunctionCall","src":"349:23:34"},"variables":[{"name":"value","nativeSrc":"340:5:34","nodeType":"YulTypedName","src":"340:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"405:5:34","nodeType":"YulIdentifier","src":"405:5:34"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"381:23:34","nodeType":"YulIdentifier","src":"381:23:34"},"nativeSrc":"381:30:34","nodeType":"YulFunctionCall","src":"381:30:34"},"nativeSrc":"381:30:34","nodeType":"YulExpressionStatement","src":"381:30:34"},{"nativeSrc":"420:15:34","nodeType":"YulAssignment","src":"420:15:34","value":{"name":"value","nativeSrc":"430:5:34","nodeType":"YulIdentifier","src":"430:5:34"},"variableNames":[{"name":"value0","nativeSrc":"420:6:34","nodeType":"YulIdentifier","src":"420:6:34"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"196:245:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"231:9:34","nodeType":"YulTypedName","src":"231:9:34","type":""},{"name":"dataEnd","nativeSrc":"242:7:34","nodeType":"YulTypedName","src":"242:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"254:6:34","nodeType":"YulTypedName","src":"254:6:34","type":""}],"src":"196:245:34"},{"body":{"nativeSrc":"541:92:34","nodeType":"YulBlock","src":"541:92:34","statements":[{"nativeSrc":"551:26:34","nodeType":"YulAssignment","src":"551:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"563:9:34","nodeType":"YulIdentifier","src":"563:9:34"},{"kind":"number","nativeSrc":"574:2:34","nodeType":"YulLiteral","src":"574:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"559:3:34","nodeType":"YulIdentifier","src":"559:3:34"},"nativeSrc":"559:18:34","nodeType":"YulFunctionCall","src":"559:18:34"},"variableNames":[{"name":"tail","nativeSrc":"551:4:34","nodeType":"YulIdentifier","src":"551:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"593:9:34","nodeType":"YulIdentifier","src":"593:9:34"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"618:6:34","nodeType":"YulIdentifier","src":"618:6:34"}],"functionName":{"name":"iszero","nativeSrc":"611:6:34","nodeType":"YulIdentifier","src":"611:6:34"},"nativeSrc":"611:14:34","nodeType":"YulFunctionCall","src":"611:14:34"}],"functionName":{"name":"iszero","nativeSrc":"604:6:34","nodeType":"YulIdentifier","src":"604:6:34"},"nativeSrc":"604:22:34","nodeType":"YulFunctionCall","src":"604:22:34"}],"functionName":{"name":"mstore","nativeSrc":"586:6:34","nodeType":"YulIdentifier","src":"586:6:34"},"nativeSrc":"586:41:34","nodeType":"YulFunctionCall","src":"586:41:34"},"nativeSrc":"586:41:34","nodeType":"YulExpressionStatement","src":"586:41:34"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"446:187:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"510:9:34","nodeType":"YulTypedName","src":"510:9:34","type":""},{"name":"value0","nativeSrc":"521:6:34","nodeType":"YulTypedName","src":"521:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"532:4:34","nodeType":"YulTypedName","src":"532:4:34","type":""}],"src":"446:187:34"},{"body":{"nativeSrc":"704:184:34","nodeType":"YulBlock","src":"704:184:34","statements":[{"nativeSrc":"714:10:34","nodeType":"YulVariableDeclaration","src":"714:10:34","value":{"kind":"number","nativeSrc":"723:1:34","nodeType":"YulLiteral","src":"723:1:34","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"718:1:34","nodeType":"YulTypedName","src":"718:1:34","type":""}]},{"body":{"nativeSrc":"783:63:34","nodeType":"YulBlock","src":"783:63:34","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"808:3:34","nodeType":"YulIdentifier","src":"808:3:34"},{"name":"i","nativeSrc":"813:1:34","nodeType":"YulIdentifier","src":"813:1:34"}],"functionName":{"name":"add","nativeSrc":"804:3:34","nodeType":"YulIdentifier","src":"804:3:34"},"nativeSrc":"804:11:34","nodeType":"YulFunctionCall","src":"804:11:34"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"827:3:34","nodeType":"YulIdentifier","src":"827:3:34"},{"name":"i","nativeSrc":"832:1:34","nodeType":"YulIdentifier","src":"832:1:34"}],"functionName":{"name":"add","nativeSrc":"823:3:34","nodeType":"YulIdentifier","src":"823:3:34"},"nativeSrc":"823:11:34","nodeType":"YulFunctionCall","src":"823:11:34"}],"functionName":{"name":"mload","nativeSrc":"817:5:34","nodeType":"YulIdentifier","src":"817:5:34"},"nativeSrc":"817:18:34","nodeType":"YulFunctionCall","src":"817:18:34"}],"functionName":{"name":"mstore","nativeSrc":"797:6:34","nodeType":"YulIdentifier","src":"797:6:34"},"nativeSrc":"797:39:34","nodeType":"YulFunctionCall","src":"797:39:34"},"nativeSrc":"797:39:34","nodeType":"YulExpressionStatement","src":"797:39:34"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"744:1:34","nodeType":"YulIdentifier","src":"744:1:34"},{"name":"length","nativeSrc":"747:6:34","nodeType":"YulIdentifier","src":"747:6:34"}],"functionName":{"name":"lt","nativeSrc":"741:2:34","nodeType":"YulIdentifier","src":"741:2:34"},"nativeSrc":"741:13:34","nodeType":"YulFunctionCall","src":"741:13:34"},"nativeSrc":"733:113:34","nodeType":"YulForLoop","post":{"nativeSrc":"755:19:34","nodeType":"YulBlock","src":"755:19:34","statements":[{"nativeSrc":"757:15:34","nodeType":"YulAssignment","src":"757:15:34","value":{"arguments":[{"name":"i","nativeSrc":"766:1:34","nodeType":"YulIdentifier","src":"766:1:34"},{"kind":"number","nativeSrc":"769:2:34","nodeType":"YulLiteral","src":"769:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"762:3:34","nodeType":"YulIdentifier","src":"762:3:34"},"nativeSrc":"762:10:34","nodeType":"YulFunctionCall","src":"762:10:34"},"variableNames":[{"name":"i","nativeSrc":"757:1:34","nodeType":"YulIdentifier","src":"757:1:34"}]}]},"pre":{"nativeSrc":"737:3:34","nodeType":"YulBlock","src":"737:3:34","statements":[]},"src":"733:113:34"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"866:3:34","nodeType":"YulIdentifier","src":"866:3:34"},{"name":"length","nativeSrc":"871:6:34","nodeType":"YulIdentifier","src":"871:6:34"}],"functionName":{"name":"add","nativeSrc":"862:3:34","nodeType":"YulIdentifier","src":"862:3:34"},"nativeSrc":"862:16:34","nodeType":"YulFunctionCall","src":"862:16:34"},{"kind":"number","nativeSrc":"880:1:34","nodeType":"YulLiteral","src":"880:1:34","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"855:6:34","nodeType":"YulIdentifier","src":"855:6:34"},"nativeSrc":"855:27:34","nodeType":"YulFunctionCall","src":"855:27:34"},"nativeSrc":"855:27:34","nodeType":"YulExpressionStatement","src":"855:27:34"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"638:250:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"682:3:34","nodeType":"YulTypedName","src":"682:3:34","type":""},{"name":"dst","nativeSrc":"687:3:34","nodeType":"YulTypedName","src":"687:3:34","type":""},{"name":"length","nativeSrc":"692:6:34","nodeType":"YulTypedName","src":"692:6:34","type":""}],"src":"638:250:34"},{"body":{"nativeSrc":"943:280:34","nodeType":"YulBlock","src":"943:280:34","statements":[{"nativeSrc":"953:26:34","nodeType":"YulVariableDeclaration","src":"953:26:34","value":{"arguments":[{"name":"value","nativeSrc":"973:5:34","nodeType":"YulIdentifier","src":"973:5:34"}],"functionName":{"name":"mload","nativeSrc":"967:5:34","nodeType":"YulIdentifier","src":"967:5:34"},"nativeSrc":"967:12:34","nodeType":"YulFunctionCall","src":"967:12:34"},"variables":[{"name":"length","nativeSrc":"957:6:34","nodeType":"YulTypedName","src":"957:6:34","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"995:3:34","nodeType":"YulIdentifier","src":"995:3:34"},{"name":"length","nativeSrc":"1000:6:34","nodeType":"YulIdentifier","src":"1000:6:34"}],"functionName":{"name":"mstore","nativeSrc":"988:6:34","nodeType":"YulIdentifier","src":"988:6:34"},"nativeSrc":"988:19:34","nodeType":"YulFunctionCall","src":"988:19:34"},"nativeSrc":"988:19:34","nodeType":"YulExpressionStatement","src":"988:19:34"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1055:5:34","nodeType":"YulIdentifier","src":"1055:5:34"},{"kind":"number","nativeSrc":"1062:4:34","nodeType":"YulLiteral","src":"1062:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1051:3:34","nodeType":"YulIdentifier","src":"1051:3:34"},"nativeSrc":"1051:16:34","nodeType":"YulFunctionCall","src":"1051:16:34"},{"arguments":[{"name":"pos","nativeSrc":"1073:3:34","nodeType":"YulIdentifier","src":"1073:3:34"},{"kind":"number","nativeSrc":"1078:4:34","nodeType":"YulLiteral","src":"1078:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1069:3:34","nodeType":"YulIdentifier","src":"1069:3:34"},"nativeSrc":"1069:14:34","nodeType":"YulFunctionCall","src":"1069:14:34"},{"name":"length","nativeSrc":"1085:6:34","nodeType":"YulIdentifier","src":"1085:6:34"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1016:34:34","nodeType":"YulIdentifier","src":"1016:34:34"},"nativeSrc":"1016:76:34","nodeType":"YulFunctionCall","src":"1016:76:34"},"nativeSrc":"1016:76:34","nodeType":"YulExpressionStatement","src":"1016:76:34"},{"nativeSrc":"1101:116:34","nodeType":"YulAssignment","src":"1101:116:34","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"1116:3:34","nodeType":"YulIdentifier","src":"1116:3:34"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1129:6:34","nodeType":"YulIdentifier","src":"1129:6:34"},{"kind":"number","nativeSrc":"1137:2:34","nodeType":"YulLiteral","src":"1137:2:34","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1125:3:34","nodeType":"YulIdentifier","src":"1125:3:34"},"nativeSrc":"1125:15:34","nodeType":"YulFunctionCall","src":"1125:15:34"},{"kind":"number","nativeSrc":"1142:66:34","nodeType":"YulLiteral","src":"1142:66:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"1121:3:34","nodeType":"YulIdentifier","src":"1121:3:34"},"nativeSrc":"1121:88:34","nodeType":"YulFunctionCall","src":"1121:88:34"}],"functionName":{"name":"add","nativeSrc":"1112:3:34","nodeType":"YulIdentifier","src":"1112:3:34"},"nativeSrc":"1112:98:34","nodeType":"YulFunctionCall","src":"1112:98:34"},{"kind":"number","nativeSrc":"1212:4:34","nodeType":"YulLiteral","src":"1212:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1108:3:34","nodeType":"YulIdentifier","src":"1108:3:34"},"nativeSrc":"1108:109:34","nodeType":"YulFunctionCall","src":"1108:109:34"},"variableNames":[{"name":"end","nativeSrc":"1101:3:34","nodeType":"YulIdentifier","src":"1101:3:34"}]}]},"name":"abi_encode_string","nativeSrc":"893:330:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"920:5:34","nodeType":"YulTypedName","src":"920:5:34","type":""},{"name":"pos","nativeSrc":"927:3:34","nodeType":"YulTypedName","src":"927:3:34","type":""}],"returnVariables":[{"name":"end","nativeSrc":"935:3:34","nodeType":"YulTypedName","src":"935:3:34","type":""}],"src":"893:330:34"},{"body":{"nativeSrc":"1349:99:34","nodeType":"YulBlock","src":"1349:99:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1366:9:34","nodeType":"YulIdentifier","src":"1366:9:34"},{"kind":"number","nativeSrc":"1377:2:34","nodeType":"YulLiteral","src":"1377:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1359:6:34","nodeType":"YulIdentifier","src":"1359:6:34"},"nativeSrc":"1359:21:34","nodeType":"YulFunctionCall","src":"1359:21:34"},"nativeSrc":"1359:21:34","nodeType":"YulExpressionStatement","src":"1359:21:34"},{"nativeSrc":"1389:53:34","nodeType":"YulAssignment","src":"1389:53:34","value":{"arguments":[{"name":"value0","nativeSrc":"1415:6:34","nodeType":"YulIdentifier","src":"1415:6:34"},{"arguments":[{"name":"headStart","nativeSrc":"1427:9:34","nodeType":"YulIdentifier","src":"1427:9:34"},{"kind":"number","nativeSrc":"1438:2:34","nodeType":"YulLiteral","src":"1438:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1423:3:34","nodeType":"YulIdentifier","src":"1423:3:34"},"nativeSrc":"1423:18:34","nodeType":"YulFunctionCall","src":"1423:18:34"}],"functionName":{"name":"abi_encode_string","nativeSrc":"1397:17:34","nodeType":"YulIdentifier","src":"1397:17:34"},"nativeSrc":"1397:45:34","nodeType":"YulFunctionCall","src":"1397:45:34"},"variableNames":[{"name":"tail","nativeSrc":"1389:4:34","nodeType":"YulIdentifier","src":"1389:4:34"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1228:220:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1318:9:34","nodeType":"YulTypedName","src":"1318:9:34","type":""},{"name":"value0","nativeSrc":"1329:6:34","nodeType":"YulTypedName","src":"1329:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1340:4:34","nodeType":"YulTypedName","src":"1340:4:34","type":""}],"src":"1228:220:34"},{"body":{"nativeSrc":"1523:110:34","nodeType":"YulBlock","src":"1523:110:34","statements":[{"body":{"nativeSrc":"1569:16:34","nodeType":"YulBlock","src":"1569:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1578:1:34","nodeType":"YulLiteral","src":"1578:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1581:1:34","nodeType":"YulLiteral","src":"1581:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1571:6:34","nodeType":"YulIdentifier","src":"1571:6:34"},"nativeSrc":"1571:12:34","nodeType":"YulFunctionCall","src":"1571:12:34"},"nativeSrc":"1571:12:34","nodeType":"YulExpressionStatement","src":"1571:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1544:7:34","nodeType":"YulIdentifier","src":"1544:7:34"},{"name":"headStart","nativeSrc":"1553:9:34","nodeType":"YulIdentifier","src":"1553:9:34"}],"functionName":{"name":"sub","nativeSrc":"1540:3:34","nodeType":"YulIdentifier","src":"1540:3:34"},"nativeSrc":"1540:23:34","nodeType":"YulFunctionCall","src":"1540:23:34"},{"kind":"number","nativeSrc":"1565:2:34","nodeType":"YulLiteral","src":"1565:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1536:3:34","nodeType":"YulIdentifier","src":"1536:3:34"},"nativeSrc":"1536:32:34","nodeType":"YulFunctionCall","src":"1536:32:34"},"nativeSrc":"1533:52:34","nodeType":"YulIf","src":"1533:52:34"},{"nativeSrc":"1594:33:34","nodeType":"YulAssignment","src":"1594:33:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1617:9:34","nodeType":"YulIdentifier","src":"1617:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"1604:12:34","nodeType":"YulIdentifier","src":"1604:12:34"},"nativeSrc":"1604:23:34","nodeType":"YulFunctionCall","src":"1604:23:34"},"variableNames":[{"name":"value0","nativeSrc":"1594:6:34","nodeType":"YulIdentifier","src":"1594:6:34"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1453:180:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1489:9:34","nodeType":"YulTypedName","src":"1489:9:34","type":""},{"name":"dataEnd","nativeSrc":"1500:7:34","nodeType":"YulTypedName","src":"1500:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1512:6:34","nodeType":"YulTypedName","src":"1512:6:34","type":""}],"src":"1453:180:34"},{"body":{"nativeSrc":"1739:125:34","nodeType":"YulBlock","src":"1739:125:34","statements":[{"nativeSrc":"1749:26:34","nodeType":"YulAssignment","src":"1749:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1761:9:34","nodeType":"YulIdentifier","src":"1761:9:34"},{"kind":"number","nativeSrc":"1772:2:34","nodeType":"YulLiteral","src":"1772:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1757:3:34","nodeType":"YulIdentifier","src":"1757:3:34"},"nativeSrc":"1757:18:34","nodeType":"YulFunctionCall","src":"1757:18:34"},"variableNames":[{"name":"tail","nativeSrc":"1749:4:34","nodeType":"YulIdentifier","src":"1749:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1791:9:34","nodeType":"YulIdentifier","src":"1791:9:34"},{"arguments":[{"name":"value0","nativeSrc":"1806:6:34","nodeType":"YulIdentifier","src":"1806:6:34"},{"kind":"number","nativeSrc":"1814:42:34","nodeType":"YulLiteral","src":"1814:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1802:3:34","nodeType":"YulIdentifier","src":"1802:3:34"},"nativeSrc":"1802:55:34","nodeType":"YulFunctionCall","src":"1802:55:34"}],"functionName":{"name":"mstore","nativeSrc":"1784:6:34","nodeType":"YulIdentifier","src":"1784:6:34"},"nativeSrc":"1784:74:34","nodeType":"YulFunctionCall","src":"1784:74:34"},"nativeSrc":"1784:74:34","nodeType":"YulExpressionStatement","src":"1784:74:34"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1638:226:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1708:9:34","nodeType":"YulTypedName","src":"1708:9:34","type":""},{"name":"value0","nativeSrc":"1719:6:34","nodeType":"YulTypedName","src":"1719:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1730:4:34","nodeType":"YulTypedName","src":"1730:4:34","type":""}],"src":"1638:226:34"},{"body":{"nativeSrc":"1918:147:34","nodeType":"YulBlock","src":"1918:147:34","statements":[{"nativeSrc":"1928:29:34","nodeType":"YulAssignment","src":"1928:29:34","value":{"arguments":[{"name":"offset","nativeSrc":"1950:6:34","nodeType":"YulIdentifier","src":"1950:6:34"}],"functionName":{"name":"calldataload","nativeSrc":"1937:12:34","nodeType":"YulIdentifier","src":"1937:12:34"},"nativeSrc":"1937:20:34","nodeType":"YulFunctionCall","src":"1937:20:34"},"variableNames":[{"name":"value","nativeSrc":"1928:5:34","nodeType":"YulIdentifier","src":"1928:5:34"}]},{"body":{"nativeSrc":"2043:16:34","nodeType":"YulBlock","src":"2043:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2052:1:34","nodeType":"YulLiteral","src":"2052:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2055:1:34","nodeType":"YulLiteral","src":"2055:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2045:6:34","nodeType":"YulIdentifier","src":"2045:6:34"},"nativeSrc":"2045:12:34","nodeType":"YulFunctionCall","src":"2045:12:34"},"nativeSrc":"2045:12:34","nodeType":"YulExpressionStatement","src":"2045:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1979:5:34","nodeType":"YulIdentifier","src":"1979:5:34"},{"arguments":[{"name":"value","nativeSrc":"1990:5:34","nodeType":"YulIdentifier","src":"1990:5:34"},{"kind":"number","nativeSrc":"1997:42:34","nodeType":"YulLiteral","src":"1997:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1986:3:34","nodeType":"YulIdentifier","src":"1986:3:34"},"nativeSrc":"1986:54:34","nodeType":"YulFunctionCall","src":"1986:54:34"}],"functionName":{"name":"eq","nativeSrc":"1976:2:34","nodeType":"YulIdentifier","src":"1976:2:34"},"nativeSrc":"1976:65:34","nodeType":"YulFunctionCall","src":"1976:65:34"}],"functionName":{"name":"iszero","nativeSrc":"1969:6:34","nodeType":"YulIdentifier","src":"1969:6:34"},"nativeSrc":"1969:73:34","nodeType":"YulFunctionCall","src":"1969:73:34"},"nativeSrc":"1966:93:34","nodeType":"YulIf","src":"1966:93:34"}]},"name":"abi_decode_address","nativeSrc":"1869:196:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1897:6:34","nodeType":"YulTypedName","src":"1897:6:34","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1908:5:34","nodeType":"YulTypedName","src":"1908:5:34","type":""}],"src":"1869:196:34"},{"body":{"nativeSrc":"2157:167:34","nodeType":"YulBlock","src":"2157:167:34","statements":[{"body":{"nativeSrc":"2203:16:34","nodeType":"YulBlock","src":"2203:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2212:1:34","nodeType":"YulLiteral","src":"2212:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2215:1:34","nodeType":"YulLiteral","src":"2215:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2205:6:34","nodeType":"YulIdentifier","src":"2205:6:34"},"nativeSrc":"2205:12:34","nodeType":"YulFunctionCall","src":"2205:12:34"},"nativeSrc":"2205:12:34","nodeType":"YulExpressionStatement","src":"2205:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2178:7:34","nodeType":"YulIdentifier","src":"2178:7:34"},{"name":"headStart","nativeSrc":"2187:9:34","nodeType":"YulIdentifier","src":"2187:9:34"}],"functionName":{"name":"sub","nativeSrc":"2174:3:34","nodeType":"YulIdentifier","src":"2174:3:34"},"nativeSrc":"2174:23:34","nodeType":"YulFunctionCall","src":"2174:23:34"},{"kind":"number","nativeSrc":"2199:2:34","nodeType":"YulLiteral","src":"2199:2:34","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2170:3:34","nodeType":"YulIdentifier","src":"2170:3:34"},"nativeSrc":"2170:32:34","nodeType":"YulFunctionCall","src":"2170:32:34"},"nativeSrc":"2167:52:34","nodeType":"YulIf","src":"2167:52:34"},{"nativeSrc":"2228:39:34","nodeType":"YulAssignment","src":"2228:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2257:9:34","nodeType":"YulIdentifier","src":"2257:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2238:18:34","nodeType":"YulIdentifier","src":"2238:18:34"},"nativeSrc":"2238:29:34","nodeType":"YulFunctionCall","src":"2238:29:34"},"variableNames":[{"name":"value0","nativeSrc":"2228:6:34","nodeType":"YulIdentifier","src":"2228:6:34"}]},{"nativeSrc":"2276:42:34","nodeType":"YulAssignment","src":"2276:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2303:9:34","nodeType":"YulIdentifier","src":"2303:9:34"},{"kind":"number","nativeSrc":"2314:2:34","nodeType":"YulLiteral","src":"2314:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2299:3:34","nodeType":"YulIdentifier","src":"2299:3:34"},"nativeSrc":"2299:18:34","nodeType":"YulFunctionCall","src":"2299:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"2286:12:34","nodeType":"YulIdentifier","src":"2286:12:34"},"nativeSrc":"2286:32:34","nodeType":"YulFunctionCall","src":"2286:32:34"},"variableNames":[{"name":"value1","nativeSrc":"2276:6:34","nodeType":"YulIdentifier","src":"2276:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2070:254:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2115:9:34","nodeType":"YulTypedName","src":"2115:9:34","type":""},{"name":"dataEnd","nativeSrc":"2126:7:34","nodeType":"YulTypedName","src":"2126:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2138:6:34","nodeType":"YulTypedName","src":"2138:6:34","type":""},{"name":"value1","nativeSrc":"2146:6:34","nodeType":"YulTypedName","src":"2146:6:34","type":""}],"src":"2070:254:34"},{"body":{"nativeSrc":"2433:224:34","nodeType":"YulBlock","src":"2433:224:34","statements":[{"body":{"nativeSrc":"2479:16:34","nodeType":"YulBlock","src":"2479:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2488:1:34","nodeType":"YulLiteral","src":"2488:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2491:1:34","nodeType":"YulLiteral","src":"2491:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2481:6:34","nodeType":"YulIdentifier","src":"2481:6:34"},"nativeSrc":"2481:12:34","nodeType":"YulFunctionCall","src":"2481:12:34"},"nativeSrc":"2481:12:34","nodeType":"YulExpressionStatement","src":"2481:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2454:7:34","nodeType":"YulIdentifier","src":"2454:7:34"},{"name":"headStart","nativeSrc":"2463:9:34","nodeType":"YulIdentifier","src":"2463:9:34"}],"functionName":{"name":"sub","nativeSrc":"2450:3:34","nodeType":"YulIdentifier","src":"2450:3:34"},"nativeSrc":"2450:23:34","nodeType":"YulFunctionCall","src":"2450:23:34"},{"kind":"number","nativeSrc":"2475:2:34","nodeType":"YulLiteral","src":"2475:2:34","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2446:3:34","nodeType":"YulIdentifier","src":"2446:3:34"},"nativeSrc":"2446:32:34","nodeType":"YulFunctionCall","src":"2446:32:34"},"nativeSrc":"2443:52:34","nodeType":"YulIf","src":"2443:52:34"},{"nativeSrc":"2504:39:34","nodeType":"YulAssignment","src":"2504:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2533:9:34","nodeType":"YulIdentifier","src":"2533:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2514:18:34","nodeType":"YulIdentifier","src":"2514:18:34"},"nativeSrc":"2514:29:34","nodeType":"YulFunctionCall","src":"2514:29:34"},"variableNames":[{"name":"value0","nativeSrc":"2504:6:34","nodeType":"YulIdentifier","src":"2504:6:34"}]},{"nativeSrc":"2552:48:34","nodeType":"YulAssignment","src":"2552:48:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2585:9:34","nodeType":"YulIdentifier","src":"2585:9:34"},{"kind":"number","nativeSrc":"2596:2:34","nodeType":"YulLiteral","src":"2596:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2581:3:34","nodeType":"YulIdentifier","src":"2581:3:34"},"nativeSrc":"2581:18:34","nodeType":"YulFunctionCall","src":"2581:18:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2562:18:34","nodeType":"YulIdentifier","src":"2562:18:34"},"nativeSrc":"2562:38:34","nodeType":"YulFunctionCall","src":"2562:38:34"},"variableNames":[{"name":"value1","nativeSrc":"2552:6:34","nodeType":"YulIdentifier","src":"2552:6:34"}]},{"nativeSrc":"2609:42:34","nodeType":"YulAssignment","src":"2609:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2636:9:34","nodeType":"YulIdentifier","src":"2636:9:34"},{"kind":"number","nativeSrc":"2647:2:34","nodeType":"YulLiteral","src":"2647:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2632:3:34","nodeType":"YulIdentifier","src":"2632:3:34"},"nativeSrc":"2632:18:34","nodeType":"YulFunctionCall","src":"2632:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"2619:12:34","nodeType":"YulIdentifier","src":"2619:12:34"},"nativeSrc":"2619:32:34","nodeType":"YulFunctionCall","src":"2619:32:34"},"variableNames":[{"name":"value2","nativeSrc":"2609:6:34","nodeType":"YulIdentifier","src":"2609:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"2329:328:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2383:9:34","nodeType":"YulTypedName","src":"2383:9:34","type":""},{"name":"dataEnd","nativeSrc":"2394:7:34","nodeType":"YulTypedName","src":"2394:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2406:6:34","nodeType":"YulTypedName","src":"2406:6:34","type":""},{"name":"value1","nativeSrc":"2414:6:34","nodeType":"YulTypedName","src":"2414:6:34","type":""},{"name":"value2","nativeSrc":"2422:6:34","nodeType":"YulTypedName","src":"2422:6:34","type":""}],"src":"2329:328:34"},{"body":{"nativeSrc":"2732:116:34","nodeType":"YulBlock","src":"2732:116:34","statements":[{"body":{"nativeSrc":"2778:16:34","nodeType":"YulBlock","src":"2778:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2787:1:34","nodeType":"YulLiteral","src":"2787:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2790:1:34","nodeType":"YulLiteral","src":"2790:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2780:6:34","nodeType":"YulIdentifier","src":"2780:6:34"},"nativeSrc":"2780:12:34","nodeType":"YulFunctionCall","src":"2780:12:34"},"nativeSrc":"2780:12:34","nodeType":"YulExpressionStatement","src":"2780:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2753:7:34","nodeType":"YulIdentifier","src":"2753:7:34"},{"name":"headStart","nativeSrc":"2762:9:34","nodeType":"YulIdentifier","src":"2762:9:34"}],"functionName":{"name":"sub","nativeSrc":"2749:3:34","nodeType":"YulIdentifier","src":"2749:3:34"},"nativeSrc":"2749:23:34","nodeType":"YulFunctionCall","src":"2749:23:34"},{"kind":"number","nativeSrc":"2774:2:34","nodeType":"YulLiteral","src":"2774:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2745:3:34","nodeType":"YulIdentifier","src":"2745:3:34"},"nativeSrc":"2745:32:34","nodeType":"YulFunctionCall","src":"2745:32:34"},"nativeSrc":"2742:52:34","nodeType":"YulIf","src":"2742:52:34"},{"nativeSrc":"2803:39:34","nodeType":"YulAssignment","src":"2803:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2832:9:34","nodeType":"YulIdentifier","src":"2832:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2813:18:34","nodeType":"YulIdentifier","src":"2813:18:34"},"nativeSrc":"2813:29:34","nodeType":"YulFunctionCall","src":"2813:29:34"},"variableNames":[{"name":"value0","nativeSrc":"2803:6:34","nodeType":"YulIdentifier","src":"2803:6:34"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2662:186:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2698:9:34","nodeType":"YulTypedName","src":"2698:9:34","type":""},{"name":"dataEnd","nativeSrc":"2709:7:34","nodeType":"YulTypedName","src":"2709:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2721:6:34","nodeType":"YulTypedName","src":"2721:6:34","type":""}],"src":"2662:186:34"},{"body":{"nativeSrc":"2954:76:34","nodeType":"YulBlock","src":"2954:76:34","statements":[{"nativeSrc":"2964:26:34","nodeType":"YulAssignment","src":"2964:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2976:9:34","nodeType":"YulIdentifier","src":"2976:9:34"},{"kind":"number","nativeSrc":"2987:2:34","nodeType":"YulLiteral","src":"2987:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2972:3:34","nodeType":"YulIdentifier","src":"2972:3:34"},"nativeSrc":"2972:18:34","nodeType":"YulFunctionCall","src":"2972:18:34"},"variableNames":[{"name":"tail","nativeSrc":"2964:4:34","nodeType":"YulIdentifier","src":"2964:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3006:9:34","nodeType":"YulIdentifier","src":"3006:9:34"},{"name":"value0","nativeSrc":"3017:6:34","nodeType":"YulIdentifier","src":"3017:6:34"}],"functionName":{"name":"mstore","nativeSrc":"2999:6:34","nodeType":"YulIdentifier","src":"2999:6:34"},"nativeSrc":"2999:25:34","nodeType":"YulFunctionCall","src":"2999:25:34"},"nativeSrc":"2999:25:34","nodeType":"YulExpressionStatement","src":"2999:25:34"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2853:177:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2923:9:34","nodeType":"YulTypedName","src":"2923:9:34","type":""},{"name":"value0","nativeSrc":"2934:6:34","nodeType":"YulTypedName","src":"2934:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2945:4:34","nodeType":"YulTypedName","src":"2945:4:34","type":""}],"src":"2853:177:34"},{"body":{"nativeSrc":"3119:263:34","nodeType":"YulBlock","src":"3119:263:34","statements":[{"body":{"nativeSrc":"3165:16:34","nodeType":"YulBlock","src":"3165:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3174:1:34","nodeType":"YulLiteral","src":"3174:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3177:1:34","nodeType":"YulLiteral","src":"3177:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3167:6:34","nodeType":"YulIdentifier","src":"3167:6:34"},"nativeSrc":"3167:12:34","nodeType":"YulFunctionCall","src":"3167:12:34"},"nativeSrc":"3167:12:34","nodeType":"YulExpressionStatement","src":"3167:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3140:7:34","nodeType":"YulIdentifier","src":"3140:7:34"},{"name":"headStart","nativeSrc":"3149:9:34","nodeType":"YulIdentifier","src":"3149:9:34"}],"functionName":{"name":"sub","nativeSrc":"3136:3:34","nodeType":"YulIdentifier","src":"3136:3:34"},"nativeSrc":"3136:23:34","nodeType":"YulFunctionCall","src":"3136:23:34"},{"kind":"number","nativeSrc":"3161:2:34","nodeType":"YulLiteral","src":"3161:2:34","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3132:3:34","nodeType":"YulIdentifier","src":"3132:3:34"},"nativeSrc":"3132:32:34","nodeType":"YulFunctionCall","src":"3132:32:34"},"nativeSrc":"3129:52:34","nodeType":"YulIf","src":"3129:52:34"},{"nativeSrc":"3190:39:34","nodeType":"YulAssignment","src":"3190:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3219:9:34","nodeType":"YulIdentifier","src":"3219:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3200:18:34","nodeType":"YulIdentifier","src":"3200:18:34"},"nativeSrc":"3200:29:34","nodeType":"YulFunctionCall","src":"3200:29:34"},"variableNames":[{"name":"value0","nativeSrc":"3190:6:34","nodeType":"YulIdentifier","src":"3190:6:34"}]},{"nativeSrc":"3238:45:34","nodeType":"YulVariableDeclaration","src":"3238:45:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3268:9:34","nodeType":"YulIdentifier","src":"3268:9:34"},{"kind":"number","nativeSrc":"3279:2:34","nodeType":"YulLiteral","src":"3279:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3264:3:34","nodeType":"YulIdentifier","src":"3264:3:34"},"nativeSrc":"3264:18:34","nodeType":"YulFunctionCall","src":"3264:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"3251:12:34","nodeType":"YulIdentifier","src":"3251:12:34"},"nativeSrc":"3251:32:34","nodeType":"YulFunctionCall","src":"3251:32:34"},"variables":[{"name":"value","nativeSrc":"3242:5:34","nodeType":"YulTypedName","src":"3242:5:34","type":""}]},{"body":{"nativeSrc":"3336:16:34","nodeType":"YulBlock","src":"3336:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3345:1:34","nodeType":"YulLiteral","src":"3345:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3348:1:34","nodeType":"YulLiteral","src":"3348:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3338:6:34","nodeType":"YulIdentifier","src":"3338:6:34"},"nativeSrc":"3338:12:34","nodeType":"YulFunctionCall","src":"3338:12:34"},"nativeSrc":"3338:12:34","nodeType":"YulExpressionStatement","src":"3338:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3305:5:34","nodeType":"YulIdentifier","src":"3305:5:34"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3326:5:34","nodeType":"YulIdentifier","src":"3326:5:34"}],"functionName":{"name":"iszero","nativeSrc":"3319:6:34","nodeType":"YulIdentifier","src":"3319:6:34"},"nativeSrc":"3319:13:34","nodeType":"YulFunctionCall","src":"3319:13:34"}],"functionName":{"name":"iszero","nativeSrc":"3312:6:34","nodeType":"YulIdentifier","src":"3312:6:34"},"nativeSrc":"3312:21:34","nodeType":"YulFunctionCall","src":"3312:21:34"}],"functionName":{"name":"eq","nativeSrc":"3302:2:34","nodeType":"YulIdentifier","src":"3302:2:34"},"nativeSrc":"3302:32:34","nodeType":"YulFunctionCall","src":"3302:32:34"}],"functionName":{"name":"iszero","nativeSrc":"3295:6:34","nodeType":"YulIdentifier","src":"3295:6:34"},"nativeSrc":"3295:40:34","nodeType":"YulFunctionCall","src":"3295:40:34"},"nativeSrc":"3292:60:34","nodeType":"YulIf","src":"3292:60:34"},{"nativeSrc":"3361:15:34","nodeType":"YulAssignment","src":"3361:15:34","value":{"name":"value","nativeSrc":"3371:5:34","nodeType":"YulIdentifier","src":"3371:5:34"},"variableNames":[{"name":"value1","nativeSrc":"3361:6:34","nodeType":"YulIdentifier","src":"3361:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"3035:347:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3077:9:34","nodeType":"YulTypedName","src":"3077:9:34","type":""},{"name":"dataEnd","nativeSrc":"3088:7:34","nodeType":"YulTypedName","src":"3088:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3100:6:34","nodeType":"YulTypedName","src":"3100:6:34","type":""},{"name":"value1","nativeSrc":"3108:6:34","nodeType":"YulTypedName","src":"3108:6:34","type":""}],"src":"3035:347:34"},{"body":{"nativeSrc":"3419:152:34","nodeType":"YulBlock","src":"3419:152:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3436:1:34","nodeType":"YulLiteral","src":"3436:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3439:77:34","nodeType":"YulLiteral","src":"3439:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3429:6:34","nodeType":"YulIdentifier","src":"3429:6:34"},"nativeSrc":"3429:88:34","nodeType":"YulFunctionCall","src":"3429:88:34"},"nativeSrc":"3429:88:34","nodeType":"YulExpressionStatement","src":"3429:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3533:1:34","nodeType":"YulLiteral","src":"3533:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"3536:4:34","nodeType":"YulLiteral","src":"3536:4:34","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"3526:6:34","nodeType":"YulIdentifier","src":"3526:6:34"},"nativeSrc":"3526:15:34","nodeType":"YulFunctionCall","src":"3526:15:34"},"nativeSrc":"3526:15:34","nodeType":"YulExpressionStatement","src":"3526:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3557:1:34","nodeType":"YulLiteral","src":"3557:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3560:4:34","nodeType":"YulLiteral","src":"3560:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"3550:6:34","nodeType":"YulIdentifier","src":"3550:6:34"},"nativeSrc":"3550:15:34","nodeType":"YulFunctionCall","src":"3550:15:34"},"nativeSrc":"3550:15:34","nodeType":"YulExpressionStatement","src":"3550:15:34"}]},"name":"panic_error_0x41","nativeSrc":"3387:184:34","nodeType":"YulFunctionDefinition","src":"3387:184:34"},{"body":{"nativeSrc":"3706:1067:34","nodeType":"YulBlock","src":"3706:1067:34","statements":[{"body":{"nativeSrc":"3753:16:34","nodeType":"YulBlock","src":"3753:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3762:1:34","nodeType":"YulLiteral","src":"3762:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3765:1:34","nodeType":"YulLiteral","src":"3765:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3755:6:34","nodeType":"YulIdentifier","src":"3755:6:34"},"nativeSrc":"3755:12:34","nodeType":"YulFunctionCall","src":"3755:12:34"},"nativeSrc":"3755:12:34","nodeType":"YulExpressionStatement","src":"3755:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3727:7:34","nodeType":"YulIdentifier","src":"3727:7:34"},{"name":"headStart","nativeSrc":"3736:9:34","nodeType":"YulIdentifier","src":"3736:9:34"}],"functionName":{"name":"sub","nativeSrc":"3723:3:34","nodeType":"YulIdentifier","src":"3723:3:34"},"nativeSrc":"3723:23:34","nodeType":"YulFunctionCall","src":"3723:23:34"},{"kind":"number","nativeSrc":"3748:3:34","nodeType":"YulLiteral","src":"3748:3:34","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"3719:3:34","nodeType":"YulIdentifier","src":"3719:3:34"},"nativeSrc":"3719:33:34","nodeType":"YulFunctionCall","src":"3719:33:34"},"nativeSrc":"3716:53:34","nodeType":"YulIf","src":"3716:53:34"},{"nativeSrc":"3778:39:34","nodeType":"YulAssignment","src":"3778:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3807:9:34","nodeType":"YulIdentifier","src":"3807:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3788:18:34","nodeType":"YulIdentifier","src":"3788:18:34"},"nativeSrc":"3788:29:34","nodeType":"YulFunctionCall","src":"3788:29:34"},"variableNames":[{"name":"value0","nativeSrc":"3778:6:34","nodeType":"YulIdentifier","src":"3778:6:34"}]},{"nativeSrc":"3826:48:34","nodeType":"YulAssignment","src":"3826:48:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3859:9:34","nodeType":"YulIdentifier","src":"3859:9:34"},{"kind":"number","nativeSrc":"3870:2:34","nodeType":"YulLiteral","src":"3870:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3855:3:34","nodeType":"YulIdentifier","src":"3855:3:34"},"nativeSrc":"3855:18:34","nodeType":"YulFunctionCall","src":"3855:18:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3836:18:34","nodeType":"YulIdentifier","src":"3836:18:34"},"nativeSrc":"3836:38:34","nodeType":"YulFunctionCall","src":"3836:38:34"},"variableNames":[{"name":"value1","nativeSrc":"3826:6:34","nodeType":"YulIdentifier","src":"3826:6:34"}]},{"nativeSrc":"3883:42:34","nodeType":"YulAssignment","src":"3883:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3910:9:34","nodeType":"YulIdentifier","src":"3910:9:34"},{"kind":"number","nativeSrc":"3921:2:34","nodeType":"YulLiteral","src":"3921:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3906:3:34","nodeType":"YulIdentifier","src":"3906:3:34"},"nativeSrc":"3906:18:34","nodeType":"YulFunctionCall","src":"3906:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"3893:12:34","nodeType":"YulIdentifier","src":"3893:12:34"},"nativeSrc":"3893:32:34","nodeType":"YulFunctionCall","src":"3893:32:34"},"variableNames":[{"name":"value2","nativeSrc":"3883:6:34","nodeType":"YulIdentifier","src":"3883:6:34"}]},{"nativeSrc":"3934:46:34","nodeType":"YulVariableDeclaration","src":"3934:46:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3965:9:34","nodeType":"YulIdentifier","src":"3965:9:34"},{"kind":"number","nativeSrc":"3976:2:34","nodeType":"YulLiteral","src":"3976:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3961:3:34","nodeType":"YulIdentifier","src":"3961:3:34"},"nativeSrc":"3961:18:34","nodeType":"YulFunctionCall","src":"3961:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"3948:12:34","nodeType":"YulIdentifier","src":"3948:12:34"},"nativeSrc":"3948:32:34","nodeType":"YulFunctionCall","src":"3948:32:34"},"variables":[{"name":"offset","nativeSrc":"3938:6:34","nodeType":"YulTypedName","src":"3938:6:34","type":""}]},{"nativeSrc":"3989:28:34","nodeType":"YulVariableDeclaration","src":"3989:28:34","value":{"kind":"number","nativeSrc":"3999:18:34","nodeType":"YulLiteral","src":"3999:18:34","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"3993:2:34","nodeType":"YulTypedName","src":"3993:2:34","type":""}]},{"body":{"nativeSrc":"4044:16:34","nodeType":"YulBlock","src":"4044:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4053:1:34","nodeType":"YulLiteral","src":"4053:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"4056:1:34","nodeType":"YulLiteral","src":"4056:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4046:6:34","nodeType":"YulIdentifier","src":"4046:6:34"},"nativeSrc":"4046:12:34","nodeType":"YulFunctionCall","src":"4046:12:34"},"nativeSrc":"4046:12:34","nodeType":"YulExpressionStatement","src":"4046:12:34"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4032:6:34","nodeType":"YulIdentifier","src":"4032:6:34"},{"name":"_1","nativeSrc":"4040:2:34","nodeType":"YulIdentifier","src":"4040:2:34"}],"functionName":{"name":"gt","nativeSrc":"4029:2:34","nodeType":"YulIdentifier","src":"4029:2:34"},"nativeSrc":"4029:14:34","nodeType":"YulFunctionCall","src":"4029:14:34"},"nativeSrc":"4026:34:34","nodeType":"YulIf","src":"4026:34:34"},{"nativeSrc":"4069:32:34","nodeType":"YulVariableDeclaration","src":"4069:32:34","value":{"arguments":[{"name":"headStart","nativeSrc":"4083:9:34","nodeType":"YulIdentifier","src":"4083:9:34"},{"name":"offset","nativeSrc":"4094:6:34","nodeType":"YulIdentifier","src":"4094:6:34"}],"functionName":{"name":"add","nativeSrc":"4079:3:34","nodeType":"YulIdentifier","src":"4079:3:34"},"nativeSrc":"4079:22:34","nodeType":"YulFunctionCall","src":"4079:22:34"},"variables":[{"name":"_2","nativeSrc":"4073:2:34","nodeType":"YulTypedName","src":"4073:2:34","type":""}]},{"body":{"nativeSrc":"4149:16:34","nodeType":"YulBlock","src":"4149:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4158:1:34","nodeType":"YulLiteral","src":"4158:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"4161:1:34","nodeType":"YulLiteral","src":"4161:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4151:6:34","nodeType":"YulIdentifier","src":"4151:6:34"},"nativeSrc":"4151:12:34","nodeType":"YulFunctionCall","src":"4151:12:34"},"nativeSrc":"4151:12:34","nodeType":"YulExpressionStatement","src":"4151:12:34"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"4128:2:34","nodeType":"YulIdentifier","src":"4128:2:34"},{"kind":"number","nativeSrc":"4132:4:34","nodeType":"YulLiteral","src":"4132:4:34","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4124:3:34","nodeType":"YulIdentifier","src":"4124:3:34"},"nativeSrc":"4124:13:34","nodeType":"YulFunctionCall","src":"4124:13:34"},{"name":"dataEnd","nativeSrc":"4139:7:34","nodeType":"YulIdentifier","src":"4139:7:34"}],"functionName":{"name":"slt","nativeSrc":"4120:3:34","nodeType":"YulIdentifier","src":"4120:3:34"},"nativeSrc":"4120:27:34","nodeType":"YulFunctionCall","src":"4120:27:34"}],"functionName":{"name":"iszero","nativeSrc":"4113:6:34","nodeType":"YulIdentifier","src":"4113:6:34"},"nativeSrc":"4113:35:34","nodeType":"YulFunctionCall","src":"4113:35:34"},"nativeSrc":"4110:55:34","nodeType":"YulIf","src":"4110:55:34"},{"nativeSrc":"4174:26:34","nodeType":"YulVariableDeclaration","src":"4174:26:34","value":{"arguments":[{"name":"_2","nativeSrc":"4197:2:34","nodeType":"YulIdentifier","src":"4197:2:34"}],"functionName":{"name":"calldataload","nativeSrc":"4184:12:34","nodeType":"YulIdentifier","src":"4184:12:34"},"nativeSrc":"4184:16:34","nodeType":"YulFunctionCall","src":"4184:16:34"},"variables":[{"name":"_3","nativeSrc":"4178:2:34","nodeType":"YulTypedName","src":"4178:2:34","type":""}]},{"body":{"nativeSrc":"4223:22:34","nodeType":"YulBlock","src":"4223:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4225:16:34","nodeType":"YulIdentifier","src":"4225:16:34"},"nativeSrc":"4225:18:34","nodeType":"YulFunctionCall","src":"4225:18:34"},"nativeSrc":"4225:18:34","nodeType":"YulExpressionStatement","src":"4225:18:34"}]},"condition":{"arguments":[{"name":"_3","nativeSrc":"4215:2:34","nodeType":"YulIdentifier","src":"4215:2:34"},{"name":"_1","nativeSrc":"4219:2:34","nodeType":"YulIdentifier","src":"4219:2:34"}],"functionName":{"name":"gt","nativeSrc":"4212:2:34","nodeType":"YulIdentifier","src":"4212:2:34"},"nativeSrc":"4212:10:34","nodeType":"YulFunctionCall","src":"4212:10:34"},"nativeSrc":"4209:36:34","nodeType":"YulIf","src":"4209:36:34"},{"nativeSrc":"4254:76:34","nodeType":"YulVariableDeclaration","src":"4254:76:34","value":{"kind":"number","nativeSrc":"4264:66:34","nodeType":"YulLiteral","src":"4264:66:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nativeSrc":"4258:2:34","nodeType":"YulTypedName","src":"4258:2:34","type":""}]},{"nativeSrc":"4339:23:34","nodeType":"YulVariableDeclaration","src":"4339:23:34","value":{"arguments":[{"kind":"number","nativeSrc":"4359:2:34","nodeType":"YulLiteral","src":"4359:2:34","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"4353:5:34","nodeType":"YulIdentifier","src":"4353:5:34"},"nativeSrc":"4353:9:34","nodeType":"YulFunctionCall","src":"4353:9:34"},"variables":[{"name":"memPtr","nativeSrc":"4343:6:34","nodeType":"YulTypedName","src":"4343:6:34","type":""}]},{"nativeSrc":"4371:71:34","nodeType":"YulVariableDeclaration","src":"4371:71:34","value":{"arguments":[{"name":"memPtr","nativeSrc":"4393:6:34","nodeType":"YulIdentifier","src":"4393:6:34"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"4417:2:34","nodeType":"YulIdentifier","src":"4417:2:34"},{"kind":"number","nativeSrc":"4421:4:34","nodeType":"YulLiteral","src":"4421:4:34","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4413:3:34","nodeType":"YulIdentifier","src":"4413:3:34"},"nativeSrc":"4413:13:34","nodeType":"YulFunctionCall","src":"4413:13:34"},{"name":"_4","nativeSrc":"4428:2:34","nodeType":"YulIdentifier","src":"4428:2:34"}],"functionName":{"name":"and","nativeSrc":"4409:3:34","nodeType":"YulIdentifier","src":"4409:3:34"},"nativeSrc":"4409:22:34","nodeType":"YulFunctionCall","src":"4409:22:34"},{"kind":"number","nativeSrc":"4433:2:34","nodeType":"YulLiteral","src":"4433:2:34","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"4405:3:34","nodeType":"YulIdentifier","src":"4405:3:34"},"nativeSrc":"4405:31:34","nodeType":"YulFunctionCall","src":"4405:31:34"},{"name":"_4","nativeSrc":"4438:2:34","nodeType":"YulIdentifier","src":"4438:2:34"}],"functionName":{"name":"and","nativeSrc":"4401:3:34","nodeType":"YulIdentifier","src":"4401:3:34"},"nativeSrc":"4401:40:34","nodeType":"YulFunctionCall","src":"4401:40:34"}],"functionName":{"name":"add","nativeSrc":"4389:3:34","nodeType":"YulIdentifier","src":"4389:3:34"},"nativeSrc":"4389:53:34","nodeType":"YulFunctionCall","src":"4389:53:34"},"variables":[{"name":"newFreePtr","nativeSrc":"4375:10:34","nodeType":"YulTypedName","src":"4375:10:34","type":""}]},{"body":{"nativeSrc":"4501:22:34","nodeType":"YulBlock","src":"4501:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4503:16:34","nodeType":"YulIdentifier","src":"4503:16:34"},"nativeSrc":"4503:18:34","nodeType":"YulFunctionCall","src":"4503:18:34"},"nativeSrc":"4503:18:34","nodeType":"YulExpressionStatement","src":"4503:18:34"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"4460:10:34","nodeType":"YulIdentifier","src":"4460:10:34"},{"name":"_1","nativeSrc":"4472:2:34","nodeType":"YulIdentifier","src":"4472:2:34"}],"functionName":{"name":"gt","nativeSrc":"4457:2:34","nodeType":"YulIdentifier","src":"4457:2:34"},"nativeSrc":"4457:18:34","nodeType":"YulFunctionCall","src":"4457:18:34"},{"arguments":[{"name":"newFreePtr","nativeSrc":"4480:10:34","nodeType":"YulIdentifier","src":"4480:10:34"},{"name":"memPtr","nativeSrc":"4492:6:34","nodeType":"YulIdentifier","src":"4492:6:34"}],"functionName":{"name":"lt","nativeSrc":"4477:2:34","nodeType":"YulIdentifier","src":"4477:2:34"},"nativeSrc":"4477:22:34","nodeType":"YulFunctionCall","src":"4477:22:34"}],"functionName":{"name":"or","nativeSrc":"4454:2:34","nodeType":"YulIdentifier","src":"4454:2:34"},"nativeSrc":"4454:46:34","nodeType":"YulFunctionCall","src":"4454:46:34"},"nativeSrc":"4451:72:34","nodeType":"YulIf","src":"4451:72:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4539:2:34","nodeType":"YulLiteral","src":"4539:2:34","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"4543:10:34","nodeType":"YulIdentifier","src":"4543:10:34"}],"functionName":{"name":"mstore","nativeSrc":"4532:6:34","nodeType":"YulIdentifier","src":"4532:6:34"},"nativeSrc":"4532:22:34","nodeType":"YulFunctionCall","src":"4532:22:34"},"nativeSrc":"4532:22:34","nodeType":"YulExpressionStatement","src":"4532:22:34"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"4570:6:34","nodeType":"YulIdentifier","src":"4570:6:34"},{"name":"_3","nativeSrc":"4578:2:34","nodeType":"YulIdentifier","src":"4578:2:34"}],"functionName":{"name":"mstore","nativeSrc":"4563:6:34","nodeType":"YulIdentifier","src":"4563:6:34"},"nativeSrc":"4563:18:34","nodeType":"YulFunctionCall","src":"4563:18:34"},"nativeSrc":"4563:18:34","nodeType":"YulExpressionStatement","src":"4563:18:34"},{"body":{"nativeSrc":"4627:16:34","nodeType":"YulBlock","src":"4627:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4636:1:34","nodeType":"YulLiteral","src":"4636:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"4639:1:34","nodeType":"YulLiteral","src":"4639:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4629:6:34","nodeType":"YulIdentifier","src":"4629:6:34"},"nativeSrc":"4629:12:34","nodeType":"YulFunctionCall","src":"4629:12:34"},"nativeSrc":"4629:12:34","nodeType":"YulExpressionStatement","src":"4629:12:34"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"4604:2:34","nodeType":"YulIdentifier","src":"4604:2:34"},{"name":"_3","nativeSrc":"4608:2:34","nodeType":"YulIdentifier","src":"4608:2:34"}],"functionName":{"name":"add","nativeSrc":"4600:3:34","nodeType":"YulIdentifier","src":"4600:3:34"},"nativeSrc":"4600:11:34","nodeType":"YulFunctionCall","src":"4600:11:34"},{"kind":"number","nativeSrc":"4613:2:34","nodeType":"YulLiteral","src":"4613:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4596:3:34","nodeType":"YulIdentifier","src":"4596:3:34"},"nativeSrc":"4596:20:34","nodeType":"YulFunctionCall","src":"4596:20:34"},{"name":"dataEnd","nativeSrc":"4618:7:34","nodeType":"YulIdentifier","src":"4618:7:34"}],"functionName":{"name":"gt","nativeSrc":"4593:2:34","nodeType":"YulIdentifier","src":"4593:2:34"},"nativeSrc":"4593:33:34","nodeType":"YulFunctionCall","src":"4593:33:34"},"nativeSrc":"4590:53:34","nodeType":"YulIf","src":"4590:53:34"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4669:6:34","nodeType":"YulIdentifier","src":"4669:6:34"},{"kind":"number","nativeSrc":"4677:2:34","nodeType":"YulLiteral","src":"4677:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4665:3:34","nodeType":"YulIdentifier","src":"4665:3:34"},"nativeSrc":"4665:15:34","nodeType":"YulFunctionCall","src":"4665:15:34"},{"arguments":[{"name":"_2","nativeSrc":"4686:2:34","nodeType":"YulIdentifier","src":"4686:2:34"},{"kind":"number","nativeSrc":"4690:2:34","nodeType":"YulLiteral","src":"4690:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4682:3:34","nodeType":"YulIdentifier","src":"4682:3:34"},"nativeSrc":"4682:11:34","nodeType":"YulFunctionCall","src":"4682:11:34"},{"name":"_3","nativeSrc":"4695:2:34","nodeType":"YulIdentifier","src":"4695:2:34"}],"functionName":{"name":"calldatacopy","nativeSrc":"4652:12:34","nodeType":"YulIdentifier","src":"4652:12:34"},"nativeSrc":"4652:46:34","nodeType":"YulFunctionCall","src":"4652:46:34"},"nativeSrc":"4652:46:34","nodeType":"YulExpressionStatement","src":"4652:46:34"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"4722:6:34","nodeType":"YulIdentifier","src":"4722:6:34"},{"name":"_3","nativeSrc":"4730:2:34","nodeType":"YulIdentifier","src":"4730:2:34"}],"functionName":{"name":"add","nativeSrc":"4718:3:34","nodeType":"YulIdentifier","src":"4718:3:34"},"nativeSrc":"4718:15:34","nodeType":"YulFunctionCall","src":"4718:15:34"},{"kind":"number","nativeSrc":"4735:2:34","nodeType":"YulLiteral","src":"4735:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4714:3:34","nodeType":"YulIdentifier","src":"4714:3:34"},"nativeSrc":"4714:24:34","nodeType":"YulFunctionCall","src":"4714:24:34"},{"kind":"number","nativeSrc":"4740:1:34","nodeType":"YulLiteral","src":"4740:1:34","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4707:6:34","nodeType":"YulIdentifier","src":"4707:6:34"},"nativeSrc":"4707:35:34","nodeType":"YulFunctionCall","src":"4707:35:34"},"nativeSrc":"4707:35:34","nodeType":"YulExpressionStatement","src":"4707:35:34"},{"nativeSrc":"4751:16:34","nodeType":"YulAssignment","src":"4751:16:34","value":{"name":"memPtr","nativeSrc":"4761:6:34","nodeType":"YulIdentifier","src":"4761:6:34"},"variableNames":[{"name":"value3","nativeSrc":"4751:6:34","nodeType":"YulIdentifier","src":"4751:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nativeSrc":"3576:1197:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3648:9:34","nodeType":"YulTypedName","src":"3648:9:34","type":""},{"name":"dataEnd","nativeSrc":"3659:7:34","nodeType":"YulTypedName","src":"3659:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3671:6:34","nodeType":"YulTypedName","src":"3671:6:34","type":""},{"name":"value1","nativeSrc":"3679:6:34","nodeType":"YulTypedName","src":"3679:6:34","type":""},{"name":"value2","nativeSrc":"3687:6:34","nodeType":"YulTypedName","src":"3687:6:34","type":""},{"name":"value3","nativeSrc":"3695:6:34","nodeType":"YulTypedName","src":"3695:6:34","type":""}],"src":"3576:1197:34"},{"body":{"nativeSrc":"4865:173:34","nodeType":"YulBlock","src":"4865:173:34","statements":[{"body":{"nativeSrc":"4911:16:34","nodeType":"YulBlock","src":"4911:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4920:1:34","nodeType":"YulLiteral","src":"4920:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"4923:1:34","nodeType":"YulLiteral","src":"4923:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4913:6:34","nodeType":"YulIdentifier","src":"4913:6:34"},"nativeSrc":"4913:12:34","nodeType":"YulFunctionCall","src":"4913:12:34"},"nativeSrc":"4913:12:34","nodeType":"YulExpressionStatement","src":"4913:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4886:7:34","nodeType":"YulIdentifier","src":"4886:7:34"},{"name":"headStart","nativeSrc":"4895:9:34","nodeType":"YulIdentifier","src":"4895:9:34"}],"functionName":{"name":"sub","nativeSrc":"4882:3:34","nodeType":"YulIdentifier","src":"4882:3:34"},"nativeSrc":"4882:23:34","nodeType":"YulFunctionCall","src":"4882:23:34"},{"kind":"number","nativeSrc":"4907:2:34","nodeType":"YulLiteral","src":"4907:2:34","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4878:3:34","nodeType":"YulIdentifier","src":"4878:3:34"},"nativeSrc":"4878:32:34","nodeType":"YulFunctionCall","src":"4878:32:34"},"nativeSrc":"4875:52:34","nodeType":"YulIf","src":"4875:52:34"},{"nativeSrc":"4936:39:34","nodeType":"YulAssignment","src":"4936:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"4965:9:34","nodeType":"YulIdentifier","src":"4965:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4946:18:34","nodeType":"YulIdentifier","src":"4946:18:34"},"nativeSrc":"4946:29:34","nodeType":"YulFunctionCall","src":"4946:29:34"},"variableNames":[{"name":"value0","nativeSrc":"4936:6:34","nodeType":"YulIdentifier","src":"4936:6:34"}]},{"nativeSrc":"4984:48:34","nodeType":"YulAssignment","src":"4984:48:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5017:9:34","nodeType":"YulIdentifier","src":"5017:9:34"},{"kind":"number","nativeSrc":"5028:2:34","nodeType":"YulLiteral","src":"5028:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5013:3:34","nodeType":"YulIdentifier","src":"5013:3:34"},"nativeSrc":"5013:18:34","nodeType":"YulFunctionCall","src":"5013:18:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4994:18:34","nodeType":"YulIdentifier","src":"4994:18:34"},"nativeSrc":"4994:38:34","nodeType":"YulFunctionCall","src":"4994:38:34"},"variableNames":[{"name":"value1","nativeSrc":"4984:6:34","nodeType":"YulIdentifier","src":"4984:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"4778:260:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4823:9:34","nodeType":"YulTypedName","src":"4823:9:34","type":""},{"name":"dataEnd","nativeSrc":"4834:7:34","nodeType":"YulTypedName","src":"4834:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4846:6:34","nodeType":"YulTypedName","src":"4846:6:34","type":""},{"name":"value1","nativeSrc":"4854:6:34","nodeType":"YulTypedName","src":"4854:6:34","type":""}],"src":"4778:260:34"},{"body":{"nativeSrc":"5098:382:34","nodeType":"YulBlock","src":"5098:382:34","statements":[{"nativeSrc":"5108:22:34","nodeType":"YulAssignment","src":"5108:22:34","value":{"arguments":[{"kind":"number","nativeSrc":"5122:1:34","nodeType":"YulLiteral","src":"5122:1:34","type":"","value":"1"},{"name":"data","nativeSrc":"5125:4:34","nodeType":"YulIdentifier","src":"5125:4:34"}],"functionName":{"name":"shr","nativeSrc":"5118:3:34","nodeType":"YulIdentifier","src":"5118:3:34"},"nativeSrc":"5118:12:34","nodeType":"YulFunctionCall","src":"5118:12:34"},"variableNames":[{"name":"length","nativeSrc":"5108:6:34","nodeType":"YulIdentifier","src":"5108:6:34"}]},{"nativeSrc":"5139:38:34","nodeType":"YulVariableDeclaration","src":"5139:38:34","value":{"arguments":[{"name":"data","nativeSrc":"5169:4:34","nodeType":"YulIdentifier","src":"5169:4:34"},{"kind":"number","nativeSrc":"5175:1:34","nodeType":"YulLiteral","src":"5175:1:34","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"5165:3:34","nodeType":"YulIdentifier","src":"5165:3:34"},"nativeSrc":"5165:12:34","nodeType":"YulFunctionCall","src":"5165:12:34"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"5143:18:34","nodeType":"YulTypedName","src":"5143:18:34","type":""}]},{"body":{"nativeSrc":"5216:31:34","nodeType":"YulBlock","src":"5216:31:34","statements":[{"nativeSrc":"5218:27:34","nodeType":"YulAssignment","src":"5218:27:34","value":{"arguments":[{"name":"length","nativeSrc":"5232:6:34","nodeType":"YulIdentifier","src":"5232:6:34"},{"kind":"number","nativeSrc":"5240:4:34","nodeType":"YulLiteral","src":"5240:4:34","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"5228:3:34","nodeType":"YulIdentifier","src":"5228:3:34"},"nativeSrc":"5228:17:34","nodeType":"YulFunctionCall","src":"5228:17:34"},"variableNames":[{"name":"length","nativeSrc":"5218:6:34","nodeType":"YulIdentifier","src":"5218:6:34"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5196:18:34","nodeType":"YulIdentifier","src":"5196:18:34"}],"functionName":{"name":"iszero","nativeSrc":"5189:6:34","nodeType":"YulIdentifier","src":"5189:6:34"},"nativeSrc":"5189:26:34","nodeType":"YulFunctionCall","src":"5189:26:34"},"nativeSrc":"5186:61:34","nodeType":"YulIf","src":"5186:61:34"},{"body":{"nativeSrc":"5306:168:34","nodeType":"YulBlock","src":"5306:168:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5327:1:34","nodeType":"YulLiteral","src":"5327:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"5330:77:34","nodeType":"YulLiteral","src":"5330:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5320:6:34","nodeType":"YulIdentifier","src":"5320:6:34"},"nativeSrc":"5320:88:34","nodeType":"YulFunctionCall","src":"5320:88:34"},"nativeSrc":"5320:88:34","nodeType":"YulExpressionStatement","src":"5320:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5428:1:34","nodeType":"YulLiteral","src":"5428:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"5431:4:34","nodeType":"YulLiteral","src":"5431:4:34","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"5421:6:34","nodeType":"YulIdentifier","src":"5421:6:34"},"nativeSrc":"5421:15:34","nodeType":"YulFunctionCall","src":"5421:15:34"},"nativeSrc":"5421:15:34","nodeType":"YulExpressionStatement","src":"5421:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5456:1:34","nodeType":"YulLiteral","src":"5456:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"5459:4:34","nodeType":"YulLiteral","src":"5459:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5449:6:34","nodeType":"YulIdentifier","src":"5449:6:34"},"nativeSrc":"5449:15:34","nodeType":"YulFunctionCall","src":"5449:15:34"},"nativeSrc":"5449:15:34","nodeType":"YulExpressionStatement","src":"5449:15:34"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"5262:18:34","nodeType":"YulIdentifier","src":"5262:18:34"},{"arguments":[{"name":"length","nativeSrc":"5285:6:34","nodeType":"YulIdentifier","src":"5285:6:34"},{"kind":"number","nativeSrc":"5293:2:34","nodeType":"YulLiteral","src":"5293:2:34","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"5282:2:34","nodeType":"YulIdentifier","src":"5282:2:34"},"nativeSrc":"5282:14:34","nodeType":"YulFunctionCall","src":"5282:14:34"}],"functionName":{"name":"eq","nativeSrc":"5259:2:34","nodeType":"YulIdentifier","src":"5259:2:34"},"nativeSrc":"5259:38:34","nodeType":"YulFunctionCall","src":"5259:38:34"},"nativeSrc":"5256:218:34","nodeType":"YulIf","src":"5256:218:34"}]},"name":"extract_byte_array_length","nativeSrc":"5043:437:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"5078:4:34","nodeType":"YulTypedName","src":"5078:4:34","type":""}],"returnVariables":[{"name":"length","nativeSrc":"5087:6:34","nodeType":"YulTypedName","src":"5087:6:34","type":""}],"src":"5043:437:34"},{"body":{"nativeSrc":"5659:223:34","nodeType":"YulBlock","src":"5659:223:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5676:9:34","nodeType":"YulIdentifier","src":"5676:9:34"},{"kind":"number","nativeSrc":"5687:2:34","nodeType":"YulLiteral","src":"5687:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5669:6:34","nodeType":"YulIdentifier","src":"5669:6:34"},"nativeSrc":"5669:21:34","nodeType":"YulFunctionCall","src":"5669:21:34"},"nativeSrc":"5669:21:34","nodeType":"YulExpressionStatement","src":"5669:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5710:9:34","nodeType":"YulIdentifier","src":"5710:9:34"},{"kind":"number","nativeSrc":"5721:2:34","nodeType":"YulLiteral","src":"5721:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5706:3:34","nodeType":"YulIdentifier","src":"5706:3:34"},"nativeSrc":"5706:18:34","nodeType":"YulFunctionCall","src":"5706:18:34"},{"kind":"number","nativeSrc":"5726:2:34","nodeType":"YulLiteral","src":"5726:2:34","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"5699:6:34","nodeType":"YulIdentifier","src":"5699:6:34"},"nativeSrc":"5699:30:34","nodeType":"YulFunctionCall","src":"5699:30:34"},"nativeSrc":"5699:30:34","nodeType":"YulExpressionStatement","src":"5699:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5749:9:34","nodeType":"YulIdentifier","src":"5749:9:34"},{"kind":"number","nativeSrc":"5760:2:34","nodeType":"YulLiteral","src":"5760:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5745:3:34","nodeType":"YulIdentifier","src":"5745:3:34"},"nativeSrc":"5745:18:34","nodeType":"YulFunctionCall","src":"5745:18:34"},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e65","kind":"string","nativeSrc":"5765:34:34","nodeType":"YulLiteral","src":"5765:34:34","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nativeSrc":"5738:6:34","nodeType":"YulIdentifier","src":"5738:6:34"},"nativeSrc":"5738:62:34","nodeType":"YulFunctionCall","src":"5738:62:34"},"nativeSrc":"5738:62:34","nodeType":"YulExpressionStatement","src":"5738:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5820:9:34","nodeType":"YulIdentifier","src":"5820:9:34"},{"kind":"number","nativeSrc":"5831:2:34","nodeType":"YulLiteral","src":"5831:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5816:3:34","nodeType":"YulIdentifier","src":"5816:3:34"},"nativeSrc":"5816:18:34","nodeType":"YulFunctionCall","src":"5816:18:34"},{"hexValue":"72","kind":"string","nativeSrc":"5836:3:34","nodeType":"YulLiteral","src":"5836:3:34","type":"","value":"r"}],"functionName":{"name":"mstore","nativeSrc":"5809:6:34","nodeType":"YulIdentifier","src":"5809:6:34"},"nativeSrc":"5809:31:34","nodeType":"YulFunctionCall","src":"5809:31:34"},"nativeSrc":"5809:31:34","nodeType":"YulExpressionStatement","src":"5809:31:34"},{"nativeSrc":"5849:27:34","nodeType":"YulAssignment","src":"5849:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"5861:9:34","nodeType":"YulIdentifier","src":"5861:9:34"},{"kind":"number","nativeSrc":"5872:3:34","nodeType":"YulLiteral","src":"5872:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5857:3:34","nodeType":"YulIdentifier","src":"5857:3:34"},"nativeSrc":"5857:19:34","nodeType":"YulFunctionCall","src":"5857:19:34"},"variableNames":[{"name":"tail","nativeSrc":"5849:4:34","nodeType":"YulIdentifier","src":"5849:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5485:397:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5636:9:34","nodeType":"YulTypedName","src":"5636:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5650:4:34","nodeType":"YulTypedName","src":"5650:4:34","type":""}],"src":"5485:397:34"},{"body":{"nativeSrc":"6061:251:34","nodeType":"YulBlock","src":"6061:251:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6078:9:34","nodeType":"YulIdentifier","src":"6078:9:34"},{"kind":"number","nativeSrc":"6089:2:34","nodeType":"YulLiteral","src":"6089:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6071:6:34","nodeType":"YulIdentifier","src":"6071:6:34"},"nativeSrc":"6071:21:34","nodeType":"YulFunctionCall","src":"6071:21:34"},"nativeSrc":"6071:21:34","nodeType":"YulExpressionStatement","src":"6071:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6112:9:34","nodeType":"YulIdentifier","src":"6112:9:34"},{"kind":"number","nativeSrc":"6123:2:34","nodeType":"YulLiteral","src":"6123:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6108:3:34","nodeType":"YulIdentifier","src":"6108:3:34"},"nativeSrc":"6108:18:34","nodeType":"YulFunctionCall","src":"6108:18:34"},{"kind":"number","nativeSrc":"6128:2:34","nodeType":"YulLiteral","src":"6128:2:34","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"6101:6:34","nodeType":"YulIdentifier","src":"6101:6:34"},"nativeSrc":"6101:30:34","nodeType":"YulFunctionCall","src":"6101:30:34"},"nativeSrc":"6101:30:34","nodeType":"YulExpressionStatement","src":"6101:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6151:9:34","nodeType":"YulIdentifier","src":"6151:9:34"},{"kind":"number","nativeSrc":"6162:2:34","nodeType":"YulLiteral","src":"6162:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6147:3:34","nodeType":"YulIdentifier","src":"6147:3:34"},"nativeSrc":"6147:18:34","nodeType":"YulFunctionCall","src":"6147:18:34"},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f","kind":"string","nativeSrc":"6167:34:34","nodeType":"YulLiteral","src":"6167:34:34","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nativeSrc":"6140:6:34","nodeType":"YulIdentifier","src":"6140:6:34"},"nativeSrc":"6140:62:34","nodeType":"YulFunctionCall","src":"6140:62:34"},"nativeSrc":"6140:62:34","nodeType":"YulExpressionStatement","src":"6140:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6222:9:34","nodeType":"YulIdentifier","src":"6222:9:34"},{"kind":"number","nativeSrc":"6233:2:34","nodeType":"YulLiteral","src":"6233:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6218:3:34","nodeType":"YulIdentifier","src":"6218:3:34"},"nativeSrc":"6218:18:34","nodeType":"YulFunctionCall","src":"6218:18:34"},{"hexValue":"6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","kind":"string","nativeSrc":"6238:31:34","nodeType":"YulLiteral","src":"6238:31:34","type":"","value":"ken owner or approved for all"}],"functionName":{"name":"mstore","nativeSrc":"6211:6:34","nodeType":"YulIdentifier","src":"6211:6:34"},"nativeSrc":"6211:59:34","nodeType":"YulFunctionCall","src":"6211:59:34"},"nativeSrc":"6211:59:34","nodeType":"YulExpressionStatement","src":"6211:59:34"},{"nativeSrc":"6279:27:34","nodeType":"YulAssignment","src":"6279:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"6291:9:34","nodeType":"YulIdentifier","src":"6291:9:34"},{"kind":"number","nativeSrc":"6302:3:34","nodeType":"YulLiteral","src":"6302:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6287:3:34","nodeType":"YulIdentifier","src":"6287:3:34"},"nativeSrc":"6287:19:34","nodeType":"YulFunctionCall","src":"6287:19:34"},"variableNames":[{"name":"tail","nativeSrc":"6279:4:34","nodeType":"YulIdentifier","src":"6279:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5887:425:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6038:9:34","nodeType":"YulTypedName","src":"6038:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6052:4:34","nodeType":"YulTypedName","src":"6052:4:34","type":""}],"src":"5887:425:34"},{"body":{"nativeSrc":"6491:235:34","nodeType":"YulBlock","src":"6491:235:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6508:9:34","nodeType":"YulIdentifier","src":"6508:9:34"},{"kind":"number","nativeSrc":"6519:2:34","nodeType":"YulLiteral","src":"6519:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6501:6:34","nodeType":"YulIdentifier","src":"6501:6:34"},"nativeSrc":"6501:21:34","nodeType":"YulFunctionCall","src":"6501:21:34"},"nativeSrc":"6501:21:34","nodeType":"YulExpressionStatement","src":"6501:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6542:9:34","nodeType":"YulIdentifier","src":"6542:9:34"},{"kind":"number","nativeSrc":"6553:2:34","nodeType":"YulLiteral","src":"6553:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6538:3:34","nodeType":"YulIdentifier","src":"6538:3:34"},"nativeSrc":"6538:18:34","nodeType":"YulFunctionCall","src":"6538:18:34"},{"kind":"number","nativeSrc":"6558:2:34","nodeType":"YulLiteral","src":"6558:2:34","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"6531:6:34","nodeType":"YulIdentifier","src":"6531:6:34"},"nativeSrc":"6531:30:34","nodeType":"YulFunctionCall","src":"6531:30:34"},"nativeSrc":"6531:30:34","nodeType":"YulExpressionStatement","src":"6531:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6581:9:34","nodeType":"YulIdentifier","src":"6581:9:34"},{"kind":"number","nativeSrc":"6592:2:34","nodeType":"YulLiteral","src":"6592:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6577:3:34","nodeType":"YulIdentifier","src":"6577:3:34"},"nativeSrc":"6577:18:34","nodeType":"YulFunctionCall","src":"6577:18:34"},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65","kind":"string","nativeSrc":"6597:34:34","nodeType":"YulLiteral","src":"6597:34:34","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nativeSrc":"6570:6:34","nodeType":"YulIdentifier","src":"6570:6:34"},"nativeSrc":"6570:62:34","nodeType":"YulFunctionCall","src":"6570:62:34"},"nativeSrc":"6570:62:34","nodeType":"YulExpressionStatement","src":"6570:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6652:9:34","nodeType":"YulIdentifier","src":"6652:9:34"},{"kind":"number","nativeSrc":"6663:2:34","nodeType":"YulLiteral","src":"6663:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6648:3:34","nodeType":"YulIdentifier","src":"6648:3:34"},"nativeSrc":"6648:18:34","nodeType":"YulFunctionCall","src":"6648:18:34"},{"hexValue":"72206f7220617070726f766564","kind":"string","nativeSrc":"6668:15:34","nodeType":"YulLiteral","src":"6668:15:34","type":"","value":"r or approved"}],"functionName":{"name":"mstore","nativeSrc":"6641:6:34","nodeType":"YulIdentifier","src":"6641:6:34"},"nativeSrc":"6641:43:34","nodeType":"YulFunctionCall","src":"6641:43:34"},"nativeSrc":"6641:43:34","nodeType":"YulExpressionStatement","src":"6641:43:34"},{"nativeSrc":"6693:27:34","nodeType":"YulAssignment","src":"6693:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"6705:9:34","nodeType":"YulIdentifier","src":"6705:9:34"},{"kind":"number","nativeSrc":"6716:3:34","nodeType":"YulLiteral","src":"6716:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6701:3:34","nodeType":"YulIdentifier","src":"6701:3:34"},"nativeSrc":"6701:19:34","nodeType":"YulFunctionCall","src":"6701:19:34"},"variableNames":[{"name":"tail","nativeSrc":"6693:4:34","nodeType":"YulIdentifier","src":"6693:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6317:409:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6468:9:34","nodeType":"YulTypedName","src":"6468:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6482:4:34","nodeType":"YulTypedName","src":"6482:4:34","type":""}],"src":"6317:409:34"},{"body":{"nativeSrc":"6905:174:34","nodeType":"YulBlock","src":"6905:174:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6922:9:34","nodeType":"YulIdentifier","src":"6922:9:34"},{"kind":"number","nativeSrc":"6933:2:34","nodeType":"YulLiteral","src":"6933:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6915:6:34","nodeType":"YulIdentifier","src":"6915:6:34"},"nativeSrc":"6915:21:34","nodeType":"YulFunctionCall","src":"6915:21:34"},"nativeSrc":"6915:21:34","nodeType":"YulExpressionStatement","src":"6915:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6956:9:34","nodeType":"YulIdentifier","src":"6956:9:34"},{"kind":"number","nativeSrc":"6967:2:34","nodeType":"YulLiteral","src":"6967:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6952:3:34","nodeType":"YulIdentifier","src":"6952:3:34"},"nativeSrc":"6952:18:34","nodeType":"YulFunctionCall","src":"6952:18:34"},{"kind":"number","nativeSrc":"6972:2:34","nodeType":"YulLiteral","src":"6972:2:34","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"6945:6:34","nodeType":"YulIdentifier","src":"6945:6:34"},"nativeSrc":"6945:30:34","nodeType":"YulFunctionCall","src":"6945:30:34"},"nativeSrc":"6945:30:34","nodeType":"YulExpressionStatement","src":"6945:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6995:9:34","nodeType":"YulIdentifier","src":"6995:9:34"},{"kind":"number","nativeSrc":"7006:2:34","nodeType":"YulLiteral","src":"7006:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6991:3:34","nodeType":"YulIdentifier","src":"6991:3:34"},"nativeSrc":"6991:18:34","nodeType":"YulFunctionCall","src":"6991:18:34"},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","kind":"string","nativeSrc":"7011:26:34","nodeType":"YulLiteral","src":"7011:26:34","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nativeSrc":"6984:6:34","nodeType":"YulIdentifier","src":"6984:6:34"},"nativeSrc":"6984:54:34","nodeType":"YulFunctionCall","src":"6984:54:34"},"nativeSrc":"6984:54:34","nodeType":"YulExpressionStatement","src":"6984:54:34"},{"nativeSrc":"7047:26:34","nodeType":"YulAssignment","src":"7047:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"7059:9:34","nodeType":"YulIdentifier","src":"7059:9:34"},{"kind":"number","nativeSrc":"7070:2:34","nodeType":"YulLiteral","src":"7070:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7055:3:34","nodeType":"YulIdentifier","src":"7055:3:34"},"nativeSrc":"7055:18:34","nodeType":"YulFunctionCall","src":"7055:18:34"},"variableNames":[{"name":"tail","nativeSrc":"7047:4:34","nodeType":"YulIdentifier","src":"7047:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6731:348:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6882:9:34","nodeType":"YulTypedName","src":"6882:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6896:4:34","nodeType":"YulTypedName","src":"6896:4:34","type":""}],"src":"6731:348:34"},{"body":{"nativeSrc":"7258:231:34","nodeType":"YulBlock","src":"7258:231:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7275:9:34","nodeType":"YulIdentifier","src":"7275:9:34"},{"kind":"number","nativeSrc":"7286:2:34","nodeType":"YulLiteral","src":"7286:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7268:6:34","nodeType":"YulIdentifier","src":"7268:6:34"},"nativeSrc":"7268:21:34","nodeType":"YulFunctionCall","src":"7268:21:34"},"nativeSrc":"7268:21:34","nodeType":"YulExpressionStatement","src":"7268:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7309:9:34","nodeType":"YulIdentifier","src":"7309:9:34"},{"kind":"number","nativeSrc":"7320:2:34","nodeType":"YulLiteral","src":"7320:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7305:3:34","nodeType":"YulIdentifier","src":"7305:3:34"},"nativeSrc":"7305:18:34","nodeType":"YulFunctionCall","src":"7305:18:34"},{"kind":"number","nativeSrc":"7325:2:34","nodeType":"YulLiteral","src":"7325:2:34","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"7298:6:34","nodeType":"YulIdentifier","src":"7298:6:34"},"nativeSrc":"7298:30:34","nodeType":"YulFunctionCall","src":"7298:30:34"},"nativeSrc":"7298:30:34","nodeType":"YulExpressionStatement","src":"7298:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7348:9:34","nodeType":"YulIdentifier","src":"7348:9:34"},{"kind":"number","nativeSrc":"7359:2:34","nodeType":"YulLiteral","src":"7359:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7344:3:34","nodeType":"YulIdentifier","src":"7344:3:34"},"nativeSrc":"7344:18:34","nodeType":"YulFunctionCall","src":"7344:18:34"},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f742061207661","kind":"string","nativeSrc":"7364:34:34","nodeType":"YulLiteral","src":"7364:34:34","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nativeSrc":"7337:6:34","nodeType":"YulIdentifier","src":"7337:6:34"},"nativeSrc":"7337:62:34","nodeType":"YulFunctionCall","src":"7337:62:34"},"nativeSrc":"7337:62:34","nodeType":"YulExpressionStatement","src":"7337:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7419:9:34","nodeType":"YulIdentifier","src":"7419:9:34"},{"kind":"number","nativeSrc":"7430:2:34","nodeType":"YulLiteral","src":"7430:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7415:3:34","nodeType":"YulIdentifier","src":"7415:3:34"},"nativeSrc":"7415:18:34","nodeType":"YulFunctionCall","src":"7415:18:34"},{"hexValue":"6c6964206f776e6572","kind":"string","nativeSrc":"7435:11:34","nodeType":"YulLiteral","src":"7435:11:34","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nativeSrc":"7408:6:34","nodeType":"YulIdentifier","src":"7408:6:34"},"nativeSrc":"7408:39:34","nodeType":"YulFunctionCall","src":"7408:39:34"},"nativeSrc":"7408:39:34","nodeType":"YulExpressionStatement","src":"7408:39:34"},{"nativeSrc":"7456:27:34","nodeType":"YulAssignment","src":"7456:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"7468:9:34","nodeType":"YulIdentifier","src":"7468:9:34"},{"kind":"number","nativeSrc":"7479:3:34","nodeType":"YulLiteral","src":"7479:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7464:3:34","nodeType":"YulIdentifier","src":"7464:3:34"},"nativeSrc":"7464:19:34","nodeType":"YulFunctionCall","src":"7464:19:34"},"variableNames":[{"name":"tail","nativeSrc":"7456:4:34","nodeType":"YulIdentifier","src":"7456:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7084:405:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7235:9:34","nodeType":"YulTypedName","src":"7235:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7249:4:34","nodeType":"YulTypedName","src":"7249:4:34","type":""}],"src":"7084:405:34"},{"body":{"nativeSrc":"7681:309:34","nodeType":"YulBlock","src":"7681:309:34","statements":[{"nativeSrc":"7691:27:34","nodeType":"YulVariableDeclaration","src":"7691:27:34","value":{"arguments":[{"name":"value0","nativeSrc":"7711:6:34","nodeType":"YulIdentifier","src":"7711:6:34"}],"functionName":{"name":"mload","nativeSrc":"7705:5:34","nodeType":"YulIdentifier","src":"7705:5:34"},"nativeSrc":"7705:13:34","nodeType":"YulFunctionCall","src":"7705:13:34"},"variables":[{"name":"length","nativeSrc":"7695:6:34","nodeType":"YulTypedName","src":"7695:6:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"7766:6:34","nodeType":"YulIdentifier","src":"7766:6:34"},{"kind":"number","nativeSrc":"7774:4:34","nodeType":"YulLiteral","src":"7774:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7762:3:34","nodeType":"YulIdentifier","src":"7762:3:34"},"nativeSrc":"7762:17:34","nodeType":"YulFunctionCall","src":"7762:17:34"},{"name":"pos","nativeSrc":"7781:3:34","nodeType":"YulIdentifier","src":"7781:3:34"},{"name":"length","nativeSrc":"7786:6:34","nodeType":"YulIdentifier","src":"7786:6:34"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7727:34:34","nodeType":"YulIdentifier","src":"7727:34:34"},"nativeSrc":"7727:66:34","nodeType":"YulFunctionCall","src":"7727:66:34"},"nativeSrc":"7727:66:34","nodeType":"YulExpressionStatement","src":"7727:66:34"},{"nativeSrc":"7802:29:34","nodeType":"YulVariableDeclaration","src":"7802:29:34","value":{"arguments":[{"name":"pos","nativeSrc":"7819:3:34","nodeType":"YulIdentifier","src":"7819:3:34"},{"name":"length","nativeSrc":"7824:6:34","nodeType":"YulIdentifier","src":"7824:6:34"}],"functionName":{"name":"add","nativeSrc":"7815:3:34","nodeType":"YulIdentifier","src":"7815:3:34"},"nativeSrc":"7815:16:34","nodeType":"YulFunctionCall","src":"7815:16:34"},"variables":[{"name":"end_1","nativeSrc":"7806:5:34","nodeType":"YulTypedName","src":"7806:5:34","type":""}]},{"nativeSrc":"7840:29:34","nodeType":"YulVariableDeclaration","src":"7840:29:34","value":{"arguments":[{"name":"value1","nativeSrc":"7862:6:34","nodeType":"YulIdentifier","src":"7862:6:34"}],"functionName":{"name":"mload","nativeSrc":"7856:5:34","nodeType":"YulIdentifier","src":"7856:5:34"},"nativeSrc":"7856:13:34","nodeType":"YulFunctionCall","src":"7856:13:34"},"variables":[{"name":"length_1","nativeSrc":"7844:8:34","nodeType":"YulTypedName","src":"7844:8:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"7917:6:34","nodeType":"YulIdentifier","src":"7917:6:34"},{"kind":"number","nativeSrc":"7925:4:34","nodeType":"YulLiteral","src":"7925:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7913:3:34","nodeType":"YulIdentifier","src":"7913:3:34"},"nativeSrc":"7913:17:34","nodeType":"YulFunctionCall","src":"7913:17:34"},{"name":"end_1","nativeSrc":"7932:5:34","nodeType":"YulIdentifier","src":"7932:5:34"},{"name":"length_1","nativeSrc":"7939:8:34","nodeType":"YulIdentifier","src":"7939:8:34"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7878:34:34","nodeType":"YulIdentifier","src":"7878:34:34"},"nativeSrc":"7878:70:34","nodeType":"YulFunctionCall","src":"7878:70:34"},"nativeSrc":"7878:70:34","nodeType":"YulExpressionStatement","src":"7878:70:34"},{"nativeSrc":"7957:27:34","nodeType":"YulAssignment","src":"7957:27:34","value":{"arguments":[{"name":"end_1","nativeSrc":"7968:5:34","nodeType":"YulIdentifier","src":"7968:5:34"},{"name":"length_1","nativeSrc":"7975:8:34","nodeType":"YulIdentifier","src":"7975:8:34"}],"functionName":{"name":"add","nativeSrc":"7964:3:34","nodeType":"YulIdentifier","src":"7964:3:34"},"nativeSrc":"7964:20:34","nodeType":"YulFunctionCall","src":"7964:20:34"},"variableNames":[{"name":"end","nativeSrc":"7957:3:34","nodeType":"YulIdentifier","src":"7957:3:34"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7494:496:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7649:3:34","nodeType":"YulTypedName","src":"7649:3:34","type":""},{"name":"value1","nativeSrc":"7654:6:34","nodeType":"YulTypedName","src":"7654:6:34","type":""},{"name":"value0","nativeSrc":"7662:6:34","nodeType":"YulTypedName","src":"7662:6:34","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7673:3:34","nodeType":"YulTypedName","src":"7673:3:34","type":""}],"src":"7494:496:34"},{"body":{"nativeSrc":"8169:227:34","nodeType":"YulBlock","src":"8169:227:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8186:9:34","nodeType":"YulIdentifier","src":"8186:9:34"},{"kind":"number","nativeSrc":"8197:2:34","nodeType":"YulLiteral","src":"8197:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8179:6:34","nodeType":"YulIdentifier","src":"8179:6:34"},"nativeSrc":"8179:21:34","nodeType":"YulFunctionCall","src":"8179:21:34"},"nativeSrc":"8179:21:34","nodeType":"YulExpressionStatement","src":"8179:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8220:9:34","nodeType":"YulIdentifier","src":"8220:9:34"},{"kind":"number","nativeSrc":"8231:2:34","nodeType":"YulLiteral","src":"8231:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8216:3:34","nodeType":"YulIdentifier","src":"8216:3:34"},"nativeSrc":"8216:18:34","nodeType":"YulFunctionCall","src":"8216:18:34"},{"kind":"number","nativeSrc":"8236:2:34","nodeType":"YulLiteral","src":"8236:2:34","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"8209:6:34","nodeType":"YulIdentifier","src":"8209:6:34"},"nativeSrc":"8209:30:34","nodeType":"YulFunctionCall","src":"8209:30:34"},"nativeSrc":"8209:30:34","nodeType":"YulExpressionStatement","src":"8209:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8259:9:34","nodeType":"YulIdentifier","src":"8259:9:34"},{"kind":"number","nativeSrc":"8270:2:34","nodeType":"YulLiteral","src":"8270:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8255:3:34","nodeType":"YulIdentifier","src":"8255:3:34"},"nativeSrc":"8255:18:34","nodeType":"YulFunctionCall","src":"8255:18:34"},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f727265637420","kind":"string","nativeSrc":"8275:34:34","nodeType":"YulLiteral","src":"8275:34:34","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nativeSrc":"8248:6:34","nodeType":"YulIdentifier","src":"8248:6:34"},"nativeSrc":"8248:62:34","nodeType":"YulFunctionCall","src":"8248:62:34"},"nativeSrc":"8248:62:34","nodeType":"YulExpressionStatement","src":"8248:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8330:9:34","nodeType":"YulIdentifier","src":"8330:9:34"},{"kind":"number","nativeSrc":"8341:2:34","nodeType":"YulLiteral","src":"8341:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8326:3:34","nodeType":"YulIdentifier","src":"8326:3:34"},"nativeSrc":"8326:18:34","nodeType":"YulFunctionCall","src":"8326:18:34"},{"hexValue":"6f776e6572","kind":"string","nativeSrc":"8346:7:34","nodeType":"YulLiteral","src":"8346:7:34","type":"","value":"owner"}],"functionName":{"name":"mstore","nativeSrc":"8319:6:34","nodeType":"YulIdentifier","src":"8319:6:34"},"nativeSrc":"8319:35:34","nodeType":"YulFunctionCall","src":"8319:35:34"},"nativeSrc":"8319:35:34","nodeType":"YulExpressionStatement","src":"8319:35:34"},{"nativeSrc":"8363:27:34","nodeType":"YulAssignment","src":"8363:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"8375:9:34","nodeType":"YulIdentifier","src":"8375:9:34"},{"kind":"number","nativeSrc":"8386:3:34","nodeType":"YulLiteral","src":"8386:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8371:3:34","nodeType":"YulIdentifier","src":"8371:3:34"},"nativeSrc":"8371:19:34","nodeType":"YulFunctionCall","src":"8371:19:34"},"variableNames":[{"name":"tail","nativeSrc":"8363:4:34","nodeType":"YulIdentifier","src":"8363:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7995:401:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8146:9:34","nodeType":"YulTypedName","src":"8146:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8160:4:34","nodeType":"YulTypedName","src":"8160:4:34","type":""}],"src":"7995:401:34"},{"body":{"nativeSrc":"8575:226:34","nodeType":"YulBlock","src":"8575:226:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8592:9:34","nodeType":"YulIdentifier","src":"8592:9:34"},{"kind":"number","nativeSrc":"8603:2:34","nodeType":"YulLiteral","src":"8603:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8585:6:34","nodeType":"YulIdentifier","src":"8585:6:34"},"nativeSrc":"8585:21:34","nodeType":"YulFunctionCall","src":"8585:21:34"},"nativeSrc":"8585:21:34","nodeType":"YulExpressionStatement","src":"8585:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8626:9:34","nodeType":"YulIdentifier","src":"8626:9:34"},{"kind":"number","nativeSrc":"8637:2:34","nodeType":"YulLiteral","src":"8637:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8622:3:34","nodeType":"YulIdentifier","src":"8622:3:34"},"nativeSrc":"8622:18:34","nodeType":"YulFunctionCall","src":"8622:18:34"},{"kind":"number","nativeSrc":"8642:2:34","nodeType":"YulLiteral","src":"8642:2:34","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"8615:6:34","nodeType":"YulIdentifier","src":"8615:6:34"},"nativeSrc":"8615:30:34","nodeType":"YulFunctionCall","src":"8615:30:34"},"nativeSrc":"8615:30:34","nodeType":"YulExpressionStatement","src":"8615:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8665:9:34","nodeType":"YulIdentifier","src":"8665:9:34"},{"kind":"number","nativeSrc":"8676:2:34","nodeType":"YulLiteral","src":"8676:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8661:3:34","nodeType":"YulIdentifier","src":"8661:3:34"},"nativeSrc":"8661:18:34","nodeType":"YulFunctionCall","src":"8661:18:34"},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f20616464","kind":"string","nativeSrc":"8681:34:34","nodeType":"YulLiteral","src":"8681:34:34","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nativeSrc":"8654:6:34","nodeType":"YulIdentifier","src":"8654:6:34"},"nativeSrc":"8654:62:34","nodeType":"YulFunctionCall","src":"8654:62:34"},"nativeSrc":"8654:62:34","nodeType":"YulExpressionStatement","src":"8654:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8736:9:34","nodeType":"YulIdentifier","src":"8736:9:34"},{"kind":"number","nativeSrc":"8747:2:34","nodeType":"YulLiteral","src":"8747:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8732:3:34","nodeType":"YulIdentifier","src":"8732:3:34"},"nativeSrc":"8732:18:34","nodeType":"YulFunctionCall","src":"8732:18:34"},{"hexValue":"72657373","kind":"string","nativeSrc":"8752:6:34","nodeType":"YulLiteral","src":"8752:6:34","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"8725:6:34","nodeType":"YulIdentifier","src":"8725:6:34"},"nativeSrc":"8725:34:34","nodeType":"YulFunctionCall","src":"8725:34:34"},"nativeSrc":"8725:34:34","nodeType":"YulExpressionStatement","src":"8725:34:34"},{"nativeSrc":"8768:27:34","nodeType":"YulAssignment","src":"8768:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"8780:9:34","nodeType":"YulIdentifier","src":"8780:9:34"},{"kind":"number","nativeSrc":"8791:3:34","nodeType":"YulLiteral","src":"8791:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"8776:3:34","nodeType":"YulIdentifier","src":"8776:3:34"},"nativeSrc":"8776:19:34","nodeType":"YulFunctionCall","src":"8776:19:34"},"variableNames":[{"name":"tail","nativeSrc":"8768:4:34","nodeType":"YulIdentifier","src":"8768:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8401:400:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8552:9:34","nodeType":"YulTypedName","src":"8552:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8566:4:34","nodeType":"YulTypedName","src":"8566:4:34","type":""}],"src":"8401:400:34"},{"body":{"nativeSrc":"8980:175:34","nodeType":"YulBlock","src":"8980:175:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8997:9:34","nodeType":"YulIdentifier","src":"8997:9:34"},{"kind":"number","nativeSrc":"9008:2:34","nodeType":"YulLiteral","src":"9008:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8990:6:34","nodeType":"YulIdentifier","src":"8990:6:34"},"nativeSrc":"8990:21:34","nodeType":"YulFunctionCall","src":"8990:21:34"},"nativeSrc":"8990:21:34","nodeType":"YulExpressionStatement","src":"8990:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9031:9:34","nodeType":"YulIdentifier","src":"9031:9:34"},{"kind":"number","nativeSrc":"9042:2:34","nodeType":"YulLiteral","src":"9042:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9027:3:34","nodeType":"YulIdentifier","src":"9027:3:34"},"nativeSrc":"9027:18:34","nodeType":"YulFunctionCall","src":"9027:18:34"},{"kind":"number","nativeSrc":"9047:2:34","nodeType":"YulLiteral","src":"9047:2:34","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"9020:6:34","nodeType":"YulIdentifier","src":"9020:6:34"},"nativeSrc":"9020:30:34","nodeType":"YulFunctionCall","src":"9020:30:34"},"nativeSrc":"9020:30:34","nodeType":"YulExpressionStatement","src":"9020:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9070:9:34","nodeType":"YulIdentifier","src":"9070:9:34"},{"kind":"number","nativeSrc":"9081:2:34","nodeType":"YulLiteral","src":"9081:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9066:3:34","nodeType":"YulIdentifier","src":"9066:3:34"},"nativeSrc":"9066:18:34","nodeType":"YulFunctionCall","src":"9066:18:34"},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","kind":"string","nativeSrc":"9086:27:34","nodeType":"YulLiteral","src":"9086:27:34","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nativeSrc":"9059:6:34","nodeType":"YulIdentifier","src":"9059:6:34"},"nativeSrc":"9059:55:34","nodeType":"YulFunctionCall","src":"9059:55:34"},"nativeSrc":"9059:55:34","nodeType":"YulExpressionStatement","src":"9059:55:34"},{"nativeSrc":"9123:26:34","nodeType":"YulAssignment","src":"9123:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"9135:9:34","nodeType":"YulIdentifier","src":"9135:9:34"},{"kind":"number","nativeSrc":"9146:2:34","nodeType":"YulLiteral","src":"9146:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9131:3:34","nodeType":"YulIdentifier","src":"9131:3:34"},"nativeSrc":"9131:18:34","nodeType":"YulFunctionCall","src":"9131:18:34"},"variableNames":[{"name":"tail","nativeSrc":"9123:4:34","nodeType":"YulIdentifier","src":"9123:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8806:349:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8957:9:34","nodeType":"YulTypedName","src":"8957:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8971:4:34","nodeType":"YulTypedName","src":"8971:4:34","type":""}],"src":"8806:349:34"},{"body":{"nativeSrc":"9334:240:34","nodeType":"YulBlock","src":"9334:240:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9351:9:34","nodeType":"YulIdentifier","src":"9351:9:34"},{"kind":"number","nativeSrc":"9362:2:34","nodeType":"YulLiteral","src":"9362:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9344:6:34","nodeType":"YulIdentifier","src":"9344:6:34"},"nativeSrc":"9344:21:34","nodeType":"YulFunctionCall","src":"9344:21:34"},"nativeSrc":"9344:21:34","nodeType":"YulExpressionStatement","src":"9344:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9385:9:34","nodeType":"YulIdentifier","src":"9385:9:34"},{"kind":"number","nativeSrc":"9396:2:34","nodeType":"YulLiteral","src":"9396:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9381:3:34","nodeType":"YulIdentifier","src":"9381:3:34"},"nativeSrc":"9381:18:34","nodeType":"YulFunctionCall","src":"9381:18:34"},{"kind":"number","nativeSrc":"9401:2:34","nodeType":"YulLiteral","src":"9401:2:34","type":"","value":"50"}],"functionName":{"name":"mstore","nativeSrc":"9374:6:34","nodeType":"YulIdentifier","src":"9374:6:34"},"nativeSrc":"9374:30:34","nodeType":"YulFunctionCall","src":"9374:30:34"},"nativeSrc":"9374:30:34","nodeType":"YulExpressionStatement","src":"9374:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9424:9:34","nodeType":"YulIdentifier","src":"9424:9:34"},{"kind":"number","nativeSrc":"9435:2:34","nodeType":"YulLiteral","src":"9435:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9420:3:34","nodeType":"YulIdentifier","src":"9420:3:34"},"nativeSrc":"9420:18:34","nodeType":"YulFunctionCall","src":"9420:18:34"},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e204552433732315265","kind":"string","nativeSrc":"9440:34:34","nodeType":"YulLiteral","src":"9440:34:34","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nativeSrc":"9413:6:34","nodeType":"YulIdentifier","src":"9413:6:34"},"nativeSrc":"9413:62:34","nodeType":"YulFunctionCall","src":"9413:62:34"},"nativeSrc":"9413:62:34","nodeType":"YulExpressionStatement","src":"9413:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9495:9:34","nodeType":"YulIdentifier","src":"9495:9:34"},{"kind":"number","nativeSrc":"9506:2:34","nodeType":"YulLiteral","src":"9506:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9491:3:34","nodeType":"YulIdentifier","src":"9491:3:34"},"nativeSrc":"9491:18:34","nodeType":"YulFunctionCall","src":"9491:18:34"},{"hexValue":"63656976657220696d706c656d656e746572","kind":"string","nativeSrc":"9511:20:34","nodeType":"YulLiteral","src":"9511:20:34","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nativeSrc":"9484:6:34","nodeType":"YulIdentifier","src":"9484:6:34"},"nativeSrc":"9484:48:34","nodeType":"YulFunctionCall","src":"9484:48:34"},"nativeSrc":"9484:48:34","nodeType":"YulExpressionStatement","src":"9484:48:34"},{"nativeSrc":"9541:27:34","nodeType":"YulAssignment","src":"9541:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"9553:9:34","nodeType":"YulIdentifier","src":"9553:9:34"},{"kind":"number","nativeSrc":"9564:3:34","nodeType":"YulLiteral","src":"9564:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9549:3:34","nodeType":"YulIdentifier","src":"9549:3:34"},"nativeSrc":"9549:19:34","nodeType":"YulFunctionCall","src":"9549:19:34"},"variableNames":[{"name":"tail","nativeSrc":"9541:4:34","nodeType":"YulIdentifier","src":"9541:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9160:414:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9311:9:34","nodeType":"YulTypedName","src":"9311:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9325:4:34","nodeType":"YulTypedName","src":"9325:4:34","type":""}],"src":"9160:414:34"},{"body":{"nativeSrc":"9611:152:34","nodeType":"YulBlock","src":"9611:152:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9628:1:34","nodeType":"YulLiteral","src":"9628:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"9631:77:34","nodeType":"YulLiteral","src":"9631:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9621:6:34","nodeType":"YulIdentifier","src":"9621:6:34"},"nativeSrc":"9621:88:34","nodeType":"YulFunctionCall","src":"9621:88:34"},"nativeSrc":"9621:88:34","nodeType":"YulExpressionStatement","src":"9621:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9725:1:34","nodeType":"YulLiteral","src":"9725:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"9728:4:34","nodeType":"YulLiteral","src":"9728:4:34","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"9718:6:34","nodeType":"YulIdentifier","src":"9718:6:34"},"nativeSrc":"9718:15:34","nodeType":"YulFunctionCall","src":"9718:15:34"},"nativeSrc":"9718:15:34","nodeType":"YulExpressionStatement","src":"9718:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9749:1:34","nodeType":"YulLiteral","src":"9749:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"9752:4:34","nodeType":"YulLiteral","src":"9752:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9742:6:34","nodeType":"YulIdentifier","src":"9742:6:34"},"nativeSrc":"9742:15:34","nodeType":"YulFunctionCall","src":"9742:15:34"},"nativeSrc":"9742:15:34","nodeType":"YulExpressionStatement","src":"9742:15:34"}]},"name":"panic_error_0x12","nativeSrc":"9579:184:34","nodeType":"YulFunctionDefinition","src":"9579:184:34"},{"body":{"nativeSrc":"9971:309:34","nodeType":"YulBlock","src":"9971:309:34","statements":[{"nativeSrc":"9981:52:34","nodeType":"YulVariableDeclaration","src":"9981:52:34","value":{"kind":"number","nativeSrc":"9991:42:34","nodeType":"YulLiteral","src":"9991:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"9985:2:34","nodeType":"YulTypedName","src":"9985:2:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10049:9:34","nodeType":"YulIdentifier","src":"10049:9:34"},{"arguments":[{"name":"value0","nativeSrc":"10064:6:34","nodeType":"YulIdentifier","src":"10064:6:34"},{"name":"_1","nativeSrc":"10072:2:34","nodeType":"YulIdentifier","src":"10072:2:34"}],"functionName":{"name":"and","nativeSrc":"10060:3:34","nodeType":"YulIdentifier","src":"10060:3:34"},"nativeSrc":"10060:15:34","nodeType":"YulFunctionCall","src":"10060:15:34"}],"functionName":{"name":"mstore","nativeSrc":"10042:6:34","nodeType":"YulIdentifier","src":"10042:6:34"},"nativeSrc":"10042:34:34","nodeType":"YulFunctionCall","src":"10042:34:34"},"nativeSrc":"10042:34:34","nodeType":"YulExpressionStatement","src":"10042:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10096:9:34","nodeType":"YulIdentifier","src":"10096:9:34"},{"kind":"number","nativeSrc":"10107:2:34","nodeType":"YulLiteral","src":"10107:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10092:3:34","nodeType":"YulIdentifier","src":"10092:3:34"},"nativeSrc":"10092:18:34","nodeType":"YulFunctionCall","src":"10092:18:34"},{"arguments":[{"name":"value1","nativeSrc":"10116:6:34","nodeType":"YulIdentifier","src":"10116:6:34"},{"name":"_1","nativeSrc":"10124:2:34","nodeType":"YulIdentifier","src":"10124:2:34"}],"functionName":{"name":"and","nativeSrc":"10112:3:34","nodeType":"YulIdentifier","src":"10112:3:34"},"nativeSrc":"10112:15:34","nodeType":"YulFunctionCall","src":"10112:15:34"}],"functionName":{"name":"mstore","nativeSrc":"10085:6:34","nodeType":"YulIdentifier","src":"10085:6:34"},"nativeSrc":"10085:43:34","nodeType":"YulFunctionCall","src":"10085:43:34"},"nativeSrc":"10085:43:34","nodeType":"YulExpressionStatement","src":"10085:43:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10148:9:34","nodeType":"YulIdentifier","src":"10148:9:34"},{"kind":"number","nativeSrc":"10159:2:34","nodeType":"YulLiteral","src":"10159:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10144:3:34","nodeType":"YulIdentifier","src":"10144:3:34"},"nativeSrc":"10144:18:34","nodeType":"YulFunctionCall","src":"10144:18:34"},{"name":"value2","nativeSrc":"10164:6:34","nodeType":"YulIdentifier","src":"10164:6:34"}],"functionName":{"name":"mstore","nativeSrc":"10137:6:34","nodeType":"YulIdentifier","src":"10137:6:34"},"nativeSrc":"10137:34:34","nodeType":"YulFunctionCall","src":"10137:34:34"},"nativeSrc":"10137:34:34","nodeType":"YulExpressionStatement","src":"10137:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10191:9:34","nodeType":"YulIdentifier","src":"10191:9:34"},{"kind":"number","nativeSrc":"10202:2:34","nodeType":"YulLiteral","src":"10202:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10187:3:34","nodeType":"YulIdentifier","src":"10187:3:34"},"nativeSrc":"10187:18:34","nodeType":"YulFunctionCall","src":"10187:18:34"},{"kind":"number","nativeSrc":"10207:3:34","nodeType":"YulLiteral","src":"10207:3:34","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"10180:6:34","nodeType":"YulIdentifier","src":"10180:6:34"},"nativeSrc":"10180:31:34","nodeType":"YulFunctionCall","src":"10180:31:34"},"nativeSrc":"10180:31:34","nodeType":"YulExpressionStatement","src":"10180:31:34"},{"nativeSrc":"10220:54:34","nodeType":"YulAssignment","src":"10220:54:34","value":{"arguments":[{"name":"value3","nativeSrc":"10246:6:34","nodeType":"YulIdentifier","src":"10246:6:34"},{"arguments":[{"name":"headStart","nativeSrc":"10258:9:34","nodeType":"YulIdentifier","src":"10258:9:34"},{"kind":"number","nativeSrc":"10269:3:34","nodeType":"YulLiteral","src":"10269:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10254:3:34","nodeType":"YulIdentifier","src":"10254:3:34"},"nativeSrc":"10254:19:34","nodeType":"YulFunctionCall","src":"10254:19:34"}],"functionName":{"name":"abi_encode_string","nativeSrc":"10228:17:34","nodeType":"YulIdentifier","src":"10228:17:34"},"nativeSrc":"10228:46:34","nodeType":"YulFunctionCall","src":"10228:46:34"},"variableNames":[{"name":"tail","nativeSrc":"10220:4:34","nodeType":"YulIdentifier","src":"10220:4:34"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"9768:512:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9916:9:34","nodeType":"YulTypedName","src":"9916:9:34","type":""},{"name":"value3","nativeSrc":"9927:6:34","nodeType":"YulTypedName","src":"9927:6:34","type":""},{"name":"value2","nativeSrc":"9935:6:34","nodeType":"YulTypedName","src":"9935:6:34","type":""},{"name":"value1","nativeSrc":"9943:6:34","nodeType":"YulTypedName","src":"9943:6:34","type":""},{"name":"value0","nativeSrc":"9951:6:34","nodeType":"YulTypedName","src":"9951:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9962:4:34","nodeType":"YulTypedName","src":"9962:4:34","type":""}],"src":"9768:512:34"},{"body":{"nativeSrc":"10365:169:34","nodeType":"YulBlock","src":"10365:169:34","statements":[{"body":{"nativeSrc":"10411:16:34","nodeType":"YulBlock","src":"10411:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10420:1:34","nodeType":"YulLiteral","src":"10420:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"10423:1:34","nodeType":"YulLiteral","src":"10423:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10413:6:34","nodeType":"YulIdentifier","src":"10413:6:34"},"nativeSrc":"10413:12:34","nodeType":"YulFunctionCall","src":"10413:12:34"},"nativeSrc":"10413:12:34","nodeType":"YulExpressionStatement","src":"10413:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10386:7:34","nodeType":"YulIdentifier","src":"10386:7:34"},{"name":"headStart","nativeSrc":"10395:9:34","nodeType":"YulIdentifier","src":"10395:9:34"}],"functionName":{"name":"sub","nativeSrc":"10382:3:34","nodeType":"YulIdentifier","src":"10382:3:34"},"nativeSrc":"10382:23:34","nodeType":"YulFunctionCall","src":"10382:23:34"},{"kind":"number","nativeSrc":"10407:2:34","nodeType":"YulLiteral","src":"10407:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10378:3:34","nodeType":"YulIdentifier","src":"10378:3:34"},"nativeSrc":"10378:32:34","nodeType":"YulFunctionCall","src":"10378:32:34"},"nativeSrc":"10375:52:34","nodeType":"YulIf","src":"10375:52:34"},{"nativeSrc":"10436:29:34","nodeType":"YulVariableDeclaration","src":"10436:29:34","value":{"arguments":[{"name":"headStart","nativeSrc":"10455:9:34","nodeType":"YulIdentifier","src":"10455:9:34"}],"functionName":{"name":"mload","nativeSrc":"10449:5:34","nodeType":"YulIdentifier","src":"10449:5:34"},"nativeSrc":"10449:16:34","nodeType":"YulFunctionCall","src":"10449:16:34"},"variables":[{"name":"value","nativeSrc":"10440:5:34","nodeType":"YulTypedName","src":"10440:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10498:5:34","nodeType":"YulIdentifier","src":"10498:5:34"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"10474:23:34","nodeType":"YulIdentifier","src":"10474:23:34"},"nativeSrc":"10474:30:34","nodeType":"YulFunctionCall","src":"10474:30:34"},"nativeSrc":"10474:30:34","nodeType":"YulExpressionStatement","src":"10474:30:34"},{"nativeSrc":"10513:15:34","nodeType":"YulAssignment","src":"10513:15:34","value":{"name":"value","nativeSrc":"10523:5:34","nodeType":"YulIdentifier","src":"10523:5:34"},"variableNames":[{"name":"value0","nativeSrc":"10513:6:34","nodeType":"YulIdentifier","src":"10513:6:34"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"10285:249:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10331:9:34","nodeType":"YulTypedName","src":"10331:9:34","type":""},{"name":"dataEnd","nativeSrc":"10342:7:34","nodeType":"YulTypedName","src":"10342:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10354:6:34","nodeType":"YulTypedName","src":"10354:6:34","type":""}],"src":"10285:249:34"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\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        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := calldataload(add(headStart, 32))\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value1 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := calldataload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n        mstore(add(add(memPtr, _3), 32), 0)\n        value3 := memPtr\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n        mstore(add(headStart, 96), \"r\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n        mstore(add(headStart, 96), \"ken owner or approved for all\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n        mstore(add(headStart, 96), \"r or approved\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n        mstore(add(headStart, 96), \"lid owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n        mstore(add(headStart, 96), \"owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC721: approve to caller\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n        mstore(add(headStart, 96), \"ceiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n}","id":34,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100df5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101d0578063b88d4fde146101e3578063c87b56dd146101f6578063e985e9c51461020957600080fd5b80636352211e1461019457806370a08231146101a757806395d89b41146101c857600080fd5b8063095ea7b3116100bd578063095ea7b31461015957806323b872dd1461016e57806342842e0e1461018157600080fd5b806301ffc9a7146100e457806306fdde031461010c578063081812fc14610121575b600080fd5b6100f76100f2366004611358565b610252565b60405190151581526020015b60405180910390f35b610114610337565b60405161010391906113e3565b61013461012f3660046113f6565b6103c9565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610103565b61016c610167366004611438565b6103fd565b005b61016c61017c366004611462565b61058e565b61016c61018f366004611462565b61062f565b6101346101a23660046113f6565b61064a565b6101ba6101b536600461149e565b6106d6565b604051908152602001610103565b6101146107a4565b61016c6101de3660046114b9565b6107b3565b61016c6101f1366004611524565b6107c2565b6101146102043660046113f6565b61086a565b6100f761021736600461161e565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102e557507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061033157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606000805461034690611651565b80601f016020809104026020016040519081016040528092919081815260200182805461037290611651565b80156103bf5780601f10610394576101008083540402835291602001916103bf565b820191906000526020600020905b8154815290600101906020018083116103a257829003601f168201915b5050505050905090565b60006103d4826108de565b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006104088261064a565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036104ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff821614806104f357506104f38133610217565b61057f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016104c1565b610589838361096c565b505050565b6105983382610a0c565b610624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016104c1565b610589838383610acc565b610589838383604051806020016040528060008152506107c2565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016104c1565b600073ffffffffffffffffffffffffffffffffffffffff821661077b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e6572000000000000000000000000000000000000000000000060648201526084016104c1565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60606001805461034690611651565b6107be338383610dc7565b5050565b6107cc3383610a0c565b610858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f7665640000000000000000000000000000000000000060648201526084016104c1565b61086484848484610ef4565b50505050565b6060610875826108de565b600061088c60408051602081019091526000815290565b905060008151116108ac57604051806020016040528060008152506108d7565b806108b684610f97565b6040516020016108c79291906116a4565b6040516020818303038152906040525b9392505050565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff16610969576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e204944000000000000000060448201526064016104c1565b50565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906109c68261064a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610a188361064a565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610a86575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b80610ac457508373ffffffffffffffffffffffffffffffffffffffff16610aac846103c9565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610aec8261064a565b73ffffffffffffffffffffffffffffffffffffffff1614610b8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016104c1565b73ffffffffffffffffffffffffffffffffffffffff8216610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104c1565b8273ffffffffffffffffffffffffffffffffffffffff16610c518261064a565b73ffffffffffffffffffffffffffffffffffffffff1614610cf4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e657200000000000000000000000000000000000000000000000000000060648201526084016104c1565b600081815260046020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526003855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016104c1565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610eff848484610acc565b610f0b84848484611055565b610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016104c1565b60606000610fa483611248565b600101905060008167ffffffffffffffff811115610fc457610fc46114f5565b6040519080825280601f01601f191660200182016040528015610fee576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610ff857509392505050565b600073ffffffffffffffffffffffffffffffffffffffff84163b1561123d576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906110cc9033908990889088906004016116d3565b6020604051808303816000875af1925050508015611125575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526111229181019061171c565b60015b6111f2573d808015611153576040519150601f19603f3d011682016040523d82523d6000602084013e611158565b606091505b5080516000036111ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e746572000000000000000000000000000060648201526084016104c1565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610ac4565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611291577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef810000000083106112bd576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106112db57662386f26fc10000830492506010015b6305f5e10083106112f3576305f5e100830492506008015b612710831061130757612710830492506004015b60648310611319576064830492506002015b600a83106103315760010192915050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461096957600080fd5b60006020828403121561136a57600080fd5b81356108d78161132a565b60005b83811015611390578181015183820152602001611378565b50506000910152565b600081518084526113b1816020860160208601611375565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006108d76020830184611399565b60006020828403121561140857600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461143357600080fd5b919050565b6000806040838503121561144b57600080fd5b6114548361140f565b946020939093013593505050565b60008060006060848603121561147757600080fd5b6114808461140f565b925061148e6020850161140f565b9150604084013590509250925092565b6000602082840312156114b057600080fd5b6108d78261140f565b600080604083850312156114cc57600080fd5b6114d58361140f565b9150602083013580151581146114ea57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561153a57600080fd5b6115438561140f565b93506115516020860161140f565b925060408501359150606085013567ffffffffffffffff8082111561157557600080fd5b818701915087601f83011261158957600080fd5b81358181111561159b5761159b6114f5565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156115e1576115e16114f5565b816040528281528a60208487010111156115fa57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561163157600080fd5b61163a8361140f565b91506116486020840161140f565b90509250929050565b600181811c9082168061166557607f821691505b60208210810361169e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b600083516116b6818460208801611375565b8351908301906116ca818360208801611375565b01949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526117126080830184611399565b9695505050505050565b60006020828403121561172e57600080fd5b81516108d78161132a56fea264697066735822122047779c09e6a4ad00acf1e739a208e212ab40295a4e994e9cba5d65ce116759e364736f6c63430008170033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1D0 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x209 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x194 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x95EA7B3 GT PUSH2 0xBD JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x16E JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x181 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xE4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x121 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0xF2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1358 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x114 PUSH2 0x337 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0x13E3 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0x13F6 JUMP JUMPDEST PUSH2 0x3C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0x1438 JUMP JUMPDEST PUSH2 0x3FD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16C PUSH2 0x17C CALLDATASIZE PUSH1 0x4 PUSH2 0x1462 JUMP JUMPDEST PUSH2 0x58E JUMP JUMPDEST PUSH2 0x16C PUSH2 0x18F CALLDATASIZE PUSH1 0x4 PUSH2 0x1462 JUMP JUMPDEST PUSH2 0x62F JUMP JUMPDEST PUSH2 0x134 PUSH2 0x1A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x13F6 JUMP JUMPDEST PUSH2 0x64A JUMP JUMPDEST PUSH2 0x1BA PUSH2 0x1B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x149E JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x114 PUSH2 0x7A4 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x1DE CALLDATASIZE PUSH1 0x4 PUSH2 0x14B9 JUMP JUMPDEST PUSH2 0x7B3 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x1F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1524 JUMP JUMPDEST PUSH2 0x7C2 JUMP JUMPDEST PUSH2 0x114 PUSH2 0x204 CALLDATASIZE PUSH1 0x4 PUSH2 0x13F6 JUMP JUMPDEST PUSH2 0x86A JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x217 CALLDATASIZE PUSH1 0x4 PUSH2 0x161E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x2E5 JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0x331 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x346 SWAP1 PUSH2 0x1651 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 0x372 SWAP1 PUSH2 0x1651 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3BF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x394 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3BF 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 0x3A2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D4 DUP3 PUSH2 0x8DE JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x408 DUP3 PUSH2 0x64A JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x4CA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND EQ DUP1 PUSH2 0x4F3 JUMPI POP PUSH2 0x4F3 DUP2 CALLER PUSH2 0x217 JUMP JUMPDEST PUSH2 0x57F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH2 0x589 DUP4 DUP4 PUSH2 0x96C JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x598 CALLER DUP3 PUSH2 0xA0C JUMP JUMPDEST PUSH2 0x624 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH2 0x589 DUP4 DUP4 DUP4 PUSH2 0xACC JUMP JUMPDEST PUSH2 0x589 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 PUSH2 0x331 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x77B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x346 SWAP1 PUSH2 0x1651 JUMP JUMPDEST PUSH2 0x7BE CALLER DUP4 DUP4 PUSH2 0xDC7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x7CC CALLER DUP4 PUSH2 0xA0C JUMP JUMPDEST PUSH2 0x858 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH2 0x864 DUP5 DUP5 DUP5 DUP5 PUSH2 0xEF4 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x875 DUP3 PUSH2 0x8DE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x88C PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x8AC JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x8D7 JUMP JUMPDEST DUP1 PUSH2 0x8B6 DUP5 PUSH2 0xF97 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8C7 SWAP3 SWAP2 SWAP1 PUSH2 0x16A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x969 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x9C6 DUP3 PUSH2 0x64A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA18 DUP4 PUSH2 0x64A JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xA86 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0xAC4 JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xAAC DUP5 PUSH2 0x3C9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xAEC DUP3 PUSH2 0x64A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB8F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xC31 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC51 DUP3 PUSH2 0x64A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCF4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x3 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0x2 SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE5C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xEFF DUP5 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST PUSH2 0xF0B DUP5 DUP5 DUP5 DUP5 PUSH2 0x1055 JUMP JUMPDEST PUSH2 0x864 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xFA4 DUP4 PUSH2 0x1248 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFC4 JUMPI PUSH2 0xFC4 PUSH2 0x14F5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFEE JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0xFF8 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE ISZERO PUSH2 0x123D JUMPI PUSH1 0x40 MLOAD PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x10CC SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x16D3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1125 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1122 SWAP2 DUP2 ADD SWAP1 PUSH2 0x171C JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11F2 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1153 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1158 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x11EA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4C1 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 EQ SWAP1 POP PUSH2 0xAC4 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1291 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x12BD JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x12DB JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x12F3 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1307 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1319 JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x331 JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x969 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x136A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x8D7 DUP2 PUSH2 0x132A JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1390 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1378 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x13B1 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1375 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x8D7 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1399 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1433 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x144B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1454 DUP4 PUSH2 0x140F JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1477 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1480 DUP5 PUSH2 0x140F JUMP JUMPDEST SWAP3 POP PUSH2 0x148E PUSH1 0x20 DUP6 ADD PUSH2 0x140F JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8D7 DUP3 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14D5 DUP4 PUSH2 0x140F JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x14EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x153A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1543 DUP6 PUSH2 0x140F JUMP JUMPDEST SWAP4 POP PUSH2 0x1551 PUSH1 0x20 DUP7 ADD PUSH2 0x140F JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1589 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x159B JUMPI PUSH2 0x159B PUSH2 0x14F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x15E1 JUMPI PUSH2 0x15E1 PUSH2 0x14F5 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x15FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1631 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x163A DUP4 PUSH2 0x140F JUMP JUMPDEST SWAP2 POP PUSH2 0x1648 PUSH1 0x20 DUP5 ADD PUSH2 0x140F JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x1665 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x169E JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x16B6 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1375 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x16CA DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1375 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1712 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x1399 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x172E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x8D7 DUP2 PUSH2 0x132A JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE PUSH24 0x9C09E6A4AD00ACF1E739A208E212AB40295A4E994E9CBA5D PUSH6 0xCE116759E364 PUSH20 0x6F6C634300081700330000000000000000000000 ","sourceMap":"628:16377:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300;;;;;;:::i;:::-;;:::i;:::-;;;611:14:34;;604:22;586:41;;574:2;559:18;1570:300:9;;;;;;;;2471:98;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;1814:42:34;1802:55;;;1784:74;;1772:2;1757:18;3935:167:9;1638:226:34;3468:406:9;;;;;;:::i;:::-;;:::i;:::-;;4612:296;;;;;;:::i;:::-;;:::i;4974:149::-;;;;;;:::i;:::-;;:::i;2190:219::-;;;;;;:::i;:::-;;:::i;1929:204::-;;;;;;:::i;:::-;;:::i;:::-;;;2999:25:34;;;2987:2;2972:18;1929:204:9;2853:177:34;2633:102:9;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;5189:276::-;;;;;;:::i;:::-;;:::i;2801:::-;;;;;;:::i;:::-;;:::i;4388:162::-;;;;;;:::i;:::-;4508:25;;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;1570:300;1672:4;1707:40;;;1722:25;1707:40;;:104;;-1:-1:-1;1763:48:9;;;1778:33;1763:48;1707:104;:156;;;-1:-1:-1;952:25:23;937:40;;;;1827:36:9;1688:175;1570:300;-1:-1:-1;;1570:300:9:o;2471:98::-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:9;;;;:15;:24;;;;;;;;;3935:167::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;3605:11;;:2;:11;;;3597:57;;;;;;;5687:2:34;3597:57:9;;;5669:21:34;5726:2;5706:18;;;5699:30;5765:34;5745:18;;;5738:62;5836:3;5816:18;;;5809:31;5857:19;;3597:57:9;;;;;;;;;734:10:15;3686:21:9;;;;;:62;;-1:-1:-1;3711:37:9;3728:5;734:10:15;4388:162:9;:::i;3711:37::-;3665:170;;;;;;;6089:2:34;3665:170:9;;;6071:21:34;6128:2;6108:18;;;6101:30;6167:34;6147:18;;;6140:62;6238:31;6218:18;;;6211:59;6287:19;;3665:170:9;5887:425:34;3665:170:9;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:296::-;4771:41;734:10:15;4804:7:9;4771:18;:41::i;:::-;4763:99;;;;;;;6519:2:34;4763:99:9;;;6501:21:34;6558:2;6538:18;;;6531:30;6597:34;6577:18;;;6570:62;6668:15;6648:18;;;6641:43;6701:19;;4763:99:9;6317:409:34;4763:99:9;4873:28;4883:4;4889:2;4893:7;4873:9;:28::i;4974:149::-;5077:39;5094:4;5100:2;5104:7;5077:39;;;;;;;;;;;;:16;:39::i;2190:219::-;2262:7;6794:16;;;:7;:16;;;;;;;;;2324:56;;;;;;;6933:2:34;2324:56:9;;;6915:21:34;6972:2;6952:18;;;6945:30;7011:26;6991:18;;;6984:54;7055:18;;2324:56:9;6731:348:34;1929:204:9;2001:7;2028:19;;;2020:73;;;;;;;7286:2:34;2020:73:9;;;7268:21:34;7325:2;7305:18;;;7298:30;7364:34;7344:18;;;7337:62;7435:11;7415:18;;;7408:39;7464:19;;2020:73:9;7084:405:34;2020:73:9;-1:-1:-1;2110:16:9;;;;;;:9;:16;;;;;;;1929:204::o;2633:102::-;2689:13;2721:7;2714:14;;;;;:::i;4169:153::-;4263:52;734:10:15;4296:8:9;4306;4263:18;:52::i;:::-;4169:153;;:::o;5189:276::-;5319:41;734:10:15;5352:7:9;5319:18;:41::i;:::-;5311:99;;;;;;;6519:2:34;5311:99:9;;;6501:21:34;6558:2;6538:18;;;6531:30;6597:34;6577:18;;;6570:62;6668:15;6648:18;;;6641:43;6701:19;;5311:99:9;6317:409:34;5311:99:9;5420:38;5434:4;5440:2;5444:7;5453:4;5420:13;:38::i;:::-;5189:276;;;;:::o;2801:::-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;3395:9;;;;;;;;;-1:-1:-1;3395:9:9;;;3319:92;2957:10;2933:34;;3008:1;2990:7;2984:21;:25;:86;;;;;;;;;;;;;;;;;3036:7;3045:18;:7;:16;:18::i;:::-;3019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2984:86;2977:93;2801:276;-1:-1:-1;;;2801:276:9:o;13240:133::-;7185:4;6794:16;;;:7;:16;;;;;;;;13313:53;;;;;;;6933:2:34;13313:53:9;;;6915:21:34;6972:2;6952:18;;;6945:30;7011:26;6991:18;;;6984:54;7055:18;;13313:53:9;6731:348:34;13313:53:9;13240:133;:::o;12572:171::-;12646:24;;;;:15;:24;;;;;:29;;;;;;;;;;;;;:24;;12699:23;12646:24;12699:14;:23::i;:::-;12690:46;;;;;;;;;;;;12572:171;;:::o;7404:261::-;7497:4;7513:13;7529:23;7544:7;7529:14;:23::i;:::-;7513:39;;7581:5;7570:16;;:7;:16;;;:52;;;-1:-1:-1;4508:25:9;;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7590:32;7570:87;;;;7650:7;7626:31;;:20;7638:7;7626:11;:20::i;:::-;:31;;;7570:87;7562:96;7404:261;-1:-1:-1;;;;7404:261:9:o;11257:1203::-;11381:4;11354:31;;:23;11369:7;11354:14;:23::i;:::-;:31;;;11346:81;;;;;;;8197:2:34;11346:81:9;;;8179:21:34;8236:2;8216:18;;;8209:30;8275:34;8255:18;;;8248:62;8346:7;8326:18;;;8319:35;8371:19;;11346:81:9;7995:401:34;11346:81:9;11445:16;;;11437:65;;;;;;;8603:2:34;11437:65:9;;;8585:21:34;8642:2;8622:18;;;8615:30;8681:34;8661:18;;;8654:62;8752:6;8732:18;;;8725:34;8776:19;;11437:65:9;8401:400:34;11437:65:9;11682:4;11655:31;;:23;11670:7;11655:14;:23::i;:::-;:31;;;11647:81;;;;;;;8197:2:34;11647:81:9;;;8179:21:34;8236:2;8216:18;;;8209:30;8275:34;8255:18;;;8248:62;8346:7;8326:18;;;8319:35;8371:19;;11647:81:9;7995:401:34;11647:81:9;11797:24;;;;:15;:24;;;;;;;;11790:31;;;;;;;;;;12265:15;;;;;;:9;:15;;;;;:20;;;;;;12299:13;;;;;;;;;:18;;11790:31;12299:18;;;12337:16;;;:7;:16;;;;;;:21;;;;;;;;;;12374:27;;11813:7;;12374:27;;;3538:336;3468:406;;:::o;12879:277::-;12999:8;12990:17;;:5;:17;;;12982:55;;;;;;;9008:2:34;12982:55:9;;;8990:21:34;9047:2;9027:18;;;9020:30;9086:27;9066:18;;;9059:55;9131:18;;12982:55:9;8806:349:34;12982:55:9;13047:25;;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;;;;;;;;;;;;13108:41;;586::34;;;13108::9;;559:18:34;13108:41:9;;;;;;;12879:277;;;:::o;6326:267::-;6438:28;6448:4;6454:2;6458:7;6438:9;:28::i;:::-;6484:47;6507:4;6513:2;6517:7;6526:4;6484:22;:47::i;:::-;6476:110;;;;;;;9362:2:34;6476:110:9;;;9344:21:34;9401:2;9381:18;;;9374:30;9440:34;9420:18;;;9413:62;9511:20;9491:18;;;9484:48;9549:19;;6476:110:9;9160:414:34;447:696:19;503:13;552:14;569:17;580:5;569:10;:17::i;:::-;589:1;569:21;552:38;;604:20;638:6;627:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;627:18:19;-1:-1:-1;604:41:19;-1:-1:-1;765:28:19;;;781:2;765:28;820:280;851:5;;990:8;985:2;974:14;;969:30;851:5;956:44;1044:2;1035:11;;;-1:-1:-1;1064:21:19;820:280;1064:21;-1:-1:-1;1120:6:19;447:696;-1:-1:-1;;;447:696:19:o;13925:831:9:-;14074:4;14094:13;;;1702:19:14;:23;14090:660:9;;14129:71;;;;;:36;;;;;;:71;;734:10:15;;14180:4:9;;14186:7;;14195:4;;14129:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14129:71:9;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14125:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14367:6;:13;14384:1;14367:18;14363:321;;14409:60;;;;;9362:2:34;14409:60:9;;;9344:21:34;9401:2;9381:18;;;9374:30;9440:34;9420:18;;;9413:62;9511:20;9491:18;;;9484:48;9549:19;;14409:60:9;9160:414:34;14363:321:9;14636:6;14630:13;14621:6;14617:2;14613:15;14606:38;14125:573;14250:51;;14260:41;14250:51;;-1:-1:-1;14243:58:9;;14090:660;-1:-1:-1;14735:4:9;13925:831;;;;;;:::o;10139:916:25:-;10192:7;;10276:8;10267:17;;10263:103;;10313:8;10304:17;;;-1:-1:-1;10349:2:25;10339:12;10263:103;10392:8;10383:5;:17;10379:103;;10429:8;10420:17;;;-1:-1:-1;10465:2:25;10455:12;10379:103;10508:8;10499:5;:17;10495:103;;10545:8;10536:17;;;-1:-1:-1;10581:2:25;10571:12;10495:103;10624:7;10615:5;:16;10611:100;;10660:7;10651:16;;;-1:-1:-1;10695:1:25;10685:11;10611:100;10737:7;10728:5;:16;10724:100;;10773:7;10764:16;;;-1:-1:-1;10808:1:25;10798:11;10724:100;10850:7;10841:5;:16;10837:100;;10886:7;10877:16;;;-1:-1:-1;10921:1:25;10911:11;10837:100;10963:7;10954:5;:16;10950:66;;11000:1;10990:11;11042:6;10139:916;-1:-1:-1;;10139:916:25:o;14:177:34:-;99:66;92:5;88:78;81:5;78:89;68:117;;181:1;178;171:12;196:245;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:30;405:5;381:30;:::i;638:250::-;723:1;733:113;747:6;744:1;741:13;733:113;;;823:11;;;817:18;804:11;;;797:39;769:2;762:10;733:113;;;-1:-1:-1;;880:1:34;862:16;;855:27;638:250::o;893:330::-;935:3;973:5;967:12;1000:6;995:3;988:19;1016:76;1085:6;1078:4;1073:3;1069:14;1062:4;1055:5;1051:16;1016:76;:::i;:::-;1137:2;1125:15;1142:66;1121:88;1112:98;;;;1212:4;1108:109;;893:330;-1:-1:-1;;893:330:34:o;1228:220::-;1377:2;1366:9;1359:21;1340:4;1397:45;1438:2;1427:9;1423:18;1415:6;1397:45;:::i;1453:180::-;1512:6;1565:2;1553:9;1544:7;1540:23;1536:32;1533:52;;;1581:1;1578;1571:12;1533:52;-1:-1:-1;1604:23:34;;1453:180;-1:-1:-1;1453:180:34:o;1869:196::-;1937:20;;1997:42;1986:54;;1976:65;;1966:93;;2055:1;2052;2045:12;1966:93;1869:196;;;:::o;2070:254::-;2138:6;2146;2199:2;2187:9;2178:7;2174:23;2170:32;2167:52;;;2215:1;2212;2205:12;2167:52;2238:29;2257:9;2238:29;:::i;:::-;2228:39;2314:2;2299:18;;;;2286:32;;-1:-1:-1;;;2070:254:34:o;2329:328::-;2406:6;2414;2422;2475:2;2463:9;2454:7;2450:23;2446:32;2443:52;;;2491:1;2488;2481:12;2443:52;2514:29;2533:9;2514:29;:::i;:::-;2504:39;;2562:38;2596:2;2585:9;2581:18;2562:38;:::i;:::-;2552:48;;2647:2;2636:9;2632:18;2619:32;2609:42;;2329:328;;;;;:::o;2662:186::-;2721:6;2774:2;2762:9;2753:7;2749:23;2745:32;2742:52;;;2790:1;2787;2780:12;2742:52;2813:29;2832:9;2813:29;:::i;3035:347::-;3100:6;3108;3161:2;3149:9;3140:7;3136:23;3132:32;3129:52;;;3177:1;3174;3167:12;3129:52;3200:29;3219:9;3200:29;:::i;:::-;3190:39;;3279:2;3268:9;3264:18;3251:32;3326:5;3319:13;3312:21;3305:5;3302:32;3292:60;;3348:1;3345;3338:12;3292:60;3371:5;3361:15;;;3035:347;;;;;:::o;3387:184::-;3439:77;3436:1;3429:88;3536:4;3533:1;3526:15;3560:4;3557:1;3550:15;3576:1197;3671:6;3679;3687;3695;3748:3;3736:9;3727:7;3723:23;3719:33;3716:53;;;3765:1;3762;3755:12;3716:53;3788:29;3807:9;3788:29;:::i;:::-;3778:39;;3836:38;3870:2;3859:9;3855:18;3836:38;:::i;:::-;3826:48;;3921:2;3910:9;3906:18;3893:32;3883:42;;3976:2;3965:9;3961:18;3948:32;3999:18;4040:2;4032:6;4029:14;4026:34;;;4056:1;4053;4046:12;4026:34;4094:6;4083:9;4079:22;4069:32;;4139:7;4132:4;4128:2;4124:13;4120:27;4110:55;;4161:1;4158;4151:12;4110:55;4197:2;4184:16;4219:2;4215;4212:10;4209:36;;;4225:18;;:::i;:::-;4359:2;4353:9;4421:4;4413:13;;4264:66;4409:22;;;4433:2;4405:31;4401:40;4389:53;;;4457:18;;;4477:22;;;4454:46;4451:72;;;4503:18;;:::i;:::-;4543:10;4539:2;4532:22;4578:2;4570:6;4563:18;4618:7;4613:2;4608;4604;4600:11;4596:20;4593:33;4590:53;;;4639:1;4636;4629:12;4590:53;4695:2;4690;4686;4682:11;4677:2;4669:6;4665:15;4652:46;4740:1;4735:2;4730;4722:6;4718:15;4714:24;4707:35;4761:6;4751:16;;;;;;;3576:1197;;;;;;;:::o;4778:260::-;4846:6;4854;4907:2;4895:9;4886:7;4882:23;4878:32;4875:52;;;4923:1;4920;4913:12;4875:52;4946:29;4965:9;4946:29;:::i;:::-;4936:39;;4994:38;5028:2;5017:9;5013:18;4994:38;:::i;:::-;4984:48;;4778:260;;;;;:::o;5043:437::-;5122:1;5118:12;;;;5165;;;5186:61;;5240:4;5232:6;5228:17;5218:27;;5186:61;5293:2;5285:6;5282:14;5262:18;5259:38;5256:218;;5330:77;5327:1;5320:88;5431:4;5428:1;5421:15;5459:4;5456:1;5449:15;5256:218;;5043:437;;;:::o;7494:496::-;7673:3;7711:6;7705:13;7727:66;7786:6;7781:3;7774:4;7766:6;7762:17;7727:66;:::i;:::-;7856:13;;7815:16;;;;7878:70;7856:13;7815:16;7925:4;7913:17;;7878:70;:::i;:::-;7964:20;;7494:496;-1:-1:-1;;;;7494:496:34:o;9768:512::-;9962:4;9991:42;10072:2;10064:6;10060:15;10049:9;10042:34;10124:2;10116:6;10112:15;10107:2;10096:9;10092:18;10085:43;;10164:6;10159:2;10148:9;10144:18;10137:34;10207:3;10202:2;10191:9;10187:18;10180:31;10228:46;10269:3;10258:9;10254:19;10246:6;10228:46;:::i;:::-;10220:54;9768:512;-1:-1:-1;;;;;;9768:512:34:o;10285:249::-;10354:6;10407:2;10395:9;10386:7;10382:23;10378:32;10375:52;;;10423:1;10420;10413:12;10375:52;10455:9;10449:16;10474:30;10498:5;10474:30;:::i"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x2c309e7df9e05e6ce15bedfe74f3c61b467fc37e0fae9eab496acf5ea0bbd7ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7063b5c98711a98018ba4635ac74cee1c1cfa2ea01099498e062699ed9530005\",\"dweb:/ipfs/QmeJ8rGXkcv7RrqLdAW8PCXPAykxVsddfYY6g5NaTwmRFE\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"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.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"IERC721Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"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.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must understand this adds an external call which potentially creates a reentrancy vulnerability. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/common/ERC2981.sol":{"ERC2981":{"abi":[{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"royaltyInfo(uint256,uint256)":"2a55205a","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"salePrice\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information. Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first. Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the fee is specified in basis points by default. IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to voluntarily pay royalties together with sales, but note that this standard is not yet widely supported. _Available since v4.5._\",\"kind\":\"dev\",\"methods\":{\"royaltyInfo(uint256,uint256)\":{\"details\":\"Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/common/ERC2981.sol\":\"ERC2981\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC2981.sol\":{\"keccak256\":\"0x3976825a61df20457730b79ad0ac9c8908e3c7978ed9bf090c67137c91256b5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f3fe369b6d0e101844b425f1d08e35bf512962d0590b1f80decb8130c9a6890\",\"dweb:/ipfs/QmXCan6wX4qwJkdR1VvsYLeq8JTB2YxRHLucpuXpsKAvzQ\"]},\"@openzeppelin/contracts/token/common/ERC2981.sol\":{\"keccak256\":\"0x990a4133f88b07f92724903f42bb25cdaeca0cf255fb48df26568c40e7c919c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d37620d637eabaa4f4a5deca2d81ee9af18d3c7818acf9091cf15658932a1233\",\"dweb:/ipfs/QmVc3jtXfYFoFyeUwvSo55ZbRt6sVjYfJWafJBPZoAsFvF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209e7afc31cef2599a33cffa681fe4c845ea5db42b4499123bdb506d102a2811df64736f6c63430008170033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 PUSH27 0xFC31CEF2599A33CFFA681FE4C845EA5DB42B4499123BDB506D102A 0x28 GT 0xDF PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"194:9169:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:9169:14;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209e7afc31cef2599a33cffa681fe4c845ea5db42b4499123bdb506d102a2811df64736f6c63430008170033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 PUSH27 0xFC31CEF2599A33CFFA681FE4C845EA5DB42B4499123BDB506D102A 0x28 GT 0xDF PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"194:9169:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"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.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Counters.sol":{"Counters":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209513161c7c9f315217522ee60f76c5a5bfe0cb17a3a5f7714ce1483c303f278a64736f6c63430008170033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 SWAP6 SGT AND SHR PUSH29 0x9F315217522EE60F76C5A5BFE0CB17A3A5F7714CE1483C303F278A6473 PUSH16 0x6C634300081700330000000000000000 ","sourceMap":"424:971:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;424:971:16;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209513161c7c9f315217522ee60f76c5a5bfe0cb17a3a5f7714ce1483c303f278a64736f6c63430008170033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP6 SGT AND SHR PUSH29 0x9F315217522EE60F76C5A5BFE0CB17A3A5F7714CE1483C303F278A6473 PUSH16 0x6C634300081700330000000000000000 ","sourceMap":"424:971:16:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/ShortStrings.sol":{"ShortStrings":{"abi":[{"inputs":[],"name":"InvalidShortString","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1b209da7e3336460096e30b17536ce7dd2c6e98c473ca82b4e4331c32137e5364736f6c63430008170033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 CALL 0xB2 MULMOD 0xDA PUSH31 0x3336460096E30B17536CE7DD2C6E98C473CA82B4E4331C32137E5364736F6C PUSH4 0x43000817 STOP CALLER ","sourceMap":"1235:3050:17:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1235:3050:17;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f1b209da7e3336460096e30b17536ce7dd2c6e98c473ca82b4e4331c32137e5364736f6c63430008170033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALL 0xB2 MULMOD 0xDA PUSH31 0x3336460096E30B17536CE7DD2C6E98C473CA82B4E4331C32137E5364736F6C PUSH4 0x43000817 STOP CALLER ","sourceMap":"1235:3050:17:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"This library provides functions to convert short memory strings into a `ShortString` type that can be used as an immutable variable. Strings of arbitrary length can be optimized using this library if they are short enough (up to 31 bytes) by packing them with their length (1 byte) in a single EVM word (32 bytes). Additionally, a fallback mechanism can be used for every other case. Usage example: ```solidity contract Named {     using ShortStrings for *;     ShortString private immutable _name;     string private _nameFallback;     constructor(string memory contractName) {         _name = contractName.toShortStringWithFallback(_nameFallback);     }     function name() external view returns (string memory) {         return _name.toStringWithFallback(_nameFallback);     } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/ShortStrings.sol\":\"ShortStrings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d532a7048675d515f6733c24b989a2a735e230de0e5a73c1713b1ffa850c868564736f6c63430008170033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0xD5 ORIGIN 0xA7 DIV DUP7 PUSH22 0xD515F6733C24B989A2A735E230DE0E5A73C1713B1FFA DUP6 0xC DUP7 DUP6 PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"1420:2685:18:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1420:2685:18;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d532a7048675d515f6733c24b989a2a735e230de0e5a73c1713b1ffa850c868564736f6c63430008170033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD5 ORIGIN 0xA7 DIV DUP7 PUSH22 0xD515F6733C24B989A2A735E230DE0E5A73C1713B1FFA DUP6 0xC DUP7 DUP6 PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"1420:2685:18:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 {     bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;     function _getImplementation() internal view returns (address) {         return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;     }     function _setImplementation(address newImplementation) internal {         require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\");         StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;     } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._ _Available since v4.9 for `string`, `bytes`._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a6b2dd16e335805ca47c1a129954821a85e89de3d2c71d9f32d484722ac95a5264736f6c63430008170033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0xA6 0xB2 0xDD AND 0xE3 CALLDATALOAD DUP1 0x5C LOG4 PUSH29 0x1A129954821A85E89DE3D2C71D9F32D484722AC95A5264736F6C634300 ADDMOD OR STOP CALLER ","sourceMap":"220:2559:19:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;220:2559:19;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a6b2dd16e335805ca47c1a129954821a85e89de3d2c71d9f32d484722ac95a5264736f6c63430008170033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 0xB2 0xDD AND 0xE3 CALLDATALOAD DUP1 0x5C LOG4 PUSH29 0x1A129954821A85E89DE3D2C71D9F32D484722AC95A5264736F6C634300 ADDMOD OR STOP CALLER ","sourceMap":"220:2559:19:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ECDSA":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122025e742f06015b348ec886eed13bf62c6432b04c721362a186d44bcb8ad08b1ff64736f6c63430008170033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0x25 0xE7 TIMESTAMP CREATE PUSH1 0x15 0xB3 BASEFEE 0xEC DUP9 PUSH15 0xED13BF62C6432B04C721362A186D44 0xBC 0xB8 0xAD ADDMOD 0xB1 SELFDESTRUCT PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"369:8761:20:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;369:8761:20;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122025e742f06015b348ec886eed13bf62c6432b04c721362a186d44bcb8ad08b1ff64736f6c63430008170033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 0xE7 TIMESTAMP CREATE PUSH1 0x15 0xB3 BASEFEE 0xEC DUP9 PUSH15 0xED13BF62C6432B04C721362A186D44 0xBC 0xB8 0xAD ADDMOD 0xB1 SELFDESTRUCT PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"369:8761:20:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"EIP712":{"abi":[{"inputs":[],"name":"InvalidShortString","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"eip712Domain()":"84b0196e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable state-variable-assignment\",\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in their contracts using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain separator of the implementation contract. This will cause the `_domainSeparatorV4` function to always rebuild the separator from the immutable values, which is cheaper than accessing a cached version in cold storage. _Available since v3.4._\",\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the domain separator and parameter caches. The meaning of `name` and `version` is specified in https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]: - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol. - `version`: the current major version of the signing domain. NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart contract upgrade].\"},\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":\"EIP712\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]},\"@openzeppelin/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a\",\"dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol":{"SignatureChecker":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122078a6291c4db03fdfc9ba3b9d963a6163f45c6670936baf46d04447b6d73e3db464736f6c63430008170033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 PUSH25 0xA6291C4DB03FDFC9BA3B9D963A6163F45C6670936BAF46D044 SELFBALANCE 0xB6 0xD7 RETURNDATACOPY RETURNDATASIZE 0xB4 PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"506:1755:22:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;506:1755:22;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122078a6291c4db03fdfc9ba3b9d963a6163f45c6670936baf46d04447b6d73e3db464736f6c63430008170033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH25 0xA6291C4DB03FDFC9BA3B9D963A6163F45C6670936BAF46D044 SELFBALANCE 0xB6 0xD7 RETURNDATACOPY RETURNDATASIZE 0xB4 PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"506:1755:22:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like Argent and Gnosis Safe. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol\":\"SignatureChecker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x3af3ca86df39aac39a0514c84459d691434a108d2151c8ce9d69f32e315cab80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77d1f1cf302cd5e1dfbbb4ce3b281b28e8c52942d4319fce43df2e1b6f02a52d\",\"dweb:/ipfs/QmT6ZXStmK3Knhh9BokeVHQ9HXTBZNgL3Eb1ar1cYg1hWy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"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.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"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}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"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.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205d9030cd85ef03ffc0b1d01e0402283ee728ad604053e4ed5fdbb85f1ef16c7e64736f6c63430008170033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0x5D SWAP1 ADDRESS 0xCD DUP6 0xEF SUB SELFDESTRUCT 0xC0 0xB1 0xD0 0x1E DIV MUL 0x28 RETURNDATACOPY 0xE7 0x28 0xAD PUSH1 0x40 MSTORE8 0xE4 0xED PUSH0 0xDB 0xB8 PUSH0 0x1E CALL PUSH13 0x7E64736F6C6343000817003300 ","sourceMap":"202:12582:25:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12582:25;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205d9030cd85ef03ffc0b1d01e0402283ee728ad604053e4ed5fdbb85f1ef16c7e64736f6c63430008170033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x5D SWAP1 ADDRESS 0xCD DUP6 0xEF SUB SELFDESTRUCT 0xC0 0xB1 0xD0 0x1E DIV MUL 0x28 RETURNDATACOPY 0xE7 0x28 0xAD PUSH1 0x40 MSTORE8 0xE4 0xED PUSH0 0xDB 0xB8 PUSH0 0x1E CALL PUSH13 0x7E64736F6C6343000817003300 ","sourceMap":"202:12582:25:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f47687bed9b1b855b505bb3476275f3b1747e0a5a775c09b41e701418fc0474164736f6c63430008170033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 DELEGATECALL PUSH23 0x87BED9B1B855B505BB3476275F3B1747E0A5A775C09B41 0xE7 ADD COINBASE DUP16 0xC0 SELFBALANCE COINBASE PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"215:1047:26:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;215:1047:26;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f47687bed9b1b855b505bb3476275f3b1747e0a5a775c09b41e701418fc0474164736f6c63430008170033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DELEGATECALL PUSH23 0x87BED9B1B855B505BB3476275F3B1747E0A5A775C09B41 0xE7 ADD COINBASE DUP16 0xC0 SELFBALANCE COINBASE PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"215:1047:26:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]}},\"version\":1}"}},"contracts/Swap.sol":{"Swap":{"abi":[{"inputs":[{"internalType":"contract IAdapter[]","name":"_adapters","type":"address[]"},{"internalType":"bytes4","name":"_requiredSenderKind","type":"bytes4"},{"internalType":"uint256","name":"_protocolFee","type":"uint256"},{"internalType":"address","name":"_protocolFeeWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AdaptersInvalid","type":"error"},{"inputs":[],"name":"AffiliateAmountInvalid","type":"error"},{"inputs":[],"name":"FeeInvalid","type":"error"},{"inputs":[],"name":"FeeWalletInvalid","type":"error"},{"inputs":[],"name":"InvalidShortString","type":"error"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"NonceAlreadyUsed","type":"error"},{"inputs":[],"name":"NonceTooLow","type":"error"},{"inputs":[],"name":"OrderExpired","type":"error"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"RoyaltyExceedsMax","type":"error"},{"inputs":[],"name":"SenderInvalid","type":"error"},{"inputs":[],"name":"SenderTokenInvalid","type":"error"},{"inputs":[],"name":"SignatoryInvalid","type":"error"},{"inputs":[],"name":"SignatoryUnauthorized","type":"error"},{"inputs":[],"name":"SignatureInvalid","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"},{"inputs":[],"name":"TokenKindUnknown","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":true,"internalType":"address","name":"signerWallet","type":"address"}],"name":"Authorize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":true,"internalType":"address","name":"signerWallet","type":"address"}],"name":"Cancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":true,"internalType":"address","name":"signerWallet","type":"address"}],"name":"CancelUpTo","type":"event"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":true,"internalType":"address","name":"signerWallet","type":"address"}],"name":"Revoke","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"protocolFee","type":"uint256"}],"name":"SetProtocolFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"feeWallet","type":"address"}],"name":"SetProtocolFeeWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":true,"internalType":"address","name":"signerWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"signerAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"signerId","type":"uint256"},{"indexed":false,"internalType":"address","name":"signerToken","type":"address"},{"indexed":true,"internalType":"address","name":"senderWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"senderAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"senderId","type":"uint256"},{"indexed":false,"internalType":"address","name":"senderToken","type":"address"},{"indexed":false,"internalType":"address","name":"affiliateWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"affiliateAmount","type":"uint256"}],"name":"Swap","type":"event"},{"inputs":[],"name":"DOMAIN_NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"adapters","outputs":[{"internalType":"contract IAdapter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signatory","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorized","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"nonces","type":"uint256[]"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minimumNonce","type":"uint256"}],"name":"cancelUpTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"senderWallet","type":"address"},{"components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"signer","type":"tuple"},{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"sender","type":"tuple"},{"internalType":"address","name":"affiliateWallet","type":"address"},{"internalType":"uint256","name":"affiliateAmount","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ISwap.Order","name":"order","type":"tuple"}],"name":"check","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"nonceUsed","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":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requiredSenderKind","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revoke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_protocolFee","type":"uint256"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_protocolFeeWallet","type":"address"}],"name":"setProtocolFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"signatoryMinimumNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"maxRoyalty","type":"uint256"},{"components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"signer","type":"tuple"},{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"sender","type":"tuple"},{"internalType":"address","name":"affiliateWallet","type":"address"},{"internalType":"uint256","name":"affiliateAmount","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ISwap.Order","name":"order","type":"tuple"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_23":{"entryPoint":null,"id":23,"parameterSlots":0,"returnSlots":0},"@_3599":{"entryPoint":null,"id":3599,"parameterSlots":2,"returnSlots":0},"@_4975":{"entryPoint":null,"id":4975,"parameterSlots":4,"returnSlots":0},"@_buildDomainSeparator_3646":{"entryPoint":null,"id":3646,"parameterSlots":0,"returnSlots":1},"@_domainSeparatorV4_3625":{"entryPoint":816,"id":3625,"parameterSlots":0,"returnSlots":1},"@_msgSender_2493":{"entryPoint":725,"id":2493,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_111":{"entryPoint":966,"id":111,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_172":{"entryPoint":729,"id":172,"parameterSlots":1,"returnSlots":0},"@getStringSlot_2888":{"entryPoint":null,"id":2888,"parameterSlots":1,"returnSlots":1},"@toShortStringWithFallback_2742":{"entryPoint":759,"id":2742,"parameterSlots":2,"returnSlots":1},"@toShortString_2644":{"entryPoint":1046,"id":2644,"parameterSlots":1,"returnSlots":1},"abi_decode_bytes4_fromMemory":{"entryPoint":1173,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_contract_IAdapter_fromMemory":{"entryPoint":1144,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_array$_t_contract$_IAdapter_$6490_$dyn_memory_ptrt_bytes4t_uint256t_address_fromMemory":{"entryPoint":1198,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":1478,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1864,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":1575,"id":null,"parameterSlots":3,"returnSlots":0},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":1945,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":1660,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":1515,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x32":{"entryPoint":1456,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1122,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:6192:34","nodeType":"YulBlock","src":"0:6192:34","statements":[{"nativeSrc":"6:3:34","nodeType":"YulBlock","src":"6:3:34","statements":[]},{"body":{"nativeSrc":"46:95:34","nodeType":"YulBlock","src":"46:95:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:34","nodeType":"YulLiteral","src":"63:1:34","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:34","nodeType":"YulLiteral","src":"70:3:34","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:34","nodeType":"YulLiteral","src":"75:10:34","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:34","nodeType":"YulIdentifier","src":"66:3:34"},"nativeSrc":"66:20:34","nodeType":"YulFunctionCall","src":"66:20:34"}],"functionName":{"name":"mstore","nativeSrc":"56:6:34","nodeType":"YulIdentifier","src":"56:6:34"},"nativeSrc":"56:31:34","nodeType":"YulFunctionCall","src":"56:31:34"},"nativeSrc":"56:31:34","nodeType":"YulExpressionStatement","src":"56:31:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:34","nodeType":"YulLiteral","src":"103:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:34","nodeType":"YulLiteral","src":"106:4:34","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:34","nodeType":"YulIdentifier","src":"96:6:34"},"nativeSrc":"96:15:34","nodeType":"YulFunctionCall","src":"96:15:34"},"nativeSrc":"96:15:34","nodeType":"YulExpressionStatement","src":"96:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:34","nodeType":"YulLiteral","src":"127:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:34","nodeType":"YulLiteral","src":"130:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:34","nodeType":"YulIdentifier","src":"120:6:34"},"nativeSrc":"120:15:34","nodeType":"YulFunctionCall","src":"120:15:34"},"nativeSrc":"120:15:34","nodeType":"YulExpressionStatement","src":"120:15:34"}]},"name":"panic_error_0x41","nativeSrc":"14:127:34","nodeType":"YulFunctionDefinition","src":"14:127:34"},{"body":{"nativeSrc":"216:117:34","nodeType":"YulBlock","src":"216:117:34","statements":[{"nativeSrc":"226:22:34","nodeType":"YulAssignment","src":"226:22:34","value":{"arguments":[{"name":"offset","nativeSrc":"241:6:34","nodeType":"YulIdentifier","src":"241:6:34"}],"functionName":{"name":"mload","nativeSrc":"235:5:34","nodeType":"YulIdentifier","src":"235:5:34"},"nativeSrc":"235:13:34","nodeType":"YulFunctionCall","src":"235:13:34"},"variableNames":[{"name":"value","nativeSrc":"226:5:34","nodeType":"YulIdentifier","src":"226:5:34"}]},{"body":{"nativeSrc":"311:16:34","nodeType":"YulBlock","src":"311:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"320:1:34","nodeType":"YulLiteral","src":"320:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"323:1:34","nodeType":"YulLiteral","src":"323:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"313:6:34","nodeType":"YulIdentifier","src":"313:6:34"},"nativeSrc":"313:12:34","nodeType":"YulFunctionCall","src":"313:12:34"},"nativeSrc":"313:12:34","nodeType":"YulExpressionStatement","src":"313:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"270:5:34","nodeType":"YulIdentifier","src":"270:5:34"},{"arguments":[{"name":"value","nativeSrc":"281:5:34","nodeType":"YulIdentifier","src":"281:5:34"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"296:3:34","nodeType":"YulLiteral","src":"296:3:34","type":"","value":"160"},{"kind":"number","nativeSrc":"301:1:34","nodeType":"YulLiteral","src":"301:1:34","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"292:3:34","nodeType":"YulIdentifier","src":"292:3:34"},"nativeSrc":"292:11:34","nodeType":"YulFunctionCall","src":"292:11:34"},{"kind":"number","nativeSrc":"305:1:34","nodeType":"YulLiteral","src":"305:1:34","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"288:3:34","nodeType":"YulIdentifier","src":"288:3:34"},"nativeSrc":"288:19:34","nodeType":"YulFunctionCall","src":"288:19:34"}],"functionName":{"name":"and","nativeSrc":"277:3:34","nodeType":"YulIdentifier","src":"277:3:34"},"nativeSrc":"277:31:34","nodeType":"YulFunctionCall","src":"277:31:34"}],"functionName":{"name":"eq","nativeSrc":"267:2:34","nodeType":"YulIdentifier","src":"267:2:34"},"nativeSrc":"267:42:34","nodeType":"YulFunctionCall","src":"267:42:34"}],"functionName":{"name":"iszero","nativeSrc":"260:6:34","nodeType":"YulIdentifier","src":"260:6:34"},"nativeSrc":"260:50:34","nodeType":"YulFunctionCall","src":"260:50:34"},"nativeSrc":"257:70:34","nodeType":"YulIf","src":"257:70:34"}]},"name":"abi_decode_contract_IAdapter_fromMemory","nativeSrc":"146:187:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"195:6:34","nodeType":"YulTypedName","src":"195:6:34","type":""}],"returnVariables":[{"name":"value","nativeSrc":"206:5:34","nodeType":"YulTypedName","src":"206:5:34","type":""}],"src":"146:187:34"},{"body":{"nativeSrc":"397:118:34","nodeType":"YulBlock","src":"397:118:34","statements":[{"nativeSrc":"407:22:34","nodeType":"YulAssignment","src":"407:22:34","value":{"arguments":[{"name":"offset","nativeSrc":"422:6:34","nodeType":"YulIdentifier","src":"422:6:34"}],"functionName":{"name":"mload","nativeSrc":"416:5:34","nodeType":"YulIdentifier","src":"416:5:34"},"nativeSrc":"416:13:34","nodeType":"YulFunctionCall","src":"416:13:34"},"variableNames":[{"name":"value","nativeSrc":"407:5:34","nodeType":"YulIdentifier","src":"407:5:34"}]},{"body":{"nativeSrc":"493:16:34","nodeType":"YulBlock","src":"493:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"502:1:34","nodeType":"YulLiteral","src":"502:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"505:1:34","nodeType":"YulLiteral","src":"505:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"495:6:34","nodeType":"YulIdentifier","src":"495:6:34"},"nativeSrc":"495:12:34","nodeType":"YulFunctionCall","src":"495:12:34"},"nativeSrc":"495:12:34","nodeType":"YulExpressionStatement","src":"495:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"451:5:34","nodeType":"YulIdentifier","src":"451:5:34"},{"arguments":[{"name":"value","nativeSrc":"462:5:34","nodeType":"YulIdentifier","src":"462:5:34"},{"arguments":[{"kind":"number","nativeSrc":"473:3:34","nodeType":"YulLiteral","src":"473:3:34","type":"","value":"224"},{"kind":"number","nativeSrc":"478:10:34","nodeType":"YulLiteral","src":"478:10:34","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nativeSrc":"469:3:34","nodeType":"YulIdentifier","src":"469:3:34"},"nativeSrc":"469:20:34","nodeType":"YulFunctionCall","src":"469:20:34"}],"functionName":{"name":"and","nativeSrc":"458:3:34","nodeType":"YulIdentifier","src":"458:3:34"},"nativeSrc":"458:32:34","nodeType":"YulFunctionCall","src":"458:32:34"}],"functionName":{"name":"eq","nativeSrc":"448:2:34","nodeType":"YulIdentifier","src":"448:2:34"},"nativeSrc":"448:43:34","nodeType":"YulFunctionCall","src":"448:43:34"}],"functionName":{"name":"iszero","nativeSrc":"441:6:34","nodeType":"YulIdentifier","src":"441:6:34"},"nativeSrc":"441:51:34","nodeType":"YulFunctionCall","src":"441:51:34"},"nativeSrc":"438:71:34","nodeType":"YulIf","src":"438:71:34"}]},"name":"abi_decode_bytes4_fromMemory","nativeSrc":"338:177:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"376:6:34","nodeType":"YulTypedName","src":"376:6:34","type":""}],"returnVariables":[{"name":"value","nativeSrc":"387:5:34","nodeType":"YulTypedName","src":"387:5:34","type":""}],"src":"338:177:34"},{"body":{"nativeSrc":"693:1225:34","nodeType":"YulBlock","src":"693:1225:34","statements":[{"body":{"nativeSrc":"740:16:34","nodeType":"YulBlock","src":"740:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"749:1:34","nodeType":"YulLiteral","src":"749:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"752:1:34","nodeType":"YulLiteral","src":"752:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"742:6:34","nodeType":"YulIdentifier","src":"742:6:34"},"nativeSrc":"742:12:34","nodeType":"YulFunctionCall","src":"742:12:34"},"nativeSrc":"742:12:34","nodeType":"YulExpressionStatement","src":"742:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"714:7:34","nodeType":"YulIdentifier","src":"714:7:34"},{"name":"headStart","nativeSrc":"723:9:34","nodeType":"YulIdentifier","src":"723:9:34"}],"functionName":{"name":"sub","nativeSrc":"710:3:34","nodeType":"YulIdentifier","src":"710:3:34"},"nativeSrc":"710:23:34","nodeType":"YulFunctionCall","src":"710:23:34"},{"kind":"number","nativeSrc":"735:3:34","nodeType":"YulLiteral","src":"735:3:34","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"706:3:34","nodeType":"YulIdentifier","src":"706:3:34"},"nativeSrc":"706:33:34","nodeType":"YulFunctionCall","src":"706:33:34"},"nativeSrc":"703:53:34","nodeType":"YulIf","src":"703:53:34"},{"nativeSrc":"765:30:34","nodeType":"YulVariableDeclaration","src":"765:30:34","value":{"arguments":[{"name":"headStart","nativeSrc":"785:9:34","nodeType":"YulIdentifier","src":"785:9:34"}],"functionName":{"name":"mload","nativeSrc":"779:5:34","nodeType":"YulIdentifier","src":"779:5:34"},"nativeSrc":"779:16:34","nodeType":"YulFunctionCall","src":"779:16:34"},"variables":[{"name":"offset","nativeSrc":"769:6:34","nodeType":"YulTypedName","src":"769:6:34","type":""}]},{"nativeSrc":"804:28:34","nodeType":"YulVariableDeclaration","src":"804:28:34","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"822:2:34","nodeType":"YulLiteral","src":"822:2:34","type":"","value":"64"},{"kind":"number","nativeSrc":"826:1:34","nodeType":"YulLiteral","src":"826:1:34","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"818:3:34","nodeType":"YulIdentifier","src":"818:3:34"},"nativeSrc":"818:10:34","nodeType":"YulFunctionCall","src":"818:10:34"},{"kind":"number","nativeSrc":"830:1:34","nodeType":"YulLiteral","src":"830:1:34","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"814:3:34","nodeType":"YulIdentifier","src":"814:3:34"},"nativeSrc":"814:18:34","nodeType":"YulFunctionCall","src":"814:18:34"},"variables":[{"name":"_1","nativeSrc":"808:2:34","nodeType":"YulTypedName","src":"808:2:34","type":""}]},{"body":{"nativeSrc":"859:16:34","nodeType":"YulBlock","src":"859:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"868:1:34","nodeType":"YulLiteral","src":"868:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"871:1:34","nodeType":"YulLiteral","src":"871:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"861:6:34","nodeType":"YulIdentifier","src":"861:6:34"},"nativeSrc":"861:12:34","nodeType":"YulFunctionCall","src":"861:12:34"},"nativeSrc":"861:12:34","nodeType":"YulExpressionStatement","src":"861:12:34"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"847:6:34","nodeType":"YulIdentifier","src":"847:6:34"},{"name":"_1","nativeSrc":"855:2:34","nodeType":"YulIdentifier","src":"855:2:34"}],"functionName":{"name":"gt","nativeSrc":"844:2:34","nodeType":"YulIdentifier","src":"844:2:34"},"nativeSrc":"844:14:34","nodeType":"YulFunctionCall","src":"844:14:34"},"nativeSrc":"841:34:34","nodeType":"YulIf","src":"841:34:34"},{"nativeSrc":"884:32:34","nodeType":"YulVariableDeclaration","src":"884:32:34","value":{"arguments":[{"name":"headStart","nativeSrc":"898:9:34","nodeType":"YulIdentifier","src":"898:9:34"},{"name":"offset","nativeSrc":"909:6:34","nodeType":"YulIdentifier","src":"909:6:34"}],"functionName":{"name":"add","nativeSrc":"894:3:34","nodeType":"YulIdentifier","src":"894:3:34"},"nativeSrc":"894:22:34","nodeType":"YulFunctionCall","src":"894:22:34"},"variables":[{"name":"_2","nativeSrc":"888:2:34","nodeType":"YulTypedName","src":"888:2:34","type":""}]},{"body":{"nativeSrc":"964:16:34","nodeType":"YulBlock","src":"964:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"973:1:34","nodeType":"YulLiteral","src":"973:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"976:1:34","nodeType":"YulLiteral","src":"976:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"966:6:34","nodeType":"YulIdentifier","src":"966:6:34"},"nativeSrc":"966:12:34","nodeType":"YulFunctionCall","src":"966:12:34"},"nativeSrc":"966:12:34","nodeType":"YulExpressionStatement","src":"966:12:34"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"943:2:34","nodeType":"YulIdentifier","src":"943:2:34"},{"kind":"number","nativeSrc":"947:4:34","nodeType":"YulLiteral","src":"947:4:34","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"939:3:34","nodeType":"YulIdentifier","src":"939:3:34"},"nativeSrc":"939:13:34","nodeType":"YulFunctionCall","src":"939:13:34"},{"name":"dataEnd","nativeSrc":"954:7:34","nodeType":"YulIdentifier","src":"954:7:34"}],"functionName":{"name":"slt","nativeSrc":"935:3:34","nodeType":"YulIdentifier","src":"935:3:34"},"nativeSrc":"935:27:34","nodeType":"YulFunctionCall","src":"935:27:34"}],"functionName":{"name":"iszero","nativeSrc":"928:6:34","nodeType":"YulIdentifier","src":"928:6:34"},"nativeSrc":"928:35:34","nodeType":"YulFunctionCall","src":"928:35:34"},"nativeSrc":"925:55:34","nodeType":"YulIf","src":"925:55:34"},{"nativeSrc":"989:19:34","nodeType":"YulVariableDeclaration","src":"989:19:34","value":{"arguments":[{"name":"_2","nativeSrc":"1005:2:34","nodeType":"YulIdentifier","src":"1005:2:34"}],"functionName":{"name":"mload","nativeSrc":"999:5:34","nodeType":"YulIdentifier","src":"999:5:34"},"nativeSrc":"999:9:34","nodeType":"YulFunctionCall","src":"999:9:34"},"variables":[{"name":"_3","nativeSrc":"993:2:34","nodeType":"YulTypedName","src":"993:2:34","type":""}]},{"nativeSrc":"1017:14:34","nodeType":"YulVariableDeclaration","src":"1017:14:34","value":{"kind":"number","nativeSrc":"1027:4:34","nodeType":"YulLiteral","src":"1027:4:34","type":"","value":"0x20"},"variables":[{"name":"_4","nativeSrc":"1021:2:34","nodeType":"YulTypedName","src":"1021:2:34","type":""}]},{"body":{"nativeSrc":"1054:22:34","nodeType":"YulBlock","src":"1054:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1056:16:34","nodeType":"YulIdentifier","src":"1056:16:34"},"nativeSrc":"1056:18:34","nodeType":"YulFunctionCall","src":"1056:18:34"},"nativeSrc":"1056:18:34","nodeType":"YulExpressionStatement","src":"1056:18:34"}]},"condition":{"arguments":[{"name":"_3","nativeSrc":"1046:2:34","nodeType":"YulIdentifier","src":"1046:2:34"},{"name":"_1","nativeSrc":"1050:2:34","nodeType":"YulIdentifier","src":"1050:2:34"}],"functionName":{"name":"gt","nativeSrc":"1043:2:34","nodeType":"YulIdentifier","src":"1043:2:34"},"nativeSrc":"1043:10:34","nodeType":"YulFunctionCall","src":"1043:10:34"},"nativeSrc":"1040:36:34","nodeType":"YulIf","src":"1040:36:34"},{"nativeSrc":"1085:20:34","nodeType":"YulVariableDeclaration","src":"1085:20:34","value":{"arguments":[{"kind":"number","nativeSrc":"1099:1:34","nodeType":"YulLiteral","src":"1099:1:34","type":"","value":"5"},{"name":"_3","nativeSrc":"1102:2:34","nodeType":"YulIdentifier","src":"1102:2:34"}],"functionName":{"name":"shl","nativeSrc":"1095:3:34","nodeType":"YulIdentifier","src":"1095:3:34"},"nativeSrc":"1095:10:34","nodeType":"YulFunctionCall","src":"1095:10:34"},"variables":[{"name":"_5","nativeSrc":"1089:2:34","nodeType":"YulTypedName","src":"1089:2:34","type":""}]},{"nativeSrc":"1114:23:34","nodeType":"YulVariableDeclaration","src":"1114:23:34","value":{"arguments":[{"kind":"number","nativeSrc":"1134:2:34","nodeType":"YulLiteral","src":"1134:2:34","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1128:5:34","nodeType":"YulIdentifier","src":"1128:5:34"},"nativeSrc":"1128:9:34","nodeType":"YulFunctionCall","src":"1128:9:34"},"variables":[{"name":"memPtr","nativeSrc":"1118:6:34","nodeType":"YulTypedName","src":"1118:6:34","type":""}]},{"nativeSrc":"1146:56:34","nodeType":"YulVariableDeclaration","src":"1146:56:34","value":{"arguments":[{"name":"memPtr","nativeSrc":"1168:6:34","nodeType":"YulIdentifier","src":"1168:6:34"},{"arguments":[{"arguments":[{"name":"_5","nativeSrc":"1184:2:34","nodeType":"YulIdentifier","src":"1184:2:34"},{"kind":"number","nativeSrc":"1188:2:34","nodeType":"YulLiteral","src":"1188:2:34","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"1180:3:34","nodeType":"YulIdentifier","src":"1180:3:34"},"nativeSrc":"1180:11:34","nodeType":"YulFunctionCall","src":"1180:11:34"},{"arguments":[{"kind":"number","nativeSrc":"1197:2:34","nodeType":"YulLiteral","src":"1197:2:34","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1193:3:34","nodeType":"YulIdentifier","src":"1193:3:34"},"nativeSrc":"1193:7:34","nodeType":"YulFunctionCall","src":"1193:7:34"}],"functionName":{"name":"and","nativeSrc":"1176:3:34","nodeType":"YulIdentifier","src":"1176:3:34"},"nativeSrc":"1176:25:34","nodeType":"YulFunctionCall","src":"1176:25:34"}],"functionName":{"name":"add","nativeSrc":"1164:3:34","nodeType":"YulIdentifier","src":"1164:3:34"},"nativeSrc":"1164:38:34","nodeType":"YulFunctionCall","src":"1164:38:34"},"variables":[{"name":"newFreePtr","nativeSrc":"1150:10:34","nodeType":"YulTypedName","src":"1150:10:34","type":""}]},{"body":{"nativeSrc":"1261:22:34","nodeType":"YulBlock","src":"1261:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1263:16:34","nodeType":"YulIdentifier","src":"1263:16:34"},"nativeSrc":"1263:18:34","nodeType":"YulFunctionCall","src":"1263:18:34"},"nativeSrc":"1263:18:34","nodeType":"YulExpressionStatement","src":"1263:18:34"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1220:10:34","nodeType":"YulIdentifier","src":"1220:10:34"},{"name":"_1","nativeSrc":"1232:2:34","nodeType":"YulIdentifier","src":"1232:2:34"}],"functionName":{"name":"gt","nativeSrc":"1217:2:34","nodeType":"YulIdentifier","src":"1217:2:34"},"nativeSrc":"1217:18:34","nodeType":"YulFunctionCall","src":"1217:18:34"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1240:10:34","nodeType":"YulIdentifier","src":"1240:10:34"},{"name":"memPtr","nativeSrc":"1252:6:34","nodeType":"YulIdentifier","src":"1252:6:34"}],"functionName":{"name":"lt","nativeSrc":"1237:2:34","nodeType":"YulIdentifier","src":"1237:2:34"},"nativeSrc":"1237:22:34","nodeType":"YulFunctionCall","src":"1237:22:34"}],"functionName":{"name":"or","nativeSrc":"1214:2:34","nodeType":"YulIdentifier","src":"1214:2:34"},"nativeSrc":"1214:46:34","nodeType":"YulFunctionCall","src":"1214:46:34"},"nativeSrc":"1211:72:34","nodeType":"YulIf","src":"1211:72:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1299:2:34","nodeType":"YulLiteral","src":"1299:2:34","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1303:10:34","nodeType":"YulIdentifier","src":"1303:10:34"}],"functionName":{"name":"mstore","nativeSrc":"1292:6:34","nodeType":"YulIdentifier","src":"1292:6:34"},"nativeSrc":"1292:22:34","nodeType":"YulFunctionCall","src":"1292:22:34"},"nativeSrc":"1292:22:34","nodeType":"YulExpressionStatement","src":"1292:22:34"},{"nativeSrc":"1323:17:34","nodeType":"YulVariableDeclaration","src":"1323:17:34","value":{"name":"memPtr","nativeSrc":"1334:6:34","nodeType":"YulIdentifier","src":"1334:6:34"},"variables":[{"name":"dst","nativeSrc":"1327:3:34","nodeType":"YulTypedName","src":"1327:3:34","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1356:6:34","nodeType":"YulIdentifier","src":"1356:6:34"},{"name":"_3","nativeSrc":"1364:2:34","nodeType":"YulIdentifier","src":"1364:2:34"}],"functionName":{"name":"mstore","nativeSrc":"1349:6:34","nodeType":"YulIdentifier","src":"1349:6:34"},"nativeSrc":"1349:18:34","nodeType":"YulFunctionCall","src":"1349:18:34"},"nativeSrc":"1349:18:34","nodeType":"YulExpressionStatement","src":"1349:18:34"},{"nativeSrc":"1376:22:34","nodeType":"YulAssignment","src":"1376:22:34","value":{"arguments":[{"name":"memPtr","nativeSrc":"1387:6:34","nodeType":"YulIdentifier","src":"1387:6:34"},{"name":"_4","nativeSrc":"1395:2:34","nodeType":"YulIdentifier","src":"1395:2:34"}],"functionName":{"name":"add","nativeSrc":"1383:3:34","nodeType":"YulIdentifier","src":"1383:3:34"},"nativeSrc":"1383:15:34","nodeType":"YulFunctionCall","src":"1383:15:34"},"variableNames":[{"name":"dst","nativeSrc":"1376:3:34","nodeType":"YulIdentifier","src":"1376:3:34"}]},{"nativeSrc":"1407:34:34","nodeType":"YulVariableDeclaration","src":"1407:34:34","value":{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1429:2:34","nodeType":"YulIdentifier","src":"1429:2:34"},{"name":"_5","nativeSrc":"1433:2:34","nodeType":"YulIdentifier","src":"1433:2:34"}],"functionName":{"name":"add","nativeSrc":"1425:3:34","nodeType":"YulIdentifier","src":"1425:3:34"},"nativeSrc":"1425:11:34","nodeType":"YulFunctionCall","src":"1425:11:34"},{"name":"_4","nativeSrc":"1438:2:34","nodeType":"YulIdentifier","src":"1438:2:34"}],"functionName":{"name":"add","nativeSrc":"1421:3:34","nodeType":"YulIdentifier","src":"1421:3:34"},"nativeSrc":"1421:20:34","nodeType":"YulFunctionCall","src":"1421:20:34"},"variables":[{"name":"srcEnd","nativeSrc":"1411:6:34","nodeType":"YulTypedName","src":"1411:6:34","type":""}]},{"body":{"nativeSrc":"1473:16:34","nodeType":"YulBlock","src":"1473:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1482:1:34","nodeType":"YulLiteral","src":"1482:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1485:1:34","nodeType":"YulLiteral","src":"1485:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1475:6:34","nodeType":"YulIdentifier","src":"1475:6:34"},"nativeSrc":"1475:12:34","nodeType":"YulFunctionCall","src":"1475:12:34"},"nativeSrc":"1475:12:34","nodeType":"YulExpressionStatement","src":"1475:12:34"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"1456:6:34","nodeType":"YulIdentifier","src":"1456:6:34"},{"name":"dataEnd","nativeSrc":"1464:7:34","nodeType":"YulIdentifier","src":"1464:7:34"}],"functionName":{"name":"gt","nativeSrc":"1453:2:34","nodeType":"YulIdentifier","src":"1453:2:34"},"nativeSrc":"1453:19:34","nodeType":"YulFunctionCall","src":"1453:19:34"},"nativeSrc":"1450:39:34","nodeType":"YulIf","src":"1450:39:34"},{"nativeSrc":"1498:22:34","nodeType":"YulVariableDeclaration","src":"1498:22:34","value":{"arguments":[{"name":"_2","nativeSrc":"1513:2:34","nodeType":"YulIdentifier","src":"1513:2:34"},{"name":"_4","nativeSrc":"1517:2:34","nodeType":"YulIdentifier","src":"1517:2:34"}],"functionName":{"name":"add","nativeSrc":"1509:3:34","nodeType":"YulIdentifier","src":"1509:3:34"},"nativeSrc":"1509:11:34","nodeType":"YulFunctionCall","src":"1509:11:34"},"variables":[{"name":"src","nativeSrc":"1502:3:34","nodeType":"YulTypedName","src":"1502:3:34","type":""}]},{"body":{"nativeSrc":"1585:113:34","nodeType":"YulBlock","src":"1585:113:34","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1606:3:34","nodeType":"YulIdentifier","src":"1606:3:34"},{"arguments":[{"name":"src","nativeSrc":"1651:3:34","nodeType":"YulIdentifier","src":"1651:3:34"}],"functionName":{"name":"abi_decode_contract_IAdapter_fromMemory","nativeSrc":"1611:39:34","nodeType":"YulIdentifier","src":"1611:39:34"},"nativeSrc":"1611:44:34","nodeType":"YulFunctionCall","src":"1611:44:34"}],"functionName":{"name":"mstore","nativeSrc":"1599:6:34","nodeType":"YulIdentifier","src":"1599:6:34"},"nativeSrc":"1599:57:34","nodeType":"YulFunctionCall","src":"1599:57:34"},"nativeSrc":"1599:57:34","nodeType":"YulExpressionStatement","src":"1599:57:34"},{"nativeSrc":"1669:19:34","nodeType":"YulAssignment","src":"1669:19:34","value":{"arguments":[{"name":"dst","nativeSrc":"1680:3:34","nodeType":"YulIdentifier","src":"1680:3:34"},{"name":"_4","nativeSrc":"1685:2:34","nodeType":"YulIdentifier","src":"1685:2:34"}],"functionName":{"name":"add","nativeSrc":"1676:3:34","nodeType":"YulIdentifier","src":"1676:3:34"},"nativeSrc":"1676:12:34","nodeType":"YulFunctionCall","src":"1676:12:34"},"variableNames":[{"name":"dst","nativeSrc":"1669:3:34","nodeType":"YulIdentifier","src":"1669:3:34"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"1540:3:34","nodeType":"YulIdentifier","src":"1540:3:34"},{"name":"srcEnd","nativeSrc":"1545:6:34","nodeType":"YulIdentifier","src":"1545:6:34"}],"functionName":{"name":"lt","nativeSrc":"1537:2:34","nodeType":"YulIdentifier","src":"1537:2:34"},"nativeSrc":"1537:15:34","nodeType":"YulFunctionCall","src":"1537:15:34"},"nativeSrc":"1529:169:34","nodeType":"YulForLoop","post":{"nativeSrc":"1553:23:34","nodeType":"YulBlock","src":"1553:23:34","statements":[{"nativeSrc":"1555:19:34","nodeType":"YulAssignment","src":"1555:19:34","value":{"arguments":[{"name":"src","nativeSrc":"1566:3:34","nodeType":"YulIdentifier","src":"1566:3:34"},{"name":"_4","nativeSrc":"1571:2:34","nodeType":"YulIdentifier","src":"1571:2:34"}],"functionName":{"name":"add","nativeSrc":"1562:3:34","nodeType":"YulIdentifier","src":"1562:3:34"},"nativeSrc":"1562:12:34","nodeType":"YulFunctionCall","src":"1562:12:34"},"variableNames":[{"name":"src","nativeSrc":"1555:3:34","nodeType":"YulIdentifier","src":"1555:3:34"}]}]},"pre":{"nativeSrc":"1533:3:34","nodeType":"YulBlock","src":"1533:3:34","statements":[]},"src":"1529:169:34"},{"nativeSrc":"1707:16:34","nodeType":"YulAssignment","src":"1707:16:34","value":{"name":"memPtr","nativeSrc":"1717:6:34","nodeType":"YulIdentifier","src":"1717:6:34"},"variableNames":[{"name":"value0","nativeSrc":"1707:6:34","nodeType":"YulIdentifier","src":"1707:6:34"}]},{"nativeSrc":"1732:58:34","nodeType":"YulAssignment","src":"1732:58:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1775:9:34","nodeType":"YulIdentifier","src":"1775:9:34"},{"name":"_4","nativeSrc":"1786:2:34","nodeType":"YulIdentifier","src":"1786:2:34"}],"functionName":{"name":"add","nativeSrc":"1771:3:34","nodeType":"YulIdentifier","src":"1771:3:34"},"nativeSrc":"1771:18:34","nodeType":"YulFunctionCall","src":"1771:18:34"}],"functionName":{"name":"abi_decode_bytes4_fromMemory","nativeSrc":"1742:28:34","nodeType":"YulIdentifier","src":"1742:28:34"},"nativeSrc":"1742:48:34","nodeType":"YulFunctionCall","src":"1742:48:34"},"variableNames":[{"name":"value1","nativeSrc":"1732:6:34","nodeType":"YulIdentifier","src":"1732:6:34"}]},{"nativeSrc":"1799:35:34","nodeType":"YulAssignment","src":"1799:35:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1819:9:34","nodeType":"YulIdentifier","src":"1819:9:34"},{"kind":"number","nativeSrc":"1830:2:34","nodeType":"YulLiteral","src":"1830:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1815:3:34","nodeType":"YulIdentifier","src":"1815:3:34"},"nativeSrc":"1815:18:34","nodeType":"YulFunctionCall","src":"1815:18:34"}],"functionName":{"name":"mload","nativeSrc":"1809:5:34","nodeType":"YulIdentifier","src":"1809:5:34"},"nativeSrc":"1809:25:34","nodeType":"YulFunctionCall","src":"1809:25:34"},"variableNames":[{"name":"value2","nativeSrc":"1799:6:34","nodeType":"YulIdentifier","src":"1799:6:34"}]},{"nativeSrc":"1843:69:34","nodeType":"YulAssignment","src":"1843:69:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1897:9:34","nodeType":"YulIdentifier","src":"1897:9:34"},{"kind":"number","nativeSrc":"1908:2:34","nodeType":"YulLiteral","src":"1908:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1893:3:34","nodeType":"YulIdentifier","src":"1893:3:34"},"nativeSrc":"1893:18:34","nodeType":"YulFunctionCall","src":"1893:18:34"}],"functionName":{"name":"abi_decode_contract_IAdapter_fromMemory","nativeSrc":"1853:39:34","nodeType":"YulIdentifier","src":"1853:39:34"},"nativeSrc":"1853:59:34","nodeType":"YulFunctionCall","src":"1853:59:34"},"variableNames":[{"name":"value3","nativeSrc":"1843:6:34","nodeType":"YulIdentifier","src":"1843:6:34"}]}]},"name":"abi_decode_tuple_t_array$_t_contract$_IAdapter_$6490_$dyn_memory_ptrt_bytes4t_uint256t_address_fromMemory","nativeSrc":"520:1398:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"635:9:34","nodeType":"YulTypedName","src":"635:9:34","type":""},{"name":"dataEnd","nativeSrc":"646:7:34","nodeType":"YulTypedName","src":"646:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"658:6:34","nodeType":"YulTypedName","src":"658:6:34","type":""},{"name":"value1","nativeSrc":"666:6:34","nodeType":"YulTypedName","src":"666:6:34","type":""},{"name":"value2","nativeSrc":"674:6:34","nodeType":"YulTypedName","src":"674:6:34","type":""},{"name":"value3","nativeSrc":"682:6:34","nodeType":"YulTypedName","src":"682:6:34","type":""}],"src":"520:1398:34"},{"body":{"nativeSrc":"1955:95:34","nodeType":"YulBlock","src":"1955:95:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1972:1:34","nodeType":"YulLiteral","src":"1972:1:34","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"1979:3:34","nodeType":"YulLiteral","src":"1979:3:34","type":"","value":"224"},{"kind":"number","nativeSrc":"1984:10:34","nodeType":"YulLiteral","src":"1984:10:34","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"1975:3:34","nodeType":"YulIdentifier","src":"1975:3:34"},"nativeSrc":"1975:20:34","nodeType":"YulFunctionCall","src":"1975:20:34"}],"functionName":{"name":"mstore","nativeSrc":"1965:6:34","nodeType":"YulIdentifier","src":"1965:6:34"},"nativeSrc":"1965:31:34","nodeType":"YulFunctionCall","src":"1965:31:34"},"nativeSrc":"1965:31:34","nodeType":"YulExpressionStatement","src":"1965:31:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2012:1:34","nodeType":"YulLiteral","src":"2012:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"2015:4:34","nodeType":"YulLiteral","src":"2015:4:34","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"2005:6:34","nodeType":"YulIdentifier","src":"2005:6:34"},"nativeSrc":"2005:15:34","nodeType":"YulFunctionCall","src":"2005:15:34"},"nativeSrc":"2005:15:34","nodeType":"YulExpressionStatement","src":"2005:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2036:1:34","nodeType":"YulLiteral","src":"2036:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2039:4:34","nodeType":"YulLiteral","src":"2039:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2029:6:34","nodeType":"YulIdentifier","src":"2029:6:34"},"nativeSrc":"2029:15:34","nodeType":"YulFunctionCall","src":"2029:15:34"},"nativeSrc":"2029:15:34","nodeType":"YulExpressionStatement","src":"2029:15:34"}]},"name":"panic_error_0x32","nativeSrc":"1923:127:34","nodeType":"YulFunctionDefinition","src":"1923:127:34"},{"body":{"nativeSrc":"2135:126:34","nodeType":"YulBlock","src":"2135:126:34","statements":[{"body":{"nativeSrc":"2181:16:34","nodeType":"YulBlock","src":"2181:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2190:1:34","nodeType":"YulLiteral","src":"2190:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2193:1:34","nodeType":"YulLiteral","src":"2193:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2183:6:34","nodeType":"YulIdentifier","src":"2183:6:34"},"nativeSrc":"2183:12:34","nodeType":"YulFunctionCall","src":"2183:12:34"},"nativeSrc":"2183:12:34","nodeType":"YulExpressionStatement","src":"2183:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2156:7:34","nodeType":"YulIdentifier","src":"2156:7:34"},{"name":"headStart","nativeSrc":"2165:9:34","nodeType":"YulIdentifier","src":"2165:9:34"}],"functionName":{"name":"sub","nativeSrc":"2152:3:34","nodeType":"YulIdentifier","src":"2152:3:34"},"nativeSrc":"2152:23:34","nodeType":"YulFunctionCall","src":"2152:23:34"},{"kind":"number","nativeSrc":"2177:2:34","nodeType":"YulLiteral","src":"2177:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2148:3:34","nodeType":"YulIdentifier","src":"2148:3:34"},"nativeSrc":"2148:32:34","nodeType":"YulFunctionCall","src":"2148:32:34"},"nativeSrc":"2145:52:34","nodeType":"YulIf","src":"2145:52:34"},{"nativeSrc":"2206:49:34","nodeType":"YulAssignment","src":"2206:49:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2245:9:34","nodeType":"YulIdentifier","src":"2245:9:34"}],"functionName":{"name":"abi_decode_bytes4_fromMemory","nativeSrc":"2216:28:34","nodeType":"YulIdentifier","src":"2216:28:34"},"nativeSrc":"2216:39:34","nodeType":"YulFunctionCall","src":"2216:39:34"},"variableNames":[{"name":"value0","nativeSrc":"2206:6:34","nodeType":"YulIdentifier","src":"2206:6:34"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"2055:206:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2101:9:34","nodeType":"YulTypedName","src":"2101:9:34","type":""},{"name":"dataEnd","nativeSrc":"2112:7:34","nodeType":"YulTypedName","src":"2112:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2124:6:34","nodeType":"YulTypedName","src":"2124:6:34","type":""}],"src":"2055:206:34"},{"body":{"nativeSrc":"2321:325:34","nodeType":"YulBlock","src":"2321:325:34","statements":[{"nativeSrc":"2331:22:34","nodeType":"YulAssignment","src":"2331:22:34","value":{"arguments":[{"kind":"number","nativeSrc":"2345:1:34","nodeType":"YulLiteral","src":"2345:1:34","type":"","value":"1"},{"name":"data","nativeSrc":"2348:4:34","nodeType":"YulIdentifier","src":"2348:4:34"}],"functionName":{"name":"shr","nativeSrc":"2341:3:34","nodeType":"YulIdentifier","src":"2341:3:34"},"nativeSrc":"2341:12:34","nodeType":"YulFunctionCall","src":"2341:12:34"},"variableNames":[{"name":"length","nativeSrc":"2331:6:34","nodeType":"YulIdentifier","src":"2331:6:34"}]},{"nativeSrc":"2362:38:34","nodeType":"YulVariableDeclaration","src":"2362:38:34","value":{"arguments":[{"name":"data","nativeSrc":"2392:4:34","nodeType":"YulIdentifier","src":"2392:4:34"},{"kind":"number","nativeSrc":"2398:1:34","nodeType":"YulLiteral","src":"2398:1:34","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"2388:3:34","nodeType":"YulIdentifier","src":"2388:3:34"},"nativeSrc":"2388:12:34","nodeType":"YulFunctionCall","src":"2388:12:34"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"2366:18:34","nodeType":"YulTypedName","src":"2366:18:34","type":""}]},{"body":{"nativeSrc":"2439:31:34","nodeType":"YulBlock","src":"2439:31:34","statements":[{"nativeSrc":"2441:27:34","nodeType":"YulAssignment","src":"2441:27:34","value":{"arguments":[{"name":"length","nativeSrc":"2455:6:34","nodeType":"YulIdentifier","src":"2455:6:34"},{"kind":"number","nativeSrc":"2463:4:34","nodeType":"YulLiteral","src":"2463:4:34","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"2451:3:34","nodeType":"YulIdentifier","src":"2451:3:34"},"nativeSrc":"2451:17:34","nodeType":"YulFunctionCall","src":"2451:17:34"},"variableNames":[{"name":"length","nativeSrc":"2441:6:34","nodeType":"YulIdentifier","src":"2441:6:34"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2419:18:34","nodeType":"YulIdentifier","src":"2419:18:34"}],"functionName":{"name":"iszero","nativeSrc":"2412:6:34","nodeType":"YulIdentifier","src":"2412:6:34"},"nativeSrc":"2412:26:34","nodeType":"YulFunctionCall","src":"2412:26:34"},"nativeSrc":"2409:61:34","nodeType":"YulIf","src":"2409:61:34"},{"body":{"nativeSrc":"2529:111:34","nodeType":"YulBlock","src":"2529:111:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2550:1:34","nodeType":"YulLiteral","src":"2550:1:34","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"2557:3:34","nodeType":"YulLiteral","src":"2557:3:34","type":"","value":"224"},{"kind":"number","nativeSrc":"2562:10:34","nodeType":"YulLiteral","src":"2562:10:34","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"2553:3:34","nodeType":"YulIdentifier","src":"2553:3:34"},"nativeSrc":"2553:20:34","nodeType":"YulFunctionCall","src":"2553:20:34"}],"functionName":{"name":"mstore","nativeSrc":"2543:6:34","nodeType":"YulIdentifier","src":"2543:6:34"},"nativeSrc":"2543:31:34","nodeType":"YulFunctionCall","src":"2543:31:34"},"nativeSrc":"2543:31:34","nodeType":"YulExpressionStatement","src":"2543:31:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2594:1:34","nodeType":"YulLiteral","src":"2594:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"2597:4:34","nodeType":"YulLiteral","src":"2597:4:34","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"2587:6:34","nodeType":"YulIdentifier","src":"2587:6:34"},"nativeSrc":"2587:15:34","nodeType":"YulFunctionCall","src":"2587:15:34"},"nativeSrc":"2587:15:34","nodeType":"YulExpressionStatement","src":"2587:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2622:1:34","nodeType":"YulLiteral","src":"2622:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2625:4:34","nodeType":"YulLiteral","src":"2625:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2615:6:34","nodeType":"YulIdentifier","src":"2615:6:34"},"nativeSrc":"2615:15:34","nodeType":"YulFunctionCall","src":"2615:15:34"},"nativeSrc":"2615:15:34","nodeType":"YulExpressionStatement","src":"2615:15:34"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"2485:18:34","nodeType":"YulIdentifier","src":"2485:18:34"},{"arguments":[{"name":"length","nativeSrc":"2508:6:34","nodeType":"YulIdentifier","src":"2508:6:34"},{"kind":"number","nativeSrc":"2516:2:34","nodeType":"YulLiteral","src":"2516:2:34","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"2505:2:34","nodeType":"YulIdentifier","src":"2505:2:34"},"nativeSrc":"2505:14:34","nodeType":"YulFunctionCall","src":"2505:14:34"}],"functionName":{"name":"eq","nativeSrc":"2482:2:34","nodeType":"YulIdentifier","src":"2482:2:34"},"nativeSrc":"2482:38:34","nodeType":"YulFunctionCall","src":"2482:38:34"},"nativeSrc":"2479:161:34","nodeType":"YulIf","src":"2479:161:34"}]},"name":"extract_byte_array_length","nativeSrc":"2266:380:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"2301:4:34","nodeType":"YulTypedName","src":"2301:4:34","type":""}],"returnVariables":[{"name":"length","nativeSrc":"2310:6:34","nodeType":"YulTypedName","src":"2310:6:34","type":""}],"src":"2266:380:34"},{"body":{"nativeSrc":"2707:65:34","nodeType":"YulBlock","src":"2707:65:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2724:1:34","nodeType":"YulLiteral","src":"2724:1:34","type":"","value":"0"},{"name":"ptr","nativeSrc":"2727:3:34","nodeType":"YulIdentifier","src":"2727:3:34"}],"functionName":{"name":"mstore","nativeSrc":"2717:6:34","nodeType":"YulIdentifier","src":"2717:6:34"},"nativeSrc":"2717:14:34","nodeType":"YulFunctionCall","src":"2717:14:34"},"nativeSrc":"2717:14:34","nodeType":"YulExpressionStatement","src":"2717:14:34"},{"nativeSrc":"2740:26:34","nodeType":"YulAssignment","src":"2740:26:34","value":{"arguments":[{"kind":"number","nativeSrc":"2758:1:34","nodeType":"YulLiteral","src":"2758:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2761:4:34","nodeType":"YulLiteral","src":"2761:4:34","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2748:9:34","nodeType":"YulIdentifier","src":"2748:9:34"},"nativeSrc":"2748:18:34","nodeType":"YulFunctionCall","src":"2748:18:34"},"variableNames":[{"name":"data","nativeSrc":"2740:4:34","nodeType":"YulIdentifier","src":"2740:4:34"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"2651:121:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"2690:3:34","nodeType":"YulTypedName","src":"2690:3:34","type":""}],"returnVariables":[{"name":"data","nativeSrc":"2698:4:34","nodeType":"YulTypedName","src":"2698:4:34","type":""}],"src":"2651:121:34"},{"body":{"nativeSrc":"2858:462:34","nodeType":"YulBlock","src":"2858:462:34","statements":[{"body":{"nativeSrc":"2891:423:34","nodeType":"YulBlock","src":"2891:423:34","statements":[{"nativeSrc":"2905:11:34","nodeType":"YulVariableDeclaration","src":"2905:11:34","value":{"kind":"number","nativeSrc":"2915:1:34","nodeType":"YulLiteral","src":"2915:1:34","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"2909:2:34","nodeType":"YulTypedName","src":"2909:2:34","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2936:1:34","nodeType":"YulLiteral","src":"2936:1:34","type":"","value":"0"},{"name":"array","nativeSrc":"2939:5:34","nodeType":"YulIdentifier","src":"2939:5:34"}],"functionName":{"name":"mstore","nativeSrc":"2929:6:34","nodeType":"YulIdentifier","src":"2929:6:34"},"nativeSrc":"2929:16:34","nodeType":"YulFunctionCall","src":"2929:16:34"},"nativeSrc":"2929:16:34","nodeType":"YulExpressionStatement","src":"2929:16:34"},{"nativeSrc":"2958:30:34","nodeType":"YulVariableDeclaration","src":"2958:30:34","value":{"arguments":[{"kind":"number","nativeSrc":"2980:1:34","nodeType":"YulLiteral","src":"2980:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2983:4:34","nodeType":"YulLiteral","src":"2983:4:34","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2970:9:34","nodeType":"YulIdentifier","src":"2970:9:34"},"nativeSrc":"2970:18:34","nodeType":"YulFunctionCall","src":"2970:18:34"},"variables":[{"name":"data","nativeSrc":"2962:4:34","nodeType":"YulTypedName","src":"2962:4:34","type":""}]},{"nativeSrc":"3001:57:34","nodeType":"YulVariableDeclaration","src":"3001:57:34","value":{"arguments":[{"name":"data","nativeSrc":"3024:4:34","nodeType":"YulIdentifier","src":"3024:4:34"},{"arguments":[{"kind":"number","nativeSrc":"3034:1:34","nodeType":"YulLiteral","src":"3034:1:34","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"3041:10:34","nodeType":"YulIdentifier","src":"3041:10:34"},{"kind":"number","nativeSrc":"3053:2:34","nodeType":"YulLiteral","src":"3053:2:34","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3037:3:34","nodeType":"YulIdentifier","src":"3037:3:34"},"nativeSrc":"3037:19:34","nodeType":"YulFunctionCall","src":"3037:19:34"}],"functionName":{"name":"shr","nativeSrc":"3030:3:34","nodeType":"YulIdentifier","src":"3030:3:34"},"nativeSrc":"3030:27:34","nodeType":"YulFunctionCall","src":"3030:27:34"}],"functionName":{"name":"add","nativeSrc":"3020:3:34","nodeType":"YulIdentifier","src":"3020:3:34"},"nativeSrc":"3020:38:34","nodeType":"YulFunctionCall","src":"3020:38:34"},"variables":[{"name":"deleteStart","nativeSrc":"3005:11:34","nodeType":"YulTypedName","src":"3005:11:34","type":""}]},{"body":{"nativeSrc":"3095:23:34","nodeType":"YulBlock","src":"3095:23:34","statements":[{"nativeSrc":"3097:19:34","nodeType":"YulAssignment","src":"3097:19:34","value":{"name":"data","nativeSrc":"3112:4:34","nodeType":"YulIdentifier","src":"3112:4:34"},"variableNames":[{"name":"deleteStart","nativeSrc":"3097:11:34","nodeType":"YulIdentifier","src":"3097:11:34"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"3077:10:34","nodeType":"YulIdentifier","src":"3077:10:34"},{"kind":"number","nativeSrc":"3089:4:34","nodeType":"YulLiteral","src":"3089:4:34","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"3074:2:34","nodeType":"YulIdentifier","src":"3074:2:34"},"nativeSrc":"3074:20:34","nodeType":"YulFunctionCall","src":"3074:20:34"},"nativeSrc":"3071:47:34","nodeType":"YulIf","src":"3071:47:34"},{"nativeSrc":"3131:41:34","nodeType":"YulVariableDeclaration","src":"3131:41:34","value":{"arguments":[{"name":"data","nativeSrc":"3145:4:34","nodeType":"YulIdentifier","src":"3145:4:34"},{"arguments":[{"kind":"number","nativeSrc":"3155:1:34","nodeType":"YulLiteral","src":"3155:1:34","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"3162:3:34","nodeType":"YulIdentifier","src":"3162:3:34"},{"kind":"number","nativeSrc":"3167:2:34","nodeType":"YulLiteral","src":"3167:2:34","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3158:3:34","nodeType":"YulIdentifier","src":"3158:3:34"},"nativeSrc":"3158:12:34","nodeType":"YulFunctionCall","src":"3158:12:34"}],"functionName":{"name":"shr","nativeSrc":"3151:3:34","nodeType":"YulIdentifier","src":"3151:3:34"},"nativeSrc":"3151:20:34","nodeType":"YulFunctionCall","src":"3151:20:34"}],"functionName":{"name":"add","nativeSrc":"3141:3:34","nodeType":"YulIdentifier","src":"3141:3:34"},"nativeSrc":"3141:31:34","nodeType":"YulFunctionCall","src":"3141:31:34"},"variables":[{"name":"_2","nativeSrc":"3135:2:34","nodeType":"YulTypedName","src":"3135:2:34","type":""}]},{"nativeSrc":"3185:24:34","nodeType":"YulVariableDeclaration","src":"3185:24:34","value":{"name":"deleteStart","nativeSrc":"3198:11:34","nodeType":"YulIdentifier","src":"3198:11:34"},"variables":[{"name":"start","nativeSrc":"3189:5:34","nodeType":"YulTypedName","src":"3189:5:34","type":""}]},{"body":{"nativeSrc":"3283:21:34","nodeType":"YulBlock","src":"3283:21:34","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"3292:5:34","nodeType":"YulIdentifier","src":"3292:5:34"},{"name":"_1","nativeSrc":"3299:2:34","nodeType":"YulIdentifier","src":"3299:2:34"}],"functionName":{"name":"sstore","nativeSrc":"3285:6:34","nodeType":"YulIdentifier","src":"3285:6:34"},"nativeSrc":"3285:17:34","nodeType":"YulFunctionCall","src":"3285:17:34"},"nativeSrc":"3285:17:34","nodeType":"YulExpressionStatement","src":"3285:17:34"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"3233:5:34","nodeType":"YulIdentifier","src":"3233:5:34"},{"name":"_2","nativeSrc":"3240:2:34","nodeType":"YulIdentifier","src":"3240:2:34"}],"functionName":{"name":"lt","nativeSrc":"3230:2:34","nodeType":"YulIdentifier","src":"3230:2:34"},"nativeSrc":"3230:13:34","nodeType":"YulFunctionCall","src":"3230:13:34"},"nativeSrc":"3222:82:34","nodeType":"YulForLoop","post":{"nativeSrc":"3244:26:34","nodeType":"YulBlock","src":"3244:26:34","statements":[{"nativeSrc":"3246:22:34","nodeType":"YulAssignment","src":"3246:22:34","value":{"arguments":[{"name":"start","nativeSrc":"3259:5:34","nodeType":"YulIdentifier","src":"3259:5:34"},{"kind":"number","nativeSrc":"3266:1:34","nodeType":"YulLiteral","src":"3266:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3255:3:34","nodeType":"YulIdentifier","src":"3255:3:34"},"nativeSrc":"3255:13:34","nodeType":"YulFunctionCall","src":"3255:13:34"},"variableNames":[{"name":"start","nativeSrc":"3246:5:34","nodeType":"YulIdentifier","src":"3246:5:34"}]}]},"pre":{"nativeSrc":"3226:3:34","nodeType":"YulBlock","src":"3226:3:34","statements":[]},"src":"3222:82:34"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2874:3:34","nodeType":"YulIdentifier","src":"2874:3:34"},{"kind":"number","nativeSrc":"2879:2:34","nodeType":"YulLiteral","src":"2879:2:34","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2871:2:34","nodeType":"YulIdentifier","src":"2871:2:34"},"nativeSrc":"2871:11:34","nodeType":"YulFunctionCall","src":"2871:11:34"},"nativeSrc":"2868:446:34","nodeType":"YulIf","src":"2868:446:34"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"2777:543:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2830:5:34","nodeType":"YulTypedName","src":"2830:5:34","type":""},{"name":"len","nativeSrc":"2837:3:34","nodeType":"YulTypedName","src":"2837:3:34","type":""},{"name":"startIndex","nativeSrc":"2842:10:34","nodeType":"YulTypedName","src":"2842:10:34","type":""}],"src":"2777:543:34"},{"body":{"nativeSrc":"3410:81:34","nodeType":"YulBlock","src":"3410:81:34","statements":[{"nativeSrc":"3420:65:34","nodeType":"YulAssignment","src":"3420:65:34","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"3435:4:34","nodeType":"YulIdentifier","src":"3435:4:34"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3453:1:34","nodeType":"YulLiteral","src":"3453:1:34","type":"","value":"3"},{"name":"len","nativeSrc":"3456:3:34","nodeType":"YulIdentifier","src":"3456:3:34"}],"functionName":{"name":"shl","nativeSrc":"3449:3:34","nodeType":"YulIdentifier","src":"3449:3:34"},"nativeSrc":"3449:11:34","nodeType":"YulFunctionCall","src":"3449:11:34"},{"arguments":[{"kind":"number","nativeSrc":"3466:1:34","nodeType":"YulLiteral","src":"3466:1:34","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3462:3:34","nodeType":"YulIdentifier","src":"3462:3:34"},"nativeSrc":"3462:6:34","nodeType":"YulFunctionCall","src":"3462:6:34"}],"functionName":{"name":"shr","nativeSrc":"3445:3:34","nodeType":"YulIdentifier","src":"3445:3:34"},"nativeSrc":"3445:24:34","nodeType":"YulFunctionCall","src":"3445:24:34"}],"functionName":{"name":"not","nativeSrc":"3441:3:34","nodeType":"YulIdentifier","src":"3441:3:34"},"nativeSrc":"3441:29:34","nodeType":"YulFunctionCall","src":"3441:29:34"}],"functionName":{"name":"and","nativeSrc":"3431:3:34","nodeType":"YulIdentifier","src":"3431:3:34"},"nativeSrc":"3431:40:34","nodeType":"YulFunctionCall","src":"3431:40:34"},{"arguments":[{"kind":"number","nativeSrc":"3477:1:34","nodeType":"YulLiteral","src":"3477:1:34","type":"","value":"1"},{"name":"len","nativeSrc":"3480:3:34","nodeType":"YulIdentifier","src":"3480:3:34"}],"functionName":{"name":"shl","nativeSrc":"3473:3:34","nodeType":"YulIdentifier","src":"3473:3:34"},"nativeSrc":"3473:11:34","nodeType":"YulFunctionCall","src":"3473:11:34"}],"functionName":{"name":"or","nativeSrc":"3428:2:34","nodeType":"YulIdentifier","src":"3428:2:34"},"nativeSrc":"3428:57:34","nodeType":"YulFunctionCall","src":"3428:57:34"},"variableNames":[{"name":"used","nativeSrc":"3420:4:34","nodeType":"YulIdentifier","src":"3420:4:34"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"3325:166:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3387:4:34","nodeType":"YulTypedName","src":"3387:4:34","type":""},{"name":"len","nativeSrc":"3393:3:34","nodeType":"YulTypedName","src":"3393:3:34","type":""}],"returnVariables":[{"name":"used","nativeSrc":"3401:4:34","nodeType":"YulTypedName","src":"3401:4:34","type":""}],"src":"3325:166:34"},{"body":{"nativeSrc":"3592:1249:34","nodeType":"YulBlock","src":"3592:1249:34","statements":[{"nativeSrc":"3602:24:34","nodeType":"YulVariableDeclaration","src":"3602:24:34","value":{"arguments":[{"name":"src","nativeSrc":"3622:3:34","nodeType":"YulIdentifier","src":"3622:3:34"}],"functionName":{"name":"mload","nativeSrc":"3616:5:34","nodeType":"YulIdentifier","src":"3616:5:34"},"nativeSrc":"3616:10:34","nodeType":"YulFunctionCall","src":"3616:10:34"},"variables":[{"name":"newLen","nativeSrc":"3606:6:34","nodeType":"YulTypedName","src":"3606:6:34","type":""}]},{"body":{"nativeSrc":"3669:22:34","nodeType":"YulBlock","src":"3669:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3671:16:34","nodeType":"YulIdentifier","src":"3671:16:34"},"nativeSrc":"3671:18:34","nodeType":"YulFunctionCall","src":"3671:18:34"},"nativeSrc":"3671:18:34","nodeType":"YulExpressionStatement","src":"3671:18:34"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"3641:6:34","nodeType":"YulIdentifier","src":"3641:6:34"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3657:2:34","nodeType":"YulLiteral","src":"3657:2:34","type":"","value":"64"},{"kind":"number","nativeSrc":"3661:1:34","nodeType":"YulLiteral","src":"3661:1:34","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3653:3:34","nodeType":"YulIdentifier","src":"3653:3:34"},"nativeSrc":"3653:10:34","nodeType":"YulFunctionCall","src":"3653:10:34"},{"kind":"number","nativeSrc":"3665:1:34","nodeType":"YulLiteral","src":"3665:1:34","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3649:3:34","nodeType":"YulIdentifier","src":"3649:3:34"},"nativeSrc":"3649:18:34","nodeType":"YulFunctionCall","src":"3649:18:34"}],"functionName":{"name":"gt","nativeSrc":"3638:2:34","nodeType":"YulIdentifier","src":"3638:2:34"},"nativeSrc":"3638:30:34","nodeType":"YulFunctionCall","src":"3638:30:34"},"nativeSrc":"3635:56:34","nodeType":"YulIf","src":"3635:56:34"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"3744:4:34","nodeType":"YulIdentifier","src":"3744:4:34"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"3782:4:34","nodeType":"YulIdentifier","src":"3782:4:34"}],"functionName":{"name":"sload","nativeSrc":"3776:5:34","nodeType":"YulIdentifier","src":"3776:5:34"},"nativeSrc":"3776:11:34","nodeType":"YulFunctionCall","src":"3776:11:34"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"3750:25:34","nodeType":"YulIdentifier","src":"3750:25:34"},"nativeSrc":"3750:38:34","nodeType":"YulFunctionCall","src":"3750:38:34"},{"name":"newLen","nativeSrc":"3790:6:34","nodeType":"YulIdentifier","src":"3790:6:34"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"3700:43:34","nodeType":"YulIdentifier","src":"3700:43:34"},"nativeSrc":"3700:97:34","nodeType":"YulFunctionCall","src":"3700:97:34"},"nativeSrc":"3700:97:34","nodeType":"YulExpressionStatement","src":"3700:97:34"},{"nativeSrc":"3806:18:34","nodeType":"YulVariableDeclaration","src":"3806:18:34","value":{"kind":"number","nativeSrc":"3823:1:34","nodeType":"YulLiteral","src":"3823:1:34","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"3810:9:34","nodeType":"YulTypedName","src":"3810:9:34","type":""}]},{"nativeSrc":"3833:23:34","nodeType":"YulVariableDeclaration","src":"3833:23:34","value":{"kind":"number","nativeSrc":"3852:4:34","nodeType":"YulLiteral","src":"3852:4:34","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"3837:11:34","nodeType":"YulTypedName","src":"3837:11:34","type":""}]},{"nativeSrc":"3865:17:34","nodeType":"YulAssignment","src":"3865:17:34","value":{"kind":"number","nativeSrc":"3878:4:34","nodeType":"YulLiteral","src":"3878:4:34","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"3865:9:34","nodeType":"YulIdentifier","src":"3865:9:34"}]},{"cases":[{"body":{"nativeSrc":"3928:656:34","nodeType":"YulBlock","src":"3928:656:34","statements":[{"nativeSrc":"3942:35:34","nodeType":"YulVariableDeclaration","src":"3942:35:34","value":{"arguments":[{"name":"newLen","nativeSrc":"3961:6:34","nodeType":"YulIdentifier","src":"3961:6:34"},{"arguments":[{"kind":"number","nativeSrc":"3973:2:34","nodeType":"YulLiteral","src":"3973:2:34","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3969:3:34","nodeType":"YulIdentifier","src":"3969:3:34"},"nativeSrc":"3969:7:34","nodeType":"YulFunctionCall","src":"3969:7:34"}],"functionName":{"name":"and","nativeSrc":"3957:3:34","nodeType":"YulIdentifier","src":"3957:3:34"},"nativeSrc":"3957:20:34","nodeType":"YulFunctionCall","src":"3957:20:34"},"variables":[{"name":"loopEnd","nativeSrc":"3946:7:34","nodeType":"YulTypedName","src":"3946:7:34","type":""}]},{"nativeSrc":"3990:49:34","nodeType":"YulVariableDeclaration","src":"3990:49:34","value":{"arguments":[{"name":"slot","nativeSrc":"4034:4:34","nodeType":"YulIdentifier","src":"4034:4:34"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"4004:29:34","nodeType":"YulIdentifier","src":"4004:29:34"},"nativeSrc":"4004:35:34","nodeType":"YulFunctionCall","src":"4004:35:34"},"variables":[{"name":"dstPtr","nativeSrc":"3994:6:34","nodeType":"YulTypedName","src":"3994:6:34","type":""}]},{"nativeSrc":"4052:10:34","nodeType":"YulVariableDeclaration","src":"4052:10:34","value":{"kind":"number","nativeSrc":"4061:1:34","nodeType":"YulLiteral","src":"4061:1:34","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4056:1:34","nodeType":"YulTypedName","src":"4056:1:34","type":""}]},{"body":{"nativeSrc":"4139:172:34","nodeType":"YulBlock","src":"4139:172:34","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4164:6:34","nodeType":"YulIdentifier","src":"4164:6:34"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4182:3:34","nodeType":"YulIdentifier","src":"4182:3:34"},{"name":"srcOffset","nativeSrc":"4187:9:34","nodeType":"YulIdentifier","src":"4187:9:34"}],"functionName":{"name":"add","nativeSrc":"4178:3:34","nodeType":"YulIdentifier","src":"4178:3:34"},"nativeSrc":"4178:19:34","nodeType":"YulFunctionCall","src":"4178:19:34"}],"functionName":{"name":"mload","nativeSrc":"4172:5:34","nodeType":"YulIdentifier","src":"4172:5:34"},"nativeSrc":"4172:26:34","nodeType":"YulFunctionCall","src":"4172:26:34"}],"functionName":{"name":"sstore","nativeSrc":"4157:6:34","nodeType":"YulIdentifier","src":"4157:6:34"},"nativeSrc":"4157:42:34","nodeType":"YulFunctionCall","src":"4157:42:34"},"nativeSrc":"4157:42:34","nodeType":"YulExpressionStatement","src":"4157:42:34"},{"nativeSrc":"4216:24:34","nodeType":"YulAssignment","src":"4216:24:34","value":{"arguments":[{"name":"dstPtr","nativeSrc":"4230:6:34","nodeType":"YulIdentifier","src":"4230:6:34"},{"kind":"number","nativeSrc":"4238:1:34","nodeType":"YulLiteral","src":"4238:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4226:3:34","nodeType":"YulIdentifier","src":"4226:3:34"},"nativeSrc":"4226:14:34","nodeType":"YulFunctionCall","src":"4226:14:34"},"variableNames":[{"name":"dstPtr","nativeSrc":"4216:6:34","nodeType":"YulIdentifier","src":"4216:6:34"}]},{"nativeSrc":"4257:40:34","nodeType":"YulAssignment","src":"4257:40:34","value":{"arguments":[{"name":"srcOffset","nativeSrc":"4274:9:34","nodeType":"YulIdentifier","src":"4274:9:34"},{"name":"srcOffset_1","nativeSrc":"4285:11:34","nodeType":"YulIdentifier","src":"4285:11:34"}],"functionName":{"name":"add","nativeSrc":"4270:3:34","nodeType":"YulIdentifier","src":"4270:3:34"},"nativeSrc":"4270:27:34","nodeType":"YulFunctionCall","src":"4270:27:34"},"variableNames":[{"name":"srcOffset","nativeSrc":"4257:9:34","nodeType":"YulIdentifier","src":"4257:9:34"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4086:1:34","nodeType":"YulIdentifier","src":"4086:1:34"},{"name":"loopEnd","nativeSrc":"4089:7:34","nodeType":"YulIdentifier","src":"4089:7:34"}],"functionName":{"name":"lt","nativeSrc":"4083:2:34","nodeType":"YulIdentifier","src":"4083:2:34"},"nativeSrc":"4083:14:34","nodeType":"YulFunctionCall","src":"4083:14:34"},"nativeSrc":"4075:236:34","nodeType":"YulForLoop","post":{"nativeSrc":"4098:28:34","nodeType":"YulBlock","src":"4098:28:34","statements":[{"nativeSrc":"4100:24:34","nodeType":"YulAssignment","src":"4100:24:34","value":{"arguments":[{"name":"i","nativeSrc":"4109:1:34","nodeType":"YulIdentifier","src":"4109:1:34"},{"name":"srcOffset_1","nativeSrc":"4112:11:34","nodeType":"YulIdentifier","src":"4112:11:34"}],"functionName":{"name":"add","nativeSrc":"4105:3:34","nodeType":"YulIdentifier","src":"4105:3:34"},"nativeSrc":"4105:19:34","nodeType":"YulFunctionCall","src":"4105:19:34"},"variableNames":[{"name":"i","nativeSrc":"4100:1:34","nodeType":"YulIdentifier","src":"4100:1:34"}]}]},"pre":{"nativeSrc":"4079:3:34","nodeType":"YulBlock","src":"4079:3:34","statements":[]},"src":"4075:236:34"},{"body":{"nativeSrc":"4359:166:34","nodeType":"YulBlock","src":"4359:166:34","statements":[{"nativeSrc":"4377:43:34","nodeType":"YulVariableDeclaration","src":"4377:43:34","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4404:3:34","nodeType":"YulIdentifier","src":"4404:3:34"},{"name":"srcOffset","nativeSrc":"4409:9:34","nodeType":"YulIdentifier","src":"4409:9:34"}],"functionName":{"name":"add","nativeSrc":"4400:3:34","nodeType":"YulIdentifier","src":"4400:3:34"},"nativeSrc":"4400:19:34","nodeType":"YulFunctionCall","src":"4400:19:34"}],"functionName":{"name":"mload","nativeSrc":"4394:5:34","nodeType":"YulIdentifier","src":"4394:5:34"},"nativeSrc":"4394:26:34","nodeType":"YulFunctionCall","src":"4394:26:34"},"variables":[{"name":"lastValue","nativeSrc":"4381:9:34","nodeType":"YulTypedName","src":"4381:9:34","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4444:6:34","nodeType":"YulIdentifier","src":"4444:6:34"},{"arguments":[{"name":"lastValue","nativeSrc":"4456:9:34","nodeType":"YulIdentifier","src":"4456:9:34"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4483:1:34","nodeType":"YulLiteral","src":"4483:1:34","type":"","value":"3"},{"name":"newLen","nativeSrc":"4486:6:34","nodeType":"YulIdentifier","src":"4486:6:34"}],"functionName":{"name":"shl","nativeSrc":"4479:3:34","nodeType":"YulIdentifier","src":"4479:3:34"},"nativeSrc":"4479:14:34","nodeType":"YulFunctionCall","src":"4479:14:34"},{"kind":"number","nativeSrc":"4495:3:34","nodeType":"YulLiteral","src":"4495:3:34","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"4475:3:34","nodeType":"YulIdentifier","src":"4475:3:34"},"nativeSrc":"4475:24:34","nodeType":"YulFunctionCall","src":"4475:24:34"},{"arguments":[{"kind":"number","nativeSrc":"4505:1:34","nodeType":"YulLiteral","src":"4505:1:34","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"4501:3:34","nodeType":"YulIdentifier","src":"4501:3:34"},"nativeSrc":"4501:6:34","nodeType":"YulFunctionCall","src":"4501:6:34"}],"functionName":{"name":"shr","nativeSrc":"4471:3:34","nodeType":"YulIdentifier","src":"4471:3:34"},"nativeSrc":"4471:37:34","nodeType":"YulFunctionCall","src":"4471:37:34"}],"functionName":{"name":"not","nativeSrc":"4467:3:34","nodeType":"YulIdentifier","src":"4467:3:34"},"nativeSrc":"4467:42:34","nodeType":"YulFunctionCall","src":"4467:42:34"}],"functionName":{"name":"and","nativeSrc":"4452:3:34","nodeType":"YulIdentifier","src":"4452:3:34"},"nativeSrc":"4452:58:34","nodeType":"YulFunctionCall","src":"4452:58:34"}],"functionName":{"name":"sstore","nativeSrc":"4437:6:34","nodeType":"YulIdentifier","src":"4437:6:34"},"nativeSrc":"4437:74:34","nodeType":"YulFunctionCall","src":"4437:74:34"},"nativeSrc":"4437:74:34","nodeType":"YulExpressionStatement","src":"4437:74:34"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"4330:7:34","nodeType":"YulIdentifier","src":"4330:7:34"},{"name":"newLen","nativeSrc":"4339:6:34","nodeType":"YulIdentifier","src":"4339:6:34"}],"functionName":{"name":"lt","nativeSrc":"4327:2:34","nodeType":"YulIdentifier","src":"4327:2:34"},"nativeSrc":"4327:19:34","nodeType":"YulFunctionCall","src":"4327:19:34"},"nativeSrc":"4324:201:34","nodeType":"YulIf","src":"4324:201:34"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4545:4:34","nodeType":"YulIdentifier","src":"4545:4:34"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4559:1:34","nodeType":"YulLiteral","src":"4559:1:34","type":"","value":"1"},{"name":"newLen","nativeSrc":"4562:6:34","nodeType":"YulIdentifier","src":"4562:6:34"}],"functionName":{"name":"shl","nativeSrc":"4555:3:34","nodeType":"YulIdentifier","src":"4555:3:34"},"nativeSrc":"4555:14:34","nodeType":"YulFunctionCall","src":"4555:14:34"},{"kind":"number","nativeSrc":"4571:1:34","nodeType":"YulLiteral","src":"4571:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4551:3:34","nodeType":"YulIdentifier","src":"4551:3:34"},"nativeSrc":"4551:22:34","nodeType":"YulFunctionCall","src":"4551:22:34"}],"functionName":{"name":"sstore","nativeSrc":"4538:6:34","nodeType":"YulIdentifier","src":"4538:6:34"},"nativeSrc":"4538:36:34","nodeType":"YulFunctionCall","src":"4538:36:34"},"nativeSrc":"4538:36:34","nodeType":"YulExpressionStatement","src":"4538:36:34"}]},"nativeSrc":"3921:663:34","nodeType":"YulCase","src":"3921:663:34","value":{"kind":"number","nativeSrc":"3926:1:34","nodeType":"YulLiteral","src":"3926:1:34","type":"","value":"1"}},{"body":{"nativeSrc":"4601:234:34","nodeType":"YulBlock","src":"4601:234:34","statements":[{"nativeSrc":"4615:14:34","nodeType":"YulVariableDeclaration","src":"4615:14:34","value":{"kind":"number","nativeSrc":"4628:1:34","nodeType":"YulLiteral","src":"4628:1:34","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"4619:5:34","nodeType":"YulTypedName","src":"4619:5:34","type":""}]},{"body":{"nativeSrc":"4664:67:34","nodeType":"YulBlock","src":"4664:67:34","statements":[{"nativeSrc":"4682:35:34","nodeType":"YulAssignment","src":"4682:35:34","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4701:3:34","nodeType":"YulIdentifier","src":"4701:3:34"},{"name":"srcOffset","nativeSrc":"4706:9:34","nodeType":"YulIdentifier","src":"4706:9:34"}],"functionName":{"name":"add","nativeSrc":"4697:3:34","nodeType":"YulIdentifier","src":"4697:3:34"},"nativeSrc":"4697:19:34","nodeType":"YulFunctionCall","src":"4697:19:34"}],"functionName":{"name":"mload","nativeSrc":"4691:5:34","nodeType":"YulIdentifier","src":"4691:5:34"},"nativeSrc":"4691:26:34","nodeType":"YulFunctionCall","src":"4691:26:34"},"variableNames":[{"name":"value","nativeSrc":"4682:5:34","nodeType":"YulIdentifier","src":"4682:5:34"}]}]},"condition":{"name":"newLen","nativeSrc":"4645:6:34","nodeType":"YulIdentifier","src":"4645:6:34"},"nativeSrc":"4642:89:34","nodeType":"YulIf","src":"4642:89:34"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4751:4:34","nodeType":"YulIdentifier","src":"4751:4:34"},{"arguments":[{"name":"value","nativeSrc":"4810:5:34","nodeType":"YulIdentifier","src":"4810:5:34"},{"name":"newLen","nativeSrc":"4817:6:34","nodeType":"YulIdentifier","src":"4817:6:34"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"4757:52:34","nodeType":"YulIdentifier","src":"4757:52:34"},"nativeSrc":"4757:67:34","nodeType":"YulFunctionCall","src":"4757:67:34"}],"functionName":{"name":"sstore","nativeSrc":"4744:6:34","nodeType":"YulIdentifier","src":"4744:6:34"},"nativeSrc":"4744:81:34","nodeType":"YulFunctionCall","src":"4744:81:34"},"nativeSrc":"4744:81:34","nodeType":"YulExpressionStatement","src":"4744:81:34"}]},"nativeSrc":"4593:242:34","nodeType":"YulCase","src":"4593:242:34","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"3901:6:34","nodeType":"YulIdentifier","src":"3901:6:34"},{"kind":"number","nativeSrc":"3909:2:34","nodeType":"YulLiteral","src":"3909:2:34","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"3898:2:34","nodeType":"YulIdentifier","src":"3898:2:34"},"nativeSrc":"3898:14:34","nodeType":"YulFunctionCall","src":"3898:14:34"},"nativeSrc":"3891:944:34","nodeType":"YulSwitch","src":"3891:944:34"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"3496:1345:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3577:4:34","nodeType":"YulTypedName","src":"3577:4:34","type":""},{"name":"src","nativeSrc":"3583:3:34","nodeType":"YulTypedName","src":"3583:3:34","type":""}],"src":"3496:1345:34"},{"body":{"nativeSrc":"5059:276:34","nodeType":"YulBlock","src":"5059:276:34","statements":[{"nativeSrc":"5069:27:34","nodeType":"YulAssignment","src":"5069:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"5081:9:34","nodeType":"YulIdentifier","src":"5081:9:34"},{"kind":"number","nativeSrc":"5092:3:34","nodeType":"YulLiteral","src":"5092:3:34","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"5077:3:34","nodeType":"YulIdentifier","src":"5077:3:34"},"nativeSrc":"5077:19:34","nodeType":"YulFunctionCall","src":"5077:19:34"},"variableNames":[{"name":"tail","nativeSrc":"5069:4:34","nodeType":"YulIdentifier","src":"5069:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5112:9:34","nodeType":"YulIdentifier","src":"5112:9:34"},{"name":"value0","nativeSrc":"5123:6:34","nodeType":"YulIdentifier","src":"5123:6:34"}],"functionName":{"name":"mstore","nativeSrc":"5105:6:34","nodeType":"YulIdentifier","src":"5105:6:34"},"nativeSrc":"5105:25:34","nodeType":"YulFunctionCall","src":"5105:25:34"},"nativeSrc":"5105:25:34","nodeType":"YulExpressionStatement","src":"5105:25:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5150:9:34","nodeType":"YulIdentifier","src":"5150:9:34"},{"kind":"number","nativeSrc":"5161:2:34","nodeType":"YulLiteral","src":"5161:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5146:3:34","nodeType":"YulIdentifier","src":"5146:3:34"},"nativeSrc":"5146:18:34","nodeType":"YulFunctionCall","src":"5146:18:34"},{"name":"value1","nativeSrc":"5166:6:34","nodeType":"YulIdentifier","src":"5166:6:34"}],"functionName":{"name":"mstore","nativeSrc":"5139:6:34","nodeType":"YulIdentifier","src":"5139:6:34"},"nativeSrc":"5139:34:34","nodeType":"YulFunctionCall","src":"5139:34:34"},"nativeSrc":"5139:34:34","nodeType":"YulExpressionStatement","src":"5139:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5193:9:34","nodeType":"YulIdentifier","src":"5193:9:34"},{"kind":"number","nativeSrc":"5204:2:34","nodeType":"YulLiteral","src":"5204:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5189:3:34","nodeType":"YulIdentifier","src":"5189:3:34"},"nativeSrc":"5189:18:34","nodeType":"YulFunctionCall","src":"5189:18:34"},{"name":"value2","nativeSrc":"5209:6:34","nodeType":"YulIdentifier","src":"5209:6:34"}],"functionName":{"name":"mstore","nativeSrc":"5182:6:34","nodeType":"YulIdentifier","src":"5182:6:34"},"nativeSrc":"5182:34:34","nodeType":"YulFunctionCall","src":"5182:34:34"},"nativeSrc":"5182:34:34","nodeType":"YulExpressionStatement","src":"5182:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5236:9:34","nodeType":"YulIdentifier","src":"5236:9:34"},{"kind":"number","nativeSrc":"5247:2:34","nodeType":"YulLiteral","src":"5247:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5232:3:34","nodeType":"YulIdentifier","src":"5232:3:34"},"nativeSrc":"5232:18:34","nodeType":"YulFunctionCall","src":"5232:18:34"},{"name":"value3","nativeSrc":"5252:6:34","nodeType":"YulIdentifier","src":"5252:6:34"}],"functionName":{"name":"mstore","nativeSrc":"5225:6:34","nodeType":"YulIdentifier","src":"5225:6:34"},"nativeSrc":"5225:34:34","nodeType":"YulFunctionCall","src":"5225:34:34"},"nativeSrc":"5225:34:34","nodeType":"YulExpressionStatement","src":"5225:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5279:9:34","nodeType":"YulIdentifier","src":"5279:9:34"},{"kind":"number","nativeSrc":"5290:3:34","nodeType":"YulLiteral","src":"5290:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5275:3:34","nodeType":"YulIdentifier","src":"5275:3:34"},"nativeSrc":"5275:19:34","nodeType":"YulFunctionCall","src":"5275:19:34"},{"arguments":[{"name":"value4","nativeSrc":"5300:6:34","nodeType":"YulIdentifier","src":"5300:6:34"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5316:3:34","nodeType":"YulLiteral","src":"5316:3:34","type":"","value":"160"},{"kind":"number","nativeSrc":"5321:1:34","nodeType":"YulLiteral","src":"5321:1:34","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"5312:3:34","nodeType":"YulIdentifier","src":"5312:3:34"},"nativeSrc":"5312:11:34","nodeType":"YulFunctionCall","src":"5312:11:34"},{"kind":"number","nativeSrc":"5325:1:34","nodeType":"YulLiteral","src":"5325:1:34","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"5308:3:34","nodeType":"YulIdentifier","src":"5308:3:34"},"nativeSrc":"5308:19:34","nodeType":"YulFunctionCall","src":"5308:19:34"}],"functionName":{"name":"and","nativeSrc":"5296:3:34","nodeType":"YulIdentifier","src":"5296:3:34"},"nativeSrc":"5296:32:34","nodeType":"YulFunctionCall","src":"5296:32:34"}],"functionName":{"name":"mstore","nativeSrc":"5268:6:34","nodeType":"YulIdentifier","src":"5268:6:34"},"nativeSrc":"5268:61:34","nodeType":"YulFunctionCall","src":"5268:61:34"},"nativeSrc":"5268:61:34","nodeType":"YulExpressionStatement","src":"5268:61:34"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nativeSrc":"4846:489:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4996:9:34","nodeType":"YulTypedName","src":"4996:9:34","type":""},{"name":"value4","nativeSrc":"5007:6:34","nodeType":"YulTypedName","src":"5007:6:34","type":""},{"name":"value3","nativeSrc":"5015:6:34","nodeType":"YulTypedName","src":"5015:6:34","type":""},{"name":"value2","nativeSrc":"5023:6:34","nodeType":"YulTypedName","src":"5023:6:34","type":""},{"name":"value1","nativeSrc":"5031:6:34","nodeType":"YulTypedName","src":"5031:6:34","type":""},{"name":"value0","nativeSrc":"5039:6:34","nodeType":"YulTypedName","src":"5039:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5050:4:34","nodeType":"YulTypedName","src":"5050:4:34","type":""}],"src":"4846:489:34"},{"body":{"nativeSrc":"5461:427:34","nodeType":"YulBlock","src":"5461:427:34","statements":[{"nativeSrc":"5471:12:34","nodeType":"YulVariableDeclaration","src":"5471:12:34","value":{"kind":"number","nativeSrc":"5481:2:34","nodeType":"YulLiteral","src":"5481:2:34","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"5475:2:34","nodeType":"YulTypedName","src":"5475:2:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5499:9:34","nodeType":"YulIdentifier","src":"5499:9:34"},{"kind":"number","nativeSrc":"5510:2:34","nodeType":"YulLiteral","src":"5510:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5492:6:34","nodeType":"YulIdentifier","src":"5492:6:34"},"nativeSrc":"5492:21:34","nodeType":"YulFunctionCall","src":"5492:21:34"},"nativeSrc":"5492:21:34","nodeType":"YulExpressionStatement","src":"5492:21:34"},{"nativeSrc":"5522:27:34","nodeType":"YulVariableDeclaration","src":"5522:27:34","value":{"arguments":[{"name":"value0","nativeSrc":"5542:6:34","nodeType":"YulIdentifier","src":"5542:6:34"}],"functionName":{"name":"mload","nativeSrc":"5536:5:34","nodeType":"YulIdentifier","src":"5536:5:34"},"nativeSrc":"5536:13:34","nodeType":"YulFunctionCall","src":"5536:13:34"},"variables":[{"name":"length","nativeSrc":"5526:6:34","nodeType":"YulTypedName","src":"5526:6:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5569:9:34","nodeType":"YulIdentifier","src":"5569:9:34"},{"kind":"number","nativeSrc":"5580:2:34","nodeType":"YulLiteral","src":"5580:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5565:3:34","nodeType":"YulIdentifier","src":"5565:3:34"},"nativeSrc":"5565:18:34","nodeType":"YulFunctionCall","src":"5565:18:34"},{"name":"length","nativeSrc":"5585:6:34","nodeType":"YulIdentifier","src":"5585:6:34"}],"functionName":{"name":"mstore","nativeSrc":"5558:6:34","nodeType":"YulIdentifier","src":"5558:6:34"},"nativeSrc":"5558:34:34","nodeType":"YulFunctionCall","src":"5558:34:34"},"nativeSrc":"5558:34:34","nodeType":"YulExpressionStatement","src":"5558:34:34"},{"nativeSrc":"5601:10:34","nodeType":"YulVariableDeclaration","src":"5601:10:34","value":{"kind":"number","nativeSrc":"5610:1:34","nodeType":"YulLiteral","src":"5610:1:34","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"5605:1:34","nodeType":"YulTypedName","src":"5605:1:34","type":""}]},{"body":{"nativeSrc":"5670:90:34","nodeType":"YulBlock","src":"5670:90:34","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5699:9:34","nodeType":"YulIdentifier","src":"5699:9:34"},{"name":"i","nativeSrc":"5710:1:34","nodeType":"YulIdentifier","src":"5710:1:34"}],"functionName":{"name":"add","nativeSrc":"5695:3:34","nodeType":"YulIdentifier","src":"5695:3:34"},"nativeSrc":"5695:17:34","nodeType":"YulFunctionCall","src":"5695:17:34"},{"kind":"number","nativeSrc":"5714:2:34","nodeType":"YulLiteral","src":"5714:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5691:3:34","nodeType":"YulIdentifier","src":"5691:3:34"},"nativeSrc":"5691:26:34","nodeType":"YulFunctionCall","src":"5691:26:34"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5733:6:34","nodeType":"YulIdentifier","src":"5733:6:34"},{"name":"i","nativeSrc":"5741:1:34","nodeType":"YulIdentifier","src":"5741:1:34"}],"functionName":{"name":"add","nativeSrc":"5729:3:34","nodeType":"YulIdentifier","src":"5729:3:34"},"nativeSrc":"5729:14:34","nodeType":"YulFunctionCall","src":"5729:14:34"},{"name":"_1","nativeSrc":"5745:2:34","nodeType":"YulIdentifier","src":"5745:2:34"}],"functionName":{"name":"add","nativeSrc":"5725:3:34","nodeType":"YulIdentifier","src":"5725:3:34"},"nativeSrc":"5725:23:34","nodeType":"YulFunctionCall","src":"5725:23:34"}],"functionName":{"name":"mload","nativeSrc":"5719:5:34","nodeType":"YulIdentifier","src":"5719:5:34"},"nativeSrc":"5719:30:34","nodeType":"YulFunctionCall","src":"5719:30:34"}],"functionName":{"name":"mstore","nativeSrc":"5684:6:34","nodeType":"YulIdentifier","src":"5684:6:34"},"nativeSrc":"5684:66:34","nodeType":"YulFunctionCall","src":"5684:66:34"},"nativeSrc":"5684:66:34","nodeType":"YulExpressionStatement","src":"5684:66:34"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"5631:1:34","nodeType":"YulIdentifier","src":"5631:1:34"},{"name":"length","nativeSrc":"5634:6:34","nodeType":"YulIdentifier","src":"5634:6:34"}],"functionName":{"name":"lt","nativeSrc":"5628:2:34","nodeType":"YulIdentifier","src":"5628:2:34"},"nativeSrc":"5628:13:34","nodeType":"YulFunctionCall","src":"5628:13:34"},"nativeSrc":"5620:140:34","nodeType":"YulForLoop","post":{"nativeSrc":"5642:19:34","nodeType":"YulBlock","src":"5642:19:34","statements":[{"nativeSrc":"5644:15:34","nodeType":"YulAssignment","src":"5644:15:34","value":{"arguments":[{"name":"i","nativeSrc":"5653:1:34","nodeType":"YulIdentifier","src":"5653:1:34"},{"name":"_1","nativeSrc":"5656:2:34","nodeType":"YulIdentifier","src":"5656:2:34"}],"functionName":{"name":"add","nativeSrc":"5649:3:34","nodeType":"YulIdentifier","src":"5649:3:34"},"nativeSrc":"5649:10:34","nodeType":"YulFunctionCall","src":"5649:10:34"},"variableNames":[{"name":"i","nativeSrc":"5644:1:34","nodeType":"YulIdentifier","src":"5644:1:34"}]}]},"pre":{"nativeSrc":"5624:3:34","nodeType":"YulBlock","src":"5624:3:34","statements":[]},"src":"5620:140:34"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5784:9:34","nodeType":"YulIdentifier","src":"5784:9:34"},{"name":"length","nativeSrc":"5795:6:34","nodeType":"YulIdentifier","src":"5795:6:34"}],"functionName":{"name":"add","nativeSrc":"5780:3:34","nodeType":"YulIdentifier","src":"5780:3:34"},"nativeSrc":"5780:22:34","nodeType":"YulFunctionCall","src":"5780:22:34"},{"kind":"number","nativeSrc":"5804:2:34","nodeType":"YulLiteral","src":"5804:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5776:3:34","nodeType":"YulIdentifier","src":"5776:3:34"},"nativeSrc":"5776:31:34","nodeType":"YulFunctionCall","src":"5776:31:34"},{"kind":"number","nativeSrc":"5809:1:34","nodeType":"YulLiteral","src":"5809:1:34","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5769:6:34","nodeType":"YulIdentifier","src":"5769:6:34"},"nativeSrc":"5769:42:34","nodeType":"YulFunctionCall","src":"5769:42:34"},"nativeSrc":"5769:42:34","nodeType":"YulExpressionStatement","src":"5769:42:34"},{"nativeSrc":"5820:62:34","nodeType":"YulAssignment","src":"5820:62:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5836:9:34","nodeType":"YulIdentifier","src":"5836:9:34"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5855:6:34","nodeType":"YulIdentifier","src":"5855:6:34"},{"kind":"number","nativeSrc":"5863:2:34","nodeType":"YulLiteral","src":"5863:2:34","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5851:3:34","nodeType":"YulIdentifier","src":"5851:3:34"},"nativeSrc":"5851:15:34","nodeType":"YulFunctionCall","src":"5851:15:34"},{"arguments":[{"kind":"number","nativeSrc":"5872:2:34","nodeType":"YulLiteral","src":"5872:2:34","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5868:3:34","nodeType":"YulIdentifier","src":"5868:3:34"},"nativeSrc":"5868:7:34","nodeType":"YulFunctionCall","src":"5868:7:34"}],"functionName":{"name":"and","nativeSrc":"5847:3:34","nodeType":"YulIdentifier","src":"5847:3:34"},"nativeSrc":"5847:29:34","nodeType":"YulFunctionCall","src":"5847:29:34"}],"functionName":{"name":"add","nativeSrc":"5832:3:34","nodeType":"YulIdentifier","src":"5832:3:34"},"nativeSrc":"5832:45:34","nodeType":"YulFunctionCall","src":"5832:45:34"},{"kind":"number","nativeSrc":"5879:2:34","nodeType":"YulLiteral","src":"5879:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5828:3:34","nodeType":"YulIdentifier","src":"5828:3:34"},"nativeSrc":"5828:54:34","nodeType":"YulFunctionCall","src":"5828:54:34"},"variableNames":[{"name":"tail","nativeSrc":"5820:4:34","nodeType":"YulIdentifier","src":"5820:4:34"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5340:548:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5430:9:34","nodeType":"YulTypedName","src":"5430:9:34","type":""},{"name":"value0","nativeSrc":"5441:6:34","nodeType":"YulTypedName","src":"5441:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5452:4:34","nodeType":"YulTypedName","src":"5452:4:34","type":""}],"src":"5340:548:34"},{"body":{"nativeSrc":"5987:203:34","nodeType":"YulBlock","src":"5987:203:34","statements":[{"nativeSrc":"5997:26:34","nodeType":"YulVariableDeclaration","src":"5997:26:34","value":{"arguments":[{"name":"array","nativeSrc":"6017:5:34","nodeType":"YulIdentifier","src":"6017:5:34"}],"functionName":{"name":"mload","nativeSrc":"6011:5:34","nodeType":"YulIdentifier","src":"6011:5:34"},"nativeSrc":"6011:12:34","nodeType":"YulFunctionCall","src":"6011:12:34"},"variables":[{"name":"length","nativeSrc":"6001:6:34","nodeType":"YulTypedName","src":"6001:6:34","type":""}]},{"nativeSrc":"6032:32:34","nodeType":"YulAssignment","src":"6032:32:34","value":{"arguments":[{"arguments":[{"name":"array","nativeSrc":"6051:5:34","nodeType":"YulIdentifier","src":"6051:5:34"},{"kind":"number","nativeSrc":"6058:4:34","nodeType":"YulLiteral","src":"6058:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6047:3:34","nodeType":"YulIdentifier","src":"6047:3:34"},"nativeSrc":"6047:16:34","nodeType":"YulFunctionCall","src":"6047:16:34"}],"functionName":{"name":"mload","nativeSrc":"6041:5:34","nodeType":"YulIdentifier","src":"6041:5:34"},"nativeSrc":"6041:23:34","nodeType":"YulFunctionCall","src":"6041:23:34"},"variableNames":[{"name":"value","nativeSrc":"6032:5:34","nodeType":"YulIdentifier","src":"6032:5:34"}]},{"body":{"nativeSrc":"6101:83:34","nodeType":"YulBlock","src":"6101:83:34","statements":[{"nativeSrc":"6115:59:34","nodeType":"YulAssignment","src":"6115:59:34","value":{"arguments":[{"name":"value","nativeSrc":"6128:5:34","nodeType":"YulIdentifier","src":"6128:5:34"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6143:1:34","nodeType":"YulLiteral","src":"6143:1:34","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"6150:4:34","nodeType":"YulLiteral","src":"6150:4:34","type":"","value":"0x20"},{"name":"length","nativeSrc":"6156:6:34","nodeType":"YulIdentifier","src":"6156:6:34"}],"functionName":{"name":"sub","nativeSrc":"6146:3:34","nodeType":"YulIdentifier","src":"6146:3:34"},"nativeSrc":"6146:17:34","nodeType":"YulFunctionCall","src":"6146:17:34"}],"functionName":{"name":"shl","nativeSrc":"6139:3:34","nodeType":"YulIdentifier","src":"6139:3:34"},"nativeSrc":"6139:25:34","nodeType":"YulFunctionCall","src":"6139:25:34"},{"arguments":[{"kind":"number","nativeSrc":"6170:1:34","nodeType":"YulLiteral","src":"6170:1:34","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"6166:3:34","nodeType":"YulIdentifier","src":"6166:3:34"},"nativeSrc":"6166:6:34","nodeType":"YulFunctionCall","src":"6166:6:34"}],"functionName":{"name":"shl","nativeSrc":"6135:3:34","nodeType":"YulIdentifier","src":"6135:3:34"},"nativeSrc":"6135:38:34","nodeType":"YulFunctionCall","src":"6135:38:34"}],"functionName":{"name":"and","nativeSrc":"6124:3:34","nodeType":"YulIdentifier","src":"6124:3:34"},"nativeSrc":"6124:50:34","nodeType":"YulFunctionCall","src":"6124:50:34"},"variableNames":[{"name":"value","nativeSrc":"6115:5:34","nodeType":"YulIdentifier","src":"6115:5:34"}]}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6079:6:34","nodeType":"YulIdentifier","src":"6079:6:34"},{"kind":"number","nativeSrc":"6087:4:34","nodeType":"YulLiteral","src":"6087:4:34","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"6076:2:34","nodeType":"YulIdentifier","src":"6076:2:34"},"nativeSrc":"6076:16:34","nodeType":"YulFunctionCall","src":"6076:16:34"},"nativeSrc":"6073:111:34","nodeType":"YulIf","src":"6073:111:34"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nativeSrc":"5893:297:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"5967:5:34","nodeType":"YulTypedName","src":"5967:5:34","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5977:5:34","nodeType":"YulTypedName","src":"5977:5:34","type":""}],"src":"5893:297:34"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_contract_IAdapter_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_bytes4_fromMemory(offset) -> value\n    {\n        value := mload(offset)\n        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_array$_t_contract$_IAdapter_$6490_$dyn_memory_ptrt_bytes4t_uint256t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let offset := mload(headStart)\n        let _1 := sub(shl(64, 1), 1)\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := mload(_2)\n        let _4 := 0x20\n        if gt(_3, _1) { panic_error_0x41() }\n        let _5 := shl(5, _3)\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        let dst := memPtr\n        mstore(memPtr, _3)\n        dst := add(memPtr, _4)\n        let srcEnd := add(add(_2, _5), _4)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_2, _4)\n        for { } lt(src, srcEnd) { src := add(src, _4) }\n        {\n            mstore(dst, abi_decode_contract_IAdapter_fromMemory(src))\n            dst := add(dst, _4)\n        }\n        value0 := memPtr\n        value1 := abi_decode_bytes4_fromMemory(add(headStart, _4))\n        value2 := mload(add(headStart, 64))\n        value3 := abi_decode_contract_IAdapter_fromMemory(add(headStart, 96))\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_bytes4_fromMemory(headStart)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n        }\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value\n    {\n        let length := mload(array)\n        value := mload(add(array, 0x20))\n        if lt(length, 0x20)\n        {\n            value := and(value, shl(shl(3, sub(0x20, length)), not(0)))\n        }\n    }\n}","id":34,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101a06040523480156200001257600080fd5b5060405162003b0a38038062003b0a8339810160408190526200003591620004ae565b604051806040016040528060048152602001630535741560e41b815250604051806040016040528060038152602001621a171960e91b8152506200008862000082620002d560201b60201c565b620002d9565b62000095826002620002f7565b61012052620000a6816003620002f7565b61014052815160208084019190912060e052815190820120610100524660a0526200012360e051610100516040805160008051602062003aea83398151915260208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c05261271082106200014f576040516352dadcf960e01b815260040160405180910390fd5b6001600160a01b0381166200017757604051636b8df36360e01b815260040160405180910390fd5b83516000036200019a57604051632cb13a8760e21b815260040160405180910390fd5b620001a462000330565b61016052835160005b818110156200029957858181518110620001cb57620001cb620005b0565b602002602001015160096000888481518110620001ec57620001ec620005b0565b60200260200101516001600160a01b031663a64d0cd46040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000232573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002589190620005c6565b6001600160e01b0319168152602081019190915260400160002080546001600160a01b0319166001600160a01b0392909216919091179055600101620001ad565b50506001600160e01b03199290921661018052600755600880546001600160a01b0319166001600160a01b0390921691909117905550620007be565b3390565b600180546001600160a01b0319169055620002f481620003c6565b50565b600060208351101562000317576200030f8362000416565b90506200032a565b816200032484826200067c565b5060ff90505b92915050565b600060c0516001600160a01b0316306001600160a01b031614801562000357575060a05146145b1562000364575060805190565b620003c160e051610100516040805160008051602062003aea83398151915260208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080829050601f815111156200044d578260405163305a27a960e01b815260040162000444919062000748565b60405180910390fd5b80516200045a8262000799565b179392505050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200049057600080fd5b919050565b80516001600160e01b0319811681146200049057600080fd5b60008060008060808587031215620004c557600080fd5b84516001600160401b0380821115620004dd57600080fd5b818701915087601f830112620004f257600080fd5b815160208282111562000509576200050962000462565b8160051b604051601f19603f8301168101818110868211171562000531576200053162000462565b60405292835281830193508481018201928b8411156200055057600080fd5b948201945b838610156200057957620005698662000478565b8552948201949382019362000555565b98506200058a905089820162000495565b96505050505060408501519150620005a56060860162000478565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b600060208284031215620005d957600080fd5b620005e48262000495565b9392505050565b600181811c908216806200060057607f821691505b6020821081036200062157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000677576000816000526020600020601f850160051c81016020861015620006525750805b601f850160051c820191505b8181101562000673578281556001016200065e565b5050505b505050565b81516001600160401b0381111562000698576200069862000462565b620006b081620006a98454620005eb565b8462000627565b602080601f831160018114620006e85760008415620006cf5750858301515b600019600386901b1c1916600185901b17855562000673565b600085815260208120601f198616915b828110156200071957888601518255948401946001909101908401620006f8565b5085821015620007385787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020808352835180602085015260005b8181101562000778578581018301518582016040015282016200075a565b506000604082860101526040601f19601f8301168501019250505092915050565b80516020808301519190811015620006215760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516132ad6200083d600039600081816101ad01528181610e420152611da70152600061024201526000611a4d01526000611a2201526000612a9601526000612a6e015260006129c9015260006129f301526000612a1d01526132ad6000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c80637ce78525116100ee578063b0e21e8a11610097578063b918161111610071578063b918161114610454578063cbf7c6c31461048a578063e30c3978146104aa578063f2fde38b146104c857600080fd5b8063b0e21e8a14610430578063b6549f7514610439578063b6a5d7de1461044157600080fd5b80639e93ad8e116100c85780639e93ad8e146103cb578063acb8cc49146103d4578063b0dd49431461041057600080fd5b80637ce785251461037f57806384b0196e146103925780638da5cb5b146103ad57600080fd5b806349b8a93211610150578063787dce3d1161012a578063787dce3d1461031b578063796f077b1461032e57806379ba50971461037757600080fd5b806349b8a932146102985780636e038752146102b8578063715018a61461031357600080fd5b80633644e515116101815780633644e5151461023d5780633c64191014610272578063485421051461028557600080fd5b806306a6ea74146101a85780631647795e146102055780632e34082314610228575b600080fd5b6101cf7f000000000000000000000000000000000000000000000000000000000000000081565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b610218610213366004612c3e565b6104db565b60405190151581526020016101fc565b61023b610236366004612c6a565b610540565b005b6102647f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101fc565b61023b610280366004612cdf565b6105ad565b61023b610293366004612d11565b6105e9565b6102ab6102a6366004612d51565b610a2c565b6040516101fc9190612d88565b6102ee6102c6366004612dfc565b60096020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101fc565b61023b611809565b61023b610329366004612cdf565b61181d565b61036a6040518060400160405280600481526020017f535741500000000000000000000000000000000000000000000000000000000081525081565b6040516101fc9190612e85565b61023b61189b565b61023b61038d366004612e98565b611950565b61039a611a14565b6040516101fc9796959493929190612eb5565b60005473ffffffffffffffffffffffffffffffffffffffff166102ee565b61026461271081565b61036a6040518060400160405280600381526020017f342e32000000000000000000000000000000000000000000000000000000000081525081565b61026461041e366004612e98565b60066020526000908152604090205481565b61026460075481565b61023b611ab9565b61023b61044f366004612e98565b611b36565b6102ee610462366004612e98565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6008546102ee9073ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff166102ee565b61023b6104d6366004612e98565b611bfe565b6000806104ea61010084612fd5565b905060006104fa61010085612fe9565b73ffffffffffffffffffffffffffffffffffffffff8616600090815260046020908152604080832095835294905292909220546001921c82169091149150505b92915050565b60005b818110156105a857600083838381811061055f5761055f612ffd565b9050602002013590506105723382611cae565b604051339082907f8dd3c361eb2366ff27c2db0eb07b9261f1d052570742ab8c9a0c326f37aa576d90600090a350600101610543565b505050565b336000818152600660205260408082208490555183917f863123978d9b13946753a916c935c0688a01802440d3ffc668d04d2720c4e11091a350565b6105f281611d84565b6000610605610100830160e08401612e98565b73ffffffffffffffffffffffffffffffffffffffff161415801561064f575033610636610100830160e08401612e98565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610686576040517fa7202ef600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106cf3361069a6060840160408501612e98565b6101608401356101408501356106b861012087016101008801612e98565b6106ca61014088016101208901612dfc565b611fed565b61070d6106e26060830160408401612e98565b8460c084013560a08501356106fd6080870160608801612e98565b6106ca60a0880160808901612dfc565b60006107216101a083016101808401612e98565b73ffffffffffffffffffffffffffffffffffffffff161461077057610770336107526101a084016101808501612e98565b6101a08401356101408501356106b861012087016101008801612e98565b600754600090612710906107899061016085013561302c565b6107939190612fd5565b905080156107e5576008546107e590339073ffffffffffffffffffffffffffffffffffffffff16836101408601356107d361012088016101008901612e98565b6106ca61014089016101208a01612dfc565b6107fd6107f86080840160608501612e98565b6121be565b15610933576000806108156080850160608601612e98565b6040517f2a55205a00000000000000000000000000000000000000000000000000000000815260a08601356004820152610160860135602482015273ffffffffffffffffffffffffffffffffffffffff9190911690632a55205a906044016040805180830381865afa15801561088f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b39190613043565b909250905080156109305784811115610900576040517f9c08743a000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b61093033838361014088013561091e6101208a016101008b01612e98565b6106ca6101408b016101208c01612dfc565b50505b336109446060840160408501612e98565b73ffffffffffffffffffffffffffffffffffffffff1683357f182e847dc18073123e8aa17e204b9e3874caf71387e52fe3083ffb98716d3d6b60c086013560a08701356109976080890160608a01612e98565b6101608901356101408a01356109b56101208c016101008d01612e98565b6109c76101a08d016101808e01612e98565b60408051978852602088019690965273ffffffffffffffffffffffffffffffffffffffff9485169587019590955260608601929092526080850152811660a08401521660c08201526101a087013560e08201526101000160405180910390a450505050565b60408051600f808252610200820190925260609160009190602082016101e080368337019050509050600080610a686060860160408701612e98565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600560205260409020549192501615610ac15773ffffffffffffffffffffffffffffffffffffffff908116600090815260056020526040902054165b610b4781610ace87612296565b6101e088018035906102008a013590610aeb906101c08c01613071565b604051602001610b3393929190928352602083019190915260f81b7fff0000000000000000000000000000000000000000000000000000000000000016604082015260410190565b604051602081830303815290604052612537565b610b9a577f556e617574686f72697a656400000000000000000000000000000000000000008383610b7781613094565b945081518110610b8957610b89612ffd565b602002602001018181525050610c4f565b610ba58186356104db565b15610bd6577f4e6f6e6365416c726561647955736564000000000000000000000000000000008383610b7781613094565b73ffffffffffffffffffffffffffffffffffffffff811660009081526006602052604090205485351015610c4f577f4e6f6e6365546f6f4c6f770000000000000000000000000000000000000000008383610c3081613094565b945081518110610c4257610c42612ffd565b6020026020010181815250505b4285602001351015610ca6577f4f726465724578706972656400000000000000000000000000000000000000008383610c8781613094565b945081518110610c9957610c99612ffd565b6020026020010181815250505b6000610cb9610100870160e08801612e98565b73ffffffffffffffffffffffffffffffffffffffff1614158015610d19575073ffffffffffffffffffffffffffffffffffffffff8616610d00610100870160e08801612e98565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610d69577f53656e646572496e76616c6964000000000000000000000000000000000000008383610d4a81613094565b945081518110610d5c57610d5c612ffd565b6020026020010181815250505b6000600981610d8061014089016101208a01612dfc565b7fffffffff0000000000000000000000000000000000000000000000000000000016815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16905080610e1f577f53656e646572546f6b656e4b696e64556e6b6e6f776e000000000000000000008484610dfc81613094565b955081518110610e0e57610e0e612ffd565b602002602001018181525050611491565b7fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000016610e7461014088016101208901612dfc565b7fffffffff000000000000000000000000000000000000000000000000000000001614610ec7577f53656e646572546f6b656e496e76616c696400000000000000000000000000008484610dfc81613094565b60075460009061271090610ee0906101608a013561302c565b610eea9190612fd5565b905060006101a0880135610f03836101608b01356130cc565b610f0d91906130cc565b9050610f226107f860808a0160608b01612e98565b15610fe9576000610f3960808a0160608b01612e98565b6040517f2a55205a00000000000000000000000000000000000000000000000000000000815260a08b013560048201526101608b0135602482015273ffffffffffffffffffffffffffffffffffffffff9190911690632a55205a906044016040805180830381865afa158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190613043565b9150610fe5905081836130cc565b9150505b6040805160a0810190915273ffffffffffffffffffffffffffffffffffffffff8a168152600090602081016110266101208c016101008d01612e98565b73ffffffffffffffffffffffffffffffffffffffff1681526020016110536101408c016101208d01612dfc565b7fffffffff000000000000000000000000000000000000000000000000000000001681526101408b01356020820152604001839052905073ffffffffffffffffffffffffffffffffffffffff8a161561130257604080517f3170f63d000000000000000000000000000000000000000000000000000000008152825173ffffffffffffffffffffffffffffffffffffffff9081166004830152602084015181166024830152918301517fffffffff00000000000000000000000000000000000000000000000000000000166044820152606083015160648201526080830151608482015290851690633170f63d9060a401602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906130df565b6111d4577f53656e646572416c6c6f77616e63654c6f77000000000000000000000000000087876111b581613094565b9850815181106111c7576111c7612ffd565b6020026020010181815250505b604080517fd1190df9000000000000000000000000000000000000000000000000000000008152825173ffffffffffffffffffffffffffffffffffffffff9081166004830152602084015181166024830152918301517fffffffff0000000000000000000000000000000000000000000000000000000016604482015260608301516064820152608083015160848201529085169063d1190df99060a401602060405180830381865afa15801561128f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b391906130df565b611302577f53656e64657242616c616e63654c6f770000000000000000000000000000000087876112e381613094565b9850815181106112f5576112f5612ffd565b6020026020010181815250505b604080517f40944de9000000000000000000000000000000000000000000000000000000008152825173ffffffffffffffffffffffffffffffffffffffff9081166004830152602084015181166024830152918301517fffffffff000000000000000000000000000000000000000000000000000000001660448201526060830151606482015260808301516084820152908516906340944de99060a401602060405180830381865afa1580156113bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e191906130df565b611430577f416d6f756e744f724944496e76616c6964000000000000000000000000000000878761141181613094565b98508151811061142357611423612ffd565b6020026020010181815250505b6101a08901356101608a0135101561148d577f416666696c69617465416d6f756e74496e76616c696400000000000000000000878761146e81613094565b98508151811061148057611480612ffd565b6020026020010181815250505b5050505b60006009816114a660a08a0160808b01612dfc565b7fffffffff0000000000000000000000000000000000000000000000000000000016815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16905080611545577f5369676e6572546f6b656e4b696e64556e6b6e6f776e00000000000000000000858561152281613094565b96508151811061153457611534612ffd565b6020026020010181815250506117f1565b604080517f3170f63d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831691633170f63d91611599918b0190600401613183565b602060405180830381865afa1580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115da91906130df565b611629577f5369676e6572416c6c6f77616e63654c6f770000000000000000000000000000858561160a81613094565b96508151811061161c5761161c612ffd565b6020026020010181815250505b604080517fd1190df900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169163d1190df99161167d918b0190600401613183565b602060405180830381865afa15801561169a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116be91906130df565b61170d577f5369676e657242616c616e63654c6f770000000000000000000000000000000085856116ee81613094565b96508151811061170057611700612ffd565b6020026020010181815250505b604080517f40944de900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316916340944de991611761918b0190600401613183565b602060405180830381865afa15801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a291906130df565b6117f1577f416d6f756e744f724944496e76616c696400000000000000000000000000000085856117d281613094565b9650815181106117e4576117e4612ffd565b6020026020010181815250505b845184146117fd578385525b50929695505050505050565b6118116125b4565b61181b6000612635565b565b6118256125b4565b6127108110611860576040517f52dadcf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60078190556040518181527fdc0410a296e1e33943a772020d333d5f99319d7fcad932a484c53889f7aaa2b19060200160405180910390a150565b600154339073ffffffffffffffffffffffffffffffffffffffff168114611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016108f7565b61194d81612635565b50565b6119586125b4565b73ffffffffffffffffffffffffffffffffffffffff81166119a5576040517f6b8df36300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f8b2a800ce9e2e7ccdf4741ae0e41b1f16983192291080ae3b78ac4296ddf598a90600090a250565b600060608082808083611a487f00000000000000000000000000000000000000000000000000000000000000006002612666565b611a737f00000000000000000000000000000000000000000000000000000000000000006003612666565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b3360008181526005602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000008116909155905173ffffffffffffffffffffffffffffffffffffffff909116929183917fd7426110292f20fe59e73ccf52124e0f5440a756507c91c7b0a6c50e1eb1a23a9190a350565b73ffffffffffffffffffffffffffffffffffffffff8116611b83576040517fcd4b78cf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360008181526005602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917f30468de898bda644e26bab66e5a2241a3aa6aaf527257f5ca54e0f65204ba14a91a350565b611c066125b4565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155611c6960005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000611cbc61010083612fd5565b90506000611ccc61010084612fe9565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460209081526040808320868452909152902054909150600181831c81169003611d42576040517f91cab504000000000000000000000000000000000000000000000000000000008152600481018590526024016108f7565b73ffffffffffffffffffffffffffffffffffffffff909416600090815260046020908152604080832094835293905291909120600190911b9290921790915550565b7fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000016611dd961014083016101208401612dfc565b7fffffffff000000000000000000000000000000000000000000000000000000001614611e32576040517fd0bd721a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101a08101356101608201351015611e76576040517f3b71bbca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611e886060830160408401612e98565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600560205260409020549192501615611ee15773ffffffffffffffffffffffffffffffffffffffff908116600090815260056020526040902054165b611f0b81611eee84612296565b6101e0850180359061020087013590610aeb906101c08901613071565b611f41576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f4c818335611cae565b73ffffffffffffffffffffffffffffffffffffffff811660009081526006602052604090205482351015611fac576040517fd24d82a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42826020013511611fe9576040517fc56873ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526009602052604090205473ffffffffffffffffffffffffffffffffffffffff168061206c576040517f33c8207c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff89811660248301528881166044830152606482018890526084820187905285811660a4808401919091528351808403909101815260c490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f47338bc300000000000000000000000000000000000000000000000000000000179052915160009284169161211991613191565b600060405180830381855af49150503d8060008114612154576040519150601f19603f3d011682016040523d82523d6000602084013e612159565b606091505b50509050806121b4576040517f523c3aaa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808a166004830152881660248201526044016108f7565b5050505050505050565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f2a55205a00000000000000000000000000000000000000000000000000000000600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906301ffc9a790602401602060405180830381865afa925050508015612285575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612282918101906130df565b60015b61053a57506000919050565b919050565b600061053a6040516020016123d8907f4f726465722875696e74323536206e6f6e63652c75696e74323536206578706981527f72792c75696e743235362070726f746f636f6c4665652c50617274792073696760208201527f6e65722c50617274792073656e6465722c6164647265737320616666696c696160408201527f746557616c6c65742c75696e7432353620616666696c69617465416d6f756e7460608201527f290000000000000000000000000000000000000000000000000000000000000060808201527f506172747928616464726573732077616c6c65742c6164647265737320746f6b60818201527f656e2c627974657334206b696e642c75696e743235362069642c75696e74323560a18201527f3620616d6f756e7429000000000000000000000000000000000000000000000060c182015260ca0190565b60405160208183030381529060405280519060200120836000013584602001356007547f224ed05dccb4f5c1e21e6e85fb29dd6c83074e33458fdfefb184d03fe8742f4f876040016040516020016124319291906131ad565b604051602081830303815290604052805190602001207f224ed05dccb4f5c1e21e6e85fb29dd6c83074e33458fdfefb184d03fe8742f4f8860e00160405160200161247d9291906131ad565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101206124c56101a08a016101808b01612e98565b6040805160208101989098528701959095526060860193909352608085019190915260a084015260c083015273ffffffffffffffffffffffffffffffffffffffff1660e08201526101a08401356101008201526101200160405160208183030381529060405280519060200120612711565b60008060006125468585612759565b9092509050600081600481111561255f5761255f6131c1565b14801561259757508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806125a857506125a886868661279e565b925050505b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461181b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108f7565b600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561194d816128fb565b606060ff83146126805761267983612970565b905061053a565b81805461268c906131f0565b80601f01602080910402602001604051908101604052809291908181526020018280546126b8906131f0565b80156127055780601f106126da57610100808354040283529160200191612705565b820191906000526020600020905b8154815290600101906020018083116126e857829003601f168201915b5050505050905061053a565b600061053a61271e6129af565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080825160410361278f5760208301516040840151606085015160001a61278387828585612aec565b94509450505050612797565b506000905060025b9250929050565b60008060008573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016127d592919061323d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161285e9190613191565b600060405180830381855afa9150503d8060008114612899576040519150601f19603f3d011682016040523d82523d6000602084013e61289e565b606091505b50915091508180156128b257506020815110155b80156125a8575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906128f0908301602090810190840161325e565b149695505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060600061297d83612bdb565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015612a1557507f000000000000000000000000000000000000000000000000000000000000000046145b15612a3f57507f000000000000000000000000000000000000000000000000000000000000000090565b612ae7604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612b235750600090506003612bd2565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612b77573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612bcb57600060019250925050612bd2565b9150600090505b94509492505050565b600060ff8216601f81111561053a576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461194d57600080fd5b60008060408385031215612c5157600080fd5b8235612c5c81612c1c565b946020939093013593505050565b60008060208385031215612c7d57600080fd5b823567ffffffffffffffff80821115612c9557600080fd5b818501915085601f830112612ca957600080fd5b813581811115612cb857600080fd5b8660208260051b8501011115612ccd57600080fd5b60209290920196919550909350505050565b600060208284031215612cf157600080fd5b5035919050565b60006102208284031215612d0b57600080fd5b50919050565b60008060006102608486031215612d2757600080fd5b8335612d3281612c1c565b925060208401359150612d488560408601612cf8565b90509250925092565b6000806102408385031215612d6557600080fd5b8235612d7081612c1c565b9150612d7f8460208501612cf8565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612dc057835183529284019291840191600101612da4565b50909695505050505050565b80357fffffffff000000000000000000000000000000000000000000000000000000008116811461229157600080fd5b600060208284031215612e0e57600080fd5b6125ad82612dcc565b60005b83811015612e32578181015183820152602001612e1a565b50506000910152565b60008151808452612e53816020860160208601612e17565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006125ad6020830184612e3b565b600060208284031215612eaa57600080fd5b81356125ad81612c1c565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e06020840152612ef260e084018a612e3b565b8381036040850152612f04818a612e3b565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b81811015612f6557835183529284019291840191600101612f49565b50909c9b505050505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082612fe457612fe4612f77565b500490565b600082612ff857612ff8612f77565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b808202811582820484141761053a5761053a612fa6565b6000806040838503121561305657600080fd5b825161306181612c1c565b6020939093015192949293505050565b60006020828403121561308357600080fd5b813560ff811681146125ad57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130c5576130c5612fa6565b5060010190565b8082018082111561053a5761053a612fa6565b6000602082840312156130f157600080fd5b815180151581146125ad57600080fd5b803561310c81612c1c565b73ffffffffffffffffffffffffffffffffffffffff908116835260208201359061313582612c1c565b1660208301527fffffffff0000000000000000000000000000000000000000000000000000000061316860408301612dcc565b16604083015260608181013590830152608090810135910152565b60a0810161053a8284613101565b600082516131a3818460208701612e17565b9190910192915050565b82815260c081016125ad6020830184613101565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600181811c9082168061320457607f821691505b602082108103612d0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b8281526040602082015260006132566040830184612e3b565b949350505050565b60006020828403121561327057600080fd5b505191905056fea2646970667358221220453155cc4b905ac166718dc20161a38d4b9a47bf6bdbe62594925918e5176b4164736f6c634300081700338b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","opcodes":"PUSH2 0x1A0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3B0A CODESIZE SUB DUP1 PUSH3 0x3B0A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x35 SWAP2 PUSH3 0x4AE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH4 0x5357415 PUSH1 0xE4 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x1A1719 PUSH1 0xE9 SHL DUP2 MSTORE POP PUSH3 0x88 PUSH3 0x82 PUSH3 0x2D5 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x2D9 JUMP JUMPDEST PUSH3 0x95 DUP3 PUSH1 0x2 PUSH3 0x2F7 JUMP JUMPDEST PUSH2 0x120 MSTORE PUSH3 0xA6 DUP2 PUSH1 0x3 PUSH3 0x2F7 JUMP JUMPDEST PUSH2 0x140 MSTORE DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0xE0 MSTORE DUP2 MLOAD SWAP1 DUP3 ADD KECCAK256 PUSH2 0x100 MSTORE CHAINID PUSH1 0xA0 MSTORE PUSH3 0x123 PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x3AEA DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x80 MSTORE POP POP ADDRESS PUSH1 0xC0 MSTORE PUSH2 0x2710 DUP3 LT PUSH3 0x14F JUMPI PUSH1 0x40 MLOAD PUSH4 0x52DADCF9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x177 JUMPI PUSH1 0x40 MLOAD PUSH4 0x6B8DF363 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x0 SUB PUSH3 0x19A JUMPI PUSH1 0x40 MLOAD PUSH4 0x2CB13A87 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x1A4 PUSH3 0x330 JUMP JUMPDEST PUSH2 0x160 MSTORE DUP4 MLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x299 JUMPI DUP6 DUP2 DUP2 MLOAD DUP2 LT PUSH3 0x1CB JUMPI PUSH3 0x1CB PUSH3 0x5B0 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x9 PUSH1 0x0 DUP9 DUP5 DUP2 MLOAD DUP2 LT PUSH3 0x1EC JUMPI PUSH3 0x1EC PUSH3 0x5B0 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA64D0CD4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x232 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x258 SWAP2 SWAP1 PUSH3 0x5C6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH3 0x1AD JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP3 SWAP1 SWAP3 AND PUSH2 0x180 MSTORE PUSH1 0x7 SSTORE PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x7BE JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH3 0x2F4 DUP2 PUSH3 0x3C6 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD LT ISZERO PUSH3 0x317 JUMPI PUSH3 0x30F DUP4 PUSH3 0x416 JUMP JUMPDEST SWAP1 POP PUSH3 0x32A JUMP JUMPDEST DUP2 PUSH3 0x324 DUP5 DUP3 PUSH3 0x67C JUMP JUMPDEST POP PUSH1 0xFF SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 ISZERO PUSH3 0x357 JUMPI POP PUSH1 0xA0 MLOAD CHAINID EQ JUMPDEST ISZERO PUSH3 0x364 JUMPI POP PUSH1 0x80 MLOAD SWAP1 JUMP JUMPDEST PUSH3 0x3C1 PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0x3AEA DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x1F DUP2 MLOAD GT ISZERO PUSH3 0x44D JUMPI DUP3 PUSH1 0x40 MLOAD PUSH4 0x305A27A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x444 SWAP2 SWAP1 PUSH3 0x748 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD PUSH3 0x45A DUP3 PUSH3 0x799 JUMP JUMPDEST OR SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH3 0x490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH3 0x4C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x4DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x4F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x20 DUP3 DUP3 GT ISZERO PUSH3 0x509 JUMPI PUSH3 0x509 PUSH3 0x462 JUMP JUMPDEST DUP2 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP7 DUP3 GT OR ISZERO PUSH3 0x531 JUMPI PUSH3 0x531 PUSH3 0x462 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP3 DUP4 MSTORE DUP2 DUP4 ADD SWAP4 POP DUP5 DUP2 ADD DUP3 ADD SWAP3 DUP12 DUP5 GT ISZERO PUSH3 0x550 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP5 DUP3 ADD SWAP5 JUMPDEST DUP4 DUP7 LT ISZERO PUSH3 0x579 JUMPI PUSH3 0x569 DUP7 PUSH3 0x478 JUMP JUMPDEST DUP6 MSTORE SWAP5 DUP3 ADD SWAP5 SWAP4 DUP3 ADD SWAP4 PUSH3 0x555 JUMP JUMPDEST SWAP9 POP PUSH3 0x58A SWAP1 POP DUP10 DUP3 ADD PUSH3 0x495 JUMP JUMPDEST SWAP7 POP POP POP POP POP PUSH1 0x40 DUP6 ADD MLOAD SWAP2 POP PUSH3 0x5A5 PUSH1 0x60 DUP7 ADD PUSH3 0x478 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x5D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x5E4 DUP3 PUSH3 0x495 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x600 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x621 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x677 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x652 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x673 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x65E JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x698 JUMPI PUSH3 0x698 PUSH3 0x462 JUMP JUMPDEST PUSH3 0x6B0 DUP2 PUSH3 0x6A9 DUP5 SLOAD PUSH3 0x5EB JUMP JUMPDEST DUP5 PUSH3 0x627 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x6E8 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x6CF JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x673 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x719 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x6F8 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x738 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x778 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH3 0x75A JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH3 0x621 JUMPI PUSH1 0x0 NOT PUSH1 0x20 SWAP2 SWAP1 SWAP2 SUB PUSH1 0x3 SHL SHL AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH2 0x160 MLOAD PUSH2 0x180 MLOAD PUSH2 0x32AD PUSH3 0x83D PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x1AD ADD MSTORE DUP2 DUP2 PUSH2 0xE42 ADD MSTORE PUSH2 0x1DA7 ADD MSTORE PUSH1 0x0 PUSH2 0x242 ADD MSTORE PUSH1 0x0 PUSH2 0x1A4D ADD MSTORE PUSH1 0x0 PUSH2 0x1A22 ADD MSTORE PUSH1 0x0 PUSH2 0x2A96 ADD MSTORE PUSH1 0x0 PUSH2 0x2A6E ADD MSTORE PUSH1 0x0 PUSH2 0x29C9 ADD MSTORE PUSH1 0x0 PUSH2 0x29F3 ADD MSTORE PUSH1 0x0 PUSH2 0x2A1D ADD MSTORE PUSH2 0x32AD 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 0x1A3 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7CE78525 GT PUSH2 0xEE JUMPI DUP1 PUSH4 0xB0E21E8A GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xB9181611 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xB9181611 EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0xCBF7C6C3 EQ PUSH2 0x48A JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x4AA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB0E21E8A EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0xB6549F75 EQ PUSH2 0x439 JUMPI DUP1 PUSH4 0xB6A5D7DE EQ PUSH2 0x441 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9E93AD8E GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x9E93AD8E EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0xACB8CC49 EQ PUSH2 0x3D4 JUMPI DUP1 PUSH4 0xB0DD4943 EQ PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7CE78525 EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0x84B0196E EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x49B8A932 GT PUSH2 0x150 JUMPI DUP1 PUSH4 0x787DCE3D GT PUSH2 0x12A JUMPI DUP1 PUSH4 0x787DCE3D EQ PUSH2 0x31B JUMPI DUP1 PUSH4 0x796F077B EQ PUSH2 0x32E JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x49B8A932 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x6E038752 EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3644E515 GT PUSH2 0x181 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0x3C641910 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x48542105 EQ PUSH2 0x285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6A6EA74 EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x1647795E EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x2E340823 EQ PUSH2 0x228 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CF PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x218 PUSH2 0x213 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C3E JUMP JUMPDEST PUSH2 0x4DB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FC JUMP JUMPDEST PUSH2 0x23B PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C6A JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x264 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FC JUMP JUMPDEST PUSH2 0x23B PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDF JUMP JUMPDEST PUSH2 0x5AD JUMP JUMPDEST PUSH2 0x23B PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x5E9 JUMP JUMPDEST PUSH2 0x2AB PUSH2 0x2A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D51 JUMP JUMPDEST PUSH2 0xA2C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x2D88 JUMP JUMPDEST PUSH2 0x2EE PUSH2 0x2C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFC JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FC JUMP JUMPDEST PUSH2 0x23B PUSH2 0x1809 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x329 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDF JUMP JUMPDEST PUSH2 0x181D JUMP JUMPDEST PUSH2 0x36A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5357415000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x2E85 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x189B JUMP JUMPDEST PUSH2 0x23B PUSH2 0x38D CALLDATASIZE PUSH1 0x4 PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1950 JUMP JUMPDEST PUSH2 0x39A PUSH2 0x1A14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FC SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2EB5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2EE JUMP JUMPDEST PUSH2 0x264 PUSH2 0x2710 DUP2 JUMP JUMPDEST PUSH2 0x36A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x342E320000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x264 PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x264 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x1AB9 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1B36 JUMP JUMPDEST PUSH2 0x2EE PUSH2 0x462 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x2EE SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2EE JUMP JUMPDEST PUSH2 0x23B PUSH2 0x4D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1BFE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4EA PUSH2 0x100 DUP5 PUSH2 0x2FD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4FA PUSH2 0x100 DUP6 PUSH2 0x2FE9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP6 DUP4 MSTORE SWAP5 SWAP1 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SLOAD PUSH1 0x1 SWAP3 SHR DUP3 AND SWAP1 SWAP2 EQ SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5A8 JUMPI PUSH1 0x0 DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0x55F JUMPI PUSH2 0x55F PUSH2 0x2FFD JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP PUSH2 0x572 CALLER DUP3 PUSH2 0x1CAE JUMP JUMPDEST PUSH1 0x40 MLOAD CALLER SWAP1 DUP3 SWAP1 PUSH32 0x8DD3C361EB2366FF27C2DB0EB07B9261F1D052570742AB8C9A0C326F37AA576D SWAP1 PUSH1 0x0 SWAP1 LOG3 POP PUSH1 0x1 ADD PUSH2 0x543 JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP5 SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH32 0x863123978D9B13946753A916C935C0688A01802440D3FFC668D04D2720C4E110 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x5F2 DUP2 PUSH2 0x1D84 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x605 PUSH2 0x100 DUP4 ADD PUSH1 0xE0 DUP5 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x64F JUMPI POP CALLER PUSH2 0x636 PUSH2 0x100 DUP4 ADD PUSH1 0xE0 DUP5 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x686 JUMPI PUSH1 0x40 MLOAD PUSH32 0xA7202EF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6CF CALLER PUSH2 0x69A PUSH1 0x60 DUP5 ADD PUSH1 0x40 DUP6 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x160 DUP5 ADD CALLDATALOAD PUSH2 0x140 DUP6 ADD CALLDATALOAD PUSH2 0x6B8 PUSH2 0x120 DUP8 ADD PUSH2 0x100 DUP9 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x6CA PUSH2 0x140 DUP9 ADD PUSH2 0x120 DUP10 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH2 0x1FED JUMP JUMPDEST PUSH2 0x70D PUSH2 0x6E2 PUSH1 0x60 DUP4 ADD PUSH1 0x40 DUP5 ADD PUSH2 0x2E98 JUMP JUMPDEST DUP5 PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP6 ADD CALLDATALOAD PUSH2 0x6FD PUSH1 0x80 DUP8 ADD PUSH1 0x60 DUP9 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x6CA PUSH1 0xA0 DUP9 ADD PUSH1 0x80 DUP10 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x721 PUSH2 0x1A0 DUP4 ADD PUSH2 0x180 DUP5 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x770 JUMPI PUSH2 0x770 CALLER PUSH2 0x752 PUSH2 0x1A0 DUP5 ADD PUSH2 0x180 DUP6 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1A0 DUP5 ADD CALLDATALOAD PUSH2 0x140 DUP6 ADD CALLDATALOAD PUSH2 0x6B8 PUSH2 0x120 DUP8 ADD PUSH2 0x100 DUP9 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x789 SWAP1 PUSH2 0x160 DUP6 ADD CALLDATALOAD PUSH2 0x302C JUMP JUMPDEST PUSH2 0x793 SWAP2 SWAP1 PUSH2 0x2FD5 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x8 SLOAD PUSH2 0x7E5 SWAP1 CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x140 DUP7 ADD CALLDATALOAD PUSH2 0x7D3 PUSH2 0x120 DUP9 ADD PUSH2 0x100 DUP10 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x6CA PUSH2 0x140 DUP10 ADD PUSH2 0x120 DUP11 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH2 0x7FD PUSH2 0x7F8 PUSH1 0x80 DUP5 ADD PUSH1 0x60 DUP6 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x21BE JUMP JUMPDEST ISZERO PUSH2 0x933 JUMPI PUSH1 0x0 DUP1 PUSH2 0x815 PUSH1 0x80 DUP6 ADD PUSH1 0x60 DUP7 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x2A55205A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA0 DUP7 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH2 0x160 DUP7 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x2A55205A SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8B3 SWAP2 SWAP1 PUSH2 0x3043 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP DUP1 ISZERO PUSH2 0x930 JUMPI DUP5 DUP2 GT ISZERO PUSH2 0x900 JUMPI PUSH1 0x40 MLOAD PUSH32 0x9C08743A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x930 CALLER DUP4 DUP4 PUSH2 0x140 DUP9 ADD CALLDATALOAD PUSH2 0x91E PUSH2 0x120 DUP11 ADD PUSH2 0x100 DUP12 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x6CA PUSH2 0x140 DUP12 ADD PUSH2 0x120 DUP13 ADD PUSH2 0x2DFC JUMP JUMPDEST POP POP JUMPDEST CALLER PUSH2 0x944 PUSH1 0x60 DUP5 ADD PUSH1 0x40 DUP6 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 CALLDATALOAD PUSH32 0x182E847DC18073123E8AA17E204B9E3874CAF71387E52FE3083FFB98716D3D6B PUSH1 0xC0 DUP7 ADD CALLDATALOAD PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH2 0x997 PUSH1 0x80 DUP10 ADD PUSH1 0x60 DUP11 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x160 DUP10 ADD CALLDATALOAD PUSH2 0x140 DUP11 ADD CALLDATALOAD PUSH2 0x9B5 PUSH2 0x120 DUP13 ADD PUSH2 0x100 DUP14 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x9C7 PUSH2 0x1A0 DUP14 ADD PUSH2 0x180 DUP15 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP8 DUP9 MSTORE PUSH1 0x20 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND SWAP6 DUP8 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x60 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x80 DUP6 ADD MSTORE DUP2 AND PUSH1 0xA0 DUP5 ADD MSTORE AND PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x1A0 DUP8 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF DUP1 DUP3 MSTORE PUSH2 0x200 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD PUSH2 0x1E0 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0xA68 PUSH1 0x60 DUP7 ADD PUSH1 0x40 DUP8 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP AND ISZERO PUSH2 0xAC1 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND JUMPDEST PUSH2 0xB47 DUP2 PUSH2 0xACE DUP8 PUSH2 0x2296 JUMP JUMPDEST PUSH2 0x1E0 DUP9 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x200 DUP11 ADD CALLDATALOAD SWAP1 PUSH2 0xAEB SWAP1 PUSH2 0x1C0 DUP13 ADD PUSH2 0x3071 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB33 SWAP4 SWAP3 SWAP2 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xF8 SHL PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x41 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x2537 JUMP JUMPDEST PUSH2 0xB9A JUMPI PUSH32 0x556E617574686F72697A65640000000000000000000000000000000000000000 DUP4 DUP4 PUSH2 0xB77 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xB89 JUMPI PUSH2 0xB89 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH2 0xC4F JUMP JUMPDEST PUSH2 0xBA5 DUP2 DUP7 CALLDATALOAD PUSH2 0x4DB JUMP JUMPDEST ISZERO PUSH2 0xBD6 JUMPI PUSH32 0x4E6F6E6365416C72656164795573656400000000000000000000000000000000 DUP4 DUP4 PUSH2 0xB77 DUP2 PUSH2 0x3094 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP6 CALLDATALOAD LT ISZERO PUSH2 0xC4F JUMPI PUSH32 0x4E6F6E6365546F6F4C6F77000000000000000000000000000000000000000000 DUP4 DUP4 PUSH2 0xC30 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xC42 JUMPI PUSH2 0xC42 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST TIMESTAMP DUP6 PUSH1 0x20 ADD CALLDATALOAD LT ISZERO PUSH2 0xCA6 JUMPI PUSH32 0x4F72646572457870697265640000000000000000000000000000000000000000 DUP4 DUP4 PUSH2 0xC87 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xC99 JUMPI PUSH2 0xC99 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x0 PUSH2 0xCB9 PUSH2 0x100 DUP8 ADD PUSH1 0xE0 DUP9 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xD19 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0xD00 PUSH2 0x100 DUP8 ADD PUSH1 0xE0 DUP9 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0xD69 JUMPI PUSH32 0x53656E646572496E76616C696400000000000000000000000000000000000000 DUP4 DUP4 PUSH2 0xD4A DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xD5C JUMPI PUSH2 0xD5C PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x0 PUSH1 0x9 DUP2 PUSH2 0xD80 PUSH2 0x140 DUP10 ADD PUSH2 0x120 DUP11 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH2 0xE1F JUMPI PUSH32 0x53656E646572546F6B656E4B696E64556E6B6E6F776E00000000000000000000 DUP5 DUP5 PUSH2 0xDFC DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP6 POP DUP2 MLOAD DUP2 LT PUSH2 0xE0E JUMPI PUSH2 0xE0E PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH2 0x1491 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH32 0x0 AND PUSH2 0xE74 PUSH2 0x140 DUP9 ADD PUSH2 0x120 DUP10 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND EQ PUSH2 0xEC7 JUMPI PUSH32 0x53656E646572546F6B656E496E76616C69640000000000000000000000000000 DUP5 DUP5 PUSH2 0xDFC DUP2 PUSH2 0x3094 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0xEE0 SWAP1 PUSH2 0x160 DUP11 ADD CALLDATALOAD PUSH2 0x302C JUMP JUMPDEST PUSH2 0xEEA SWAP2 SWAP1 PUSH2 0x2FD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A0 DUP9 ADD CALLDATALOAD PUSH2 0xF03 DUP4 PUSH2 0x160 DUP12 ADD CALLDATALOAD PUSH2 0x30CC JUMP JUMPDEST PUSH2 0xF0D SWAP2 SWAP1 PUSH2 0x30CC JUMP JUMPDEST SWAP1 POP PUSH2 0xF22 PUSH2 0x7F8 PUSH1 0x80 DUP11 ADD PUSH1 0x60 DUP12 ADD PUSH2 0x2E98 JUMP JUMPDEST ISZERO PUSH2 0xFE9 JUMPI PUSH1 0x0 PUSH2 0xF39 PUSH1 0x80 DUP11 ADD PUSH1 0x60 DUP12 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x2A55205A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA0 DUP12 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH2 0x160 DUP12 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x2A55205A SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFB3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFD7 SWAP2 SWAP1 PUSH2 0x3043 JUMP JUMPDEST SWAP2 POP PUSH2 0xFE5 SWAP1 POP DUP2 DUP4 PUSH2 0x30CC JUMP JUMPDEST SWAP2 POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x20 DUP2 ADD PUSH2 0x1026 PUSH2 0x120 DUP13 ADD PUSH2 0x100 DUP14 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1053 PUSH2 0x140 DUP13 ADD PUSH2 0x120 DUP14 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 MSTORE PUSH2 0x140 DUP12 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD DUP4 SWAP1 MSTORE SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND ISZERO PUSH2 0x1302 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x3170F63D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP3 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 DUP4 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x84 DUP3 ADD MSTORE SWAP1 DUP6 AND SWAP1 PUSH4 0x3170F63D SWAP1 PUSH1 0xA4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x11D4 JUMPI PUSH32 0x53656E646572416C6C6F77616E63654C6F770000000000000000000000000000 DUP8 DUP8 PUSH2 0x11B5 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP9 POP DUP2 MLOAD DUP2 LT PUSH2 0x11C7 JUMPI PUSH2 0x11C7 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xD1190DF900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP3 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 DUP4 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x84 DUP3 ADD MSTORE SWAP1 DUP6 AND SWAP1 PUSH4 0xD1190DF9 SWAP1 PUSH1 0xA4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x128F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12B3 SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x1302 JUMPI PUSH32 0x53656E64657242616C616E63654C6F7700000000000000000000000000000000 DUP8 DUP8 PUSH2 0x12E3 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP9 POP DUP2 MLOAD DUP2 LT PUSH2 0x12F5 JUMPI PUSH2 0x12F5 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x40944DE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP3 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 DUP4 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x84 DUP3 ADD MSTORE SWAP1 DUP6 AND SWAP1 PUSH4 0x40944DE9 SWAP1 PUSH1 0xA4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13BD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13E1 SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x1430 JUMPI PUSH32 0x416D6F756E744F724944496E76616C6964000000000000000000000000000000 DUP8 DUP8 PUSH2 0x1411 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP9 POP DUP2 MLOAD DUP2 LT PUSH2 0x1423 JUMPI PUSH2 0x1423 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH2 0x1A0 DUP10 ADD CALLDATALOAD PUSH2 0x160 DUP11 ADD CALLDATALOAD LT ISZERO PUSH2 0x148D JUMPI PUSH32 0x416666696C69617465416D6F756E74496E76616C696400000000000000000000 DUP8 DUP8 PUSH2 0x146E DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP9 POP DUP2 MLOAD DUP2 LT PUSH2 0x1480 JUMPI PUSH2 0x1480 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST POP POP POP JUMPDEST PUSH1 0x0 PUSH1 0x9 DUP2 PUSH2 0x14A6 PUSH1 0xA0 DUP11 ADD PUSH1 0x80 DUP12 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH2 0x1545 JUMPI PUSH32 0x5369676E6572546F6B656E4B696E64556E6B6E6F776E00000000000000000000 DUP6 DUP6 PUSH2 0x1522 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP7 POP DUP2 MLOAD DUP2 LT PUSH2 0x1534 JUMPI PUSH2 0x1534 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH2 0x17F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x3170F63D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x3170F63D SWAP2 PUSH2 0x1599 SWAP2 DUP12 ADD SWAP1 PUSH1 0x4 ADD PUSH2 0x3183 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15DA SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x1629 JUMPI PUSH32 0x5369676E6572416C6C6F77616E63654C6F770000000000000000000000000000 DUP6 DUP6 PUSH2 0x160A DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP7 POP DUP2 MLOAD DUP2 LT PUSH2 0x161C JUMPI PUSH2 0x161C PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xD1190DF900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xD1190DF9 SWAP2 PUSH2 0x167D SWAP2 DUP12 ADD SWAP1 PUSH1 0x4 ADD PUSH2 0x3183 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x169A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16BE SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x170D JUMPI PUSH32 0x5369676E657242616C616E63654C6F7700000000000000000000000000000000 DUP6 DUP6 PUSH2 0x16EE DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP7 POP DUP2 MLOAD DUP2 LT PUSH2 0x1700 JUMPI PUSH2 0x1700 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x40944DE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x40944DE9 SWAP2 PUSH2 0x1761 SWAP2 DUP12 ADD SWAP1 PUSH1 0x4 ADD PUSH2 0x3183 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x177E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17A2 SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x17F1 JUMPI PUSH32 0x416D6F756E744F724944496E76616C6964000000000000000000000000000000 DUP6 DUP6 PUSH2 0x17D2 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP7 POP DUP2 MLOAD DUP2 LT PUSH2 0x17E4 JUMPI PUSH2 0x17E4 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST DUP5 MLOAD DUP5 EQ PUSH2 0x17FD JUMPI DUP4 DUP6 MSTORE JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1811 PUSH2 0x25B4 JUMP JUMPDEST PUSH2 0x181B PUSH1 0x0 PUSH2 0x2635 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1825 PUSH2 0x25B4 JUMP JUMPDEST PUSH2 0x2710 DUP2 LT PUSH2 0x1860 JUMPI PUSH1 0x40 MLOAD PUSH32 0x52DADCF900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xDC0410A296E1E33943A772020D333D5F99319D7FCAD932A484C53889F7AAA2B1 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x1944 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F7 JUMP JUMPDEST PUSH2 0x194D DUP2 PUSH2 0x2635 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1958 PUSH2 0x25B4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x19A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6B8DF36300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x8B2A800CE9E2E7CCDF4741AE0E41B1F16983192291080AE3B78AC4296DDF598A SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 DUP3 DUP1 DUP1 DUP4 PUSH2 0x1A48 PUSH32 0x0 PUSH1 0x2 PUSH2 0x2666 JUMP JUMPDEST PUSH2 0x1A73 PUSH32 0x0 PUSH1 0x3 PUSH2 0x2666 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH32 0xF00000000000000000000000000000000000000000000000000000000000000 SWAP12 SWAP4 SWAP11 POP SWAP2 SWAP9 POP CHAINID SWAP8 POP ADDRESS SWAP7 POP SWAP5 POP SWAP3 POP SWAP1 POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP2 AND SWAP1 SWAP2 SSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP3 SWAP2 DUP4 SWAP2 PUSH32 0xD7426110292F20FE59E73CCF52124E0F5440A756507C91C7B0A6C50E1EB1A23A SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1B83 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCD4B78CF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP1 SWAP2 PUSH32 0x30468DE898BDA644E26BAB66E5A2241A3AA6AAF527257F5CA54E0F65204BA14A SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x1C06 PUSH2 0x25B4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x1C69 PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CBC PUSH2 0x100 DUP4 PUSH2 0x2FD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1CCC PUSH2 0x100 DUP5 PUSH2 0x2FE9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 DUP2 DUP4 SHR DUP2 AND SWAP1 SUB PUSH2 0x1D42 JUMPI PUSH1 0x40 MLOAD PUSH32 0x91CAB50400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP4 MSTORE SWAP4 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 SWAP1 SWAP2 SHL SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH32 0x0 AND PUSH2 0x1DD9 PUSH2 0x140 DUP4 ADD PUSH2 0x120 DUP5 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND EQ PUSH2 0x1E32 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD0BD721A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A0 DUP2 ADD CALLDATALOAD PUSH2 0x160 DUP3 ADD CALLDATALOAD LT ISZERO PUSH2 0x1E76 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3B71BBCA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E88 PUSH1 0x60 DUP4 ADD PUSH1 0x40 DUP5 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP AND ISZERO PUSH2 0x1EE1 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND JUMPDEST PUSH2 0x1F0B DUP2 PUSH2 0x1EEE DUP5 PUSH2 0x2296 JUMP JUMPDEST PUSH2 0x1E0 DUP6 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x200 DUP8 ADD CALLDATALOAD SWAP1 PUSH2 0xAEB SWAP1 PUSH2 0x1C0 DUP10 ADD PUSH2 0x3071 JUMP JUMPDEST PUSH2 0x1F41 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F4C DUP2 DUP4 CALLDATALOAD PUSH2 0x1CAE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 CALLDATALOAD LT ISZERO PUSH2 0x1FAC JUMPI PUSH1 0x40 MLOAD PUSH32 0xD24D82A400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP DUP3 PUSH1 0x20 ADD CALLDATALOAD GT PUSH2 0x1FE9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC56873BA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 PUSH2 0x206C JUMPI PUSH1 0x40 MLOAD PUSH32 0x33C8207C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP9 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP3 ADD DUP9 SWAP1 MSTORE PUSH1 0x84 DUP3 ADD DUP8 SWAP1 MSTORE DUP6 DUP2 AND PUSH1 0xA4 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC4 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x47338BC300000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP5 AND SWAP2 PUSH2 0x2119 SWAP2 PUSH2 0x3191 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2154 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2159 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x21B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x523C3AAA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP11 AND PUSH1 0x4 DUP4 ADD MSTORE DUP9 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x8F7 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x2A55205A00000000000000000000000000000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2285 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x2282 SWAP2 DUP2 ADD SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x53A JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53A PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x23D8 SWAP1 PUSH32 0x4F726465722875696E74323536206E6F6E63652C75696E743235362065787069 DUP2 MSTORE PUSH32 0x72792C75696E743235362070726F746F636F6C4665652C506172747920736967 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6E65722C50617274792073656E6465722C6164647265737320616666696C6961 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x746557616C6C65742C75696E7432353620616666696C69617465416D6F756E74 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x506172747928616464726573732077616C6C65742C6164647265737320746F6B PUSH1 0x81 DUP3 ADD MSTORE PUSH32 0x656E2C627974657334206B696E642C75696E743235362069642C75696E743235 PUSH1 0xA1 DUP3 ADD MSTORE PUSH32 0x3620616D6F756E74290000000000000000000000000000000000000000000000 PUSH1 0xC1 DUP3 ADD MSTORE PUSH1 0xCA ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 PUSH1 0x0 ADD CALLDATALOAD DUP5 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x7 SLOAD PUSH32 0x224ED05DCCB4F5C1E21E6E85FB29DD6C83074E33458FDFEFB184D03FE8742F4F DUP8 PUSH1 0x40 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2431 SWAP3 SWAP2 SWAP1 PUSH2 0x31AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH32 0x224ED05DCCB4F5C1E21E6E85FB29DD6C83074E33458FDFEFB184D03FE8742F4F DUP9 PUSH1 0xE0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x247D SWAP3 SWAP2 SWAP1 PUSH2 0x31AD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH2 0x24C5 PUSH2 0x1A0 DUP11 ADD PUSH2 0x180 DUP12 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP9 SWAP1 SWAP9 MSTORE DUP8 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x60 DUP7 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x80 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x1A0 DUP5 ADD CALLDATALOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH2 0x120 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x2711 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2546 DUP6 DUP6 PUSH2 0x2759 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x255F JUMPI PUSH2 0x255F PUSH2 0x31C1 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x2597 JUMPI POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST DUP1 PUSH2 0x25A8 JUMPI POP PUSH2 0x25A8 DUP7 DUP7 DUP7 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x181B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x194D DUP2 PUSH2 0x28FB JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFF DUP4 EQ PUSH2 0x2680 JUMPI PUSH2 0x2679 DUP4 PUSH2 0x2970 JUMP JUMPDEST SWAP1 POP PUSH2 0x53A JUMP JUMPDEST DUP2 DUP1 SLOAD PUSH2 0x268C SWAP1 PUSH2 0x31F0 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 0x26B8 SWAP1 PUSH2 0x31F0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2705 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2705 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 0x26E8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH2 0x53A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53A PUSH2 0x271E PUSH2 0x29AF JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x41 SUB PUSH2 0x278F JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x2783 DUP8 DUP3 DUP6 DUP6 PUSH2 0x2AEC JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x2797 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x27D5 SWAP3 SWAP2 SWAP1 PUSH2 0x323D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 MSTORE SWAP1 MLOAD PUSH2 0x285E SWAP2 SWAP1 PUSH2 0x3191 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2899 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x289E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x28B2 JUMPI POP PUSH1 0x20 DUP2 MLOAD LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x25A8 JUMPI POP DUP1 MLOAD PUSH32 0x1626BA7E00000000000000000000000000000000000000000000000000000000 SWAP1 PUSH2 0x28F0 SWAP1 DUP4 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP1 DUP5 ADD PUSH2 0x325E JUMP JUMPDEST EQ SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x297D DUP4 PUSH2 0x2BDB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP POP SWAP2 DUP3 MSTORE POP PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x2A15 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x2A3F JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2AE7 PUSH1 0x40 DUP1 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x0 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x2B23 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x2BD2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B77 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x2BCB JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x2BD2 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0x1F DUP2 GT ISZERO PUSH2 0x53A JUMPI PUSH1 0x40 MLOAD PUSH32 0xB3512B0C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x194D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2C5C DUP2 PUSH2 0x2C1C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2CA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2CB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2CCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x220 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x260 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2D27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x2D32 DUP2 PUSH2 0x2C1C JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2D48 DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x2CF8 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x240 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2D70 DUP2 PUSH2 0x2C1C JUMP JUMPDEST SWAP2 POP PUSH2 0x2D7F DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x2CF8 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2DC0 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x2DA4 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x2291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25AD DUP3 PUSH2 0x2DCC JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2E32 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2E1A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2E53 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2E17 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x25AD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E3B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25AD DUP2 PUSH2 0x2C1C JUMP JUMPDEST PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP9 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0xE0 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x2EF2 PUSH1 0xE0 DUP5 ADD DUP11 PUSH2 0x2E3B JUMP JUMPDEST DUP4 DUP2 SUB PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x2F04 DUP2 DUP11 PUSH2 0x2E3B JUMP JUMPDEST PUSH1 0x60 DUP6 ADD DUP10 SWAP1 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0xA0 DUP6 ADD DUP8 SWAP1 MSTORE DUP5 DUP2 SUB PUSH1 0xC0 DUP7 ADD MSTORE DUP6 MLOAD DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP9 ADD SWAP4 POP SWAP1 SWAP2 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2F65 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x2F49 JUMP JUMPDEST POP SWAP1 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2FE4 JUMPI PUSH2 0x2FE4 PUSH2 0x2F77 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2FF8 JUMPI PUSH2 0x2FF8 PUSH2 0x2F77 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x53A JUMPI PUSH2 0x53A PUSH2 0x2FA6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3056 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x3061 DUP2 PUSH2 0x2C1C JUMP JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD MLOAD SWAP3 SWAP5 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3083 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x25AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x30C5 JUMPI PUSH2 0x30C5 PUSH2 0x2FA6 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x53A JUMPI PUSH2 0x53A PUSH2 0x2FA6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x25AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x310C DUP2 PUSH2 0x2C1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND DUP4 MSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD SWAP1 PUSH2 0x3135 DUP3 PUSH2 0x2C1C JUMP JUMPDEST AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH2 0x3168 PUSH1 0x40 DUP4 ADD PUSH2 0x2DCC JUMP JUMPDEST AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 DUP2 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 DUP2 ADD CALLDATALOAD SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x53A DUP3 DUP5 PUSH2 0x3101 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x31A3 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2E17 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0xC0 DUP2 ADD PUSH2 0x25AD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3101 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3204 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D0B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3256 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2E3B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT BALANCE SSTORE 0xCC 0x4B SWAP1 GAS 0xC1 PUSH7 0x718DC20161A38D 0x4B SWAP11 SELFBALANCE 0xBF PUSH12 0xDBE62594925918E5176B4164 PUSH20 0x6F6C634300081700338B73C3C69BB8FE3D512ECC 0x4C 0xF7 MSIZE 0xCC PUSH26 0x239F7B179B0FFACAA9A75D522B39400F00000000000000000000 ","sourceMap":"425:15090:27:-:0;;;2359:728;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2505:11;;;;;;;;;;;;;-1:-1:-1;;;2505:11:27;;;2518:14;;;;;;;;;;;;;-1:-1:-1;;;2518:14:27;;;936:32:0;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;3251:45:21;:4;3282:13;3251:30;:45::i;:::-;3243:53;;3317:51;:7;3351:16;3317:33;:51::i;:::-;3306:62;;3392:22;;;;;;;;;;3378:36;;3441:25;;;;;;3424:42;;3494:13;3477:30;;3542:23;4077:11;;4090:14;;4054:81;;;-1:-1:-1;;;;;;;;;;;4054:81:21;;;5105:25:34;5146:18;;;5139:34;;;;5189:18;;;5182:34;4106:13:21;5232:18:34;;;5225:34;4129:4:21;5275:19:34;;;5268:61;4018:7:21;;5077:19:34;;4054:81:21;;;;;;;;;;;;4044:92;;;;;;4037:99;;3963:180;;3542:23;3517:48;;-1:-1:-1;;3597:4:21;3575:27;;1185:5:27::1;2544:27:::0;::::1;2540:52;;2580:12;;-1:-1:-1::0;;;2580:12:27::1;;;;;;;;;;;2540:52;-1:-1:-1::0;;;;;2602:32:27;::::1;2598:63;;2643:18;;-1:-1:-1::0;;;2643:18:27::1;;;;;;;;;;;2598:63;2671:9;:16;2691:1;2671:21:::0;2667:51:::1;;2701:17;;-1:-1:-1::0;;;2701:17:27::1;;;;;;;;;;;2667:51;2744:20;:18;:20::i;:::-;2725:39;::::0;2796:16;;2771:22:::1;2818:143;2838:14;2834:1;:18;2818:143;;;2903:9;2913:1;2903:12;;;;;;;;:::i;:::-;;;;;;;2864:8;:36;2873:9;2883:1;2873:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;2873:24:27::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;2864:36:27::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;2864:36:27;:51;;-1:-1:-1;;;;;;2864:51:27::1;-1:-1:-1::0;;;;;2864:51:27;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;2943:3:27::1;2818:143;;;-1:-1:-1::0;;;;;;;;2966:40:27;;;::::1;;::::0;3012:11:::1;:26:::0;3044:17:::1;:38:::0;;-1:-1:-1;;;;;;3044:38:27::1;-1:-1:-1::0;;;;;3044:38:27;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;425:15090:27;;655:96:15;734:10;;655:96::o;1501:153:1:-;1590:13;1583:20;;-1:-1:-1;;;;;;1583:20:1;;;1613:34;1638:8;1613:24;:34::i;:::-;1501:153;:::o;2895:341:17:-;2991:11;3040:2;3024:5;3018:19;:24;3014:216;;;3065:20;3079:5;3065:13;:20::i;:::-;3058:27;;;;3014:216;3142:5;3116:46;3157:5;3142;3116:46;:::i;:::-;-1:-1:-1;1371:66:17;;-1:-1:-1;3014:216:17;2895:341;;;;:::o;3695:262:21:-;3748:7;3788:11;;-1:-1:-1;;;;;3771:28:21;3779:4;-1:-1:-1;;;;;3771:28:21;;:63;;;;;3820:14;;3803:13;:31;3771:63;3767:184;;;-1:-1:-1;3857:22:21;;;3695:262::o;3767:184::-;3917:23;4077:11;;4090:14;;4054:81;;;-1:-1:-1;;;;;;;;;;;4054:81:21;;;5105:25:34;5146:18;;;5139:34;;;;5189:18;;;5182:34;4106:13:21;5232:18:34;;;5225:34;4129:4:21;5275:19:34;;;5268:61;4018:7:21;;5077:19:34;;4054:81:21;;;;;;;;;;;;4044:92;;;;;;4037:99;;3963:180;;3917:23;3910:30;;3695:262;:::o;2426:187:0:-;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:0;;;-1:-1:-1;;;;;;2534:17:0;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;1689:286:17:-;1754:11;1777:17;1803:3;1777:30;;1835:2;1821:4;:11;:16;1817:72;;;1874:3;1860:18;;-1:-1:-1;;;1860:18:17;;;;;;;;:::i;:::-;;;;;;;;1817:72;1955:11;;1938:13;1955:4;1938:13;:::i;:::-;1930:36;;1689:286;-1:-1:-1;;;1689:286:17:o;14:127:34:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:187;235:13;;-1:-1:-1;;;;;277:31:34;;267:42;;257:70;;323:1;320;313:12;257:70;146:187;;;:::o;338:177::-;416:13;;-1:-1:-1;;;;;;458:32:34;;448:43;;438:71;;505:1;502;495:12;520:1398;658:6;666;674;682;735:3;723:9;714:7;710:23;706:33;703:53;;;752:1;749;742:12;703:53;779:16;;-1:-1:-1;;;;;844:14:34;;;841:34;;;871:1;868;861:12;841:34;909:6;898:9;894:22;884:32;;954:7;947:4;943:2;939:13;935:27;925:55;;976:1;973;966:12;925:55;1005:2;999:9;1027:4;1050:2;1046;1043:10;1040:36;;;1056:18;;:::i;:::-;1102:2;1099:1;1095:10;1134:2;1128:9;1197:2;1193:7;1188:2;1184;1180:11;1176:25;1168:6;1164:38;1252:6;1240:10;1237:22;1232:2;1220:10;1217:18;1214:46;1211:72;;;1263:18;;:::i;:::-;1299:2;1292:22;1349:18;;;1383:15;;;;-1:-1:-1;1425:11:34;;;1421:20;;;1453:19;;;1450:39;;;1485:1;1482;1475:12;1450:39;1509:11;;;;1529:169;1545:6;1540:3;1537:15;1529:169;;;1611:44;1651:3;1611:44;:::i;:::-;1599:57;;1562:12;;;;1676;;;;1529:169;;;1717:6;-1:-1:-1;1742:48:34;;-1:-1:-1;1771:18:34;;;1742:48;:::i;:::-;1732:58;;;;;;1830:2;1819:9;1815:18;1809:25;1799:35;;1853:59;1908:2;1897:9;1893:18;1853:59;:::i;:::-;1843:69;;520:1398;;;;;;;:::o;1923:127::-;1984:10;1979:3;1975:20;1972:1;1965:31;2015:4;2012:1;2005:15;2039:4;2036:1;2029:15;2055:206;2124:6;2177:2;2165:9;2156:7;2152:23;2148:32;2145:52;;;2193:1;2190;2183:12;2145:52;2216:39;2245:9;2216:39;:::i;:::-;2206:49;2055:206;-1:-1:-1;;;2055:206:34:o;2266:380::-;2345:1;2341:12;;;;2388;;;2409:61;;2463:4;2455:6;2451:17;2441:27;;2409:61;2516:2;2508:6;2505:14;2485:18;2482:38;2479:161;;2562:10;2557:3;2553:20;2550:1;2543:31;2597:4;2594:1;2587:15;2625:4;2622:1;2615:15;2479:161;;2266:380;;;:::o;2777:543::-;2879:2;2874:3;2871:11;2868:446;;;2915:1;2939:5;2936:1;2929:16;2983:4;2980:1;2970:18;3053:2;3041:10;3037:19;3034:1;3030:27;3024:4;3020:38;3089:4;3077:10;3074:20;3071:47;;;-1:-1:-1;3112:4:34;3071:47;3167:2;3162:3;3158:12;3155:1;3151:20;3145:4;3141:31;3131:41;;3222:82;3240:2;3233:5;3230:13;3222:82;;;3285:17;;;3266:1;3255:13;3222:82;;;3226:3;;;2868:446;2777:543;;;:::o;3496:1345::-;3616:10;;-1:-1:-1;;;;;3638:30:34;;3635:56;;;3671:18;;:::i;:::-;3700:97;3790:6;3750:38;3782:4;3776:11;3750:38;:::i;:::-;3744:4;3700:97;:::i;:::-;3852:4;;3909:2;3898:14;;3926:1;3921:663;;;;4628:1;4645:6;4642:89;;;-1:-1:-1;4697:19:34;;;4691:26;4642:89;-1:-1:-1;;3453:1:34;3449:11;;;3445:24;3441:29;3431:40;3477:1;3473:11;;;3428:57;4744:81;;3891:944;;3921:663;2724:1;2717:14;;;2761:4;2748:18;;-1:-1:-1;;3957:20:34;;;4075:236;4089:7;4086:1;4083:14;4075:236;;;4178:19;;;4172:26;4157:42;;4270:27;;;;4238:1;4226:14;;;;4105:19;;4075:236;;;4079:3;4339:6;4330:7;4327:19;4324:201;;;4400:19;;;4394:26;-1:-1:-1;;4483:1:34;4479:14;;;4495:3;4475:24;4471:37;4467:42;4452:58;4437:74;;4324:201;-1:-1:-1;;;;;4571:1:34;4555:14;;;4551:22;4538:36;;-1:-1:-1;3496:1345:34:o;5340:548::-;5452:4;5481:2;5510;5499:9;5492:21;5542:6;5536:13;5585:6;5580:2;5569:9;5565:18;5558:34;5610:1;5620:140;5634:6;5631:1;5628:13;5620:140;;;5729:14;;;5725:23;;5719:30;5695:17;;;5714:2;5691:26;5684:66;5649:10;;5620:140;;;5624:3;5809:1;5804:2;5795:6;5784:9;5780:22;5776:31;5769:42;5879:2;5872;5868:7;5863:2;5855:6;5851:15;5847:29;5836:9;5832:45;5828:54;5820:62;;;;5340:548;;;;:::o;5893:297::-;6011:12;;6058:4;6047:16;;;6041:23;;6011:12;6076:16;;6073:111;;;-1:-1:-1;;6150:4:34;6146:17;;;;6143:1;6139:25;6135:38;6124:50;;5893:297;-1:-1:-1;5893:297:34:o;:::-;425:15090:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DOMAIN_NAME_4847":{"entryPoint":null,"id":4847,"parameterSlots":0,"returnSlots":0},"@DOMAIN_SEPARATOR_4852":{"entryPoint":null,"id":4852,"parameterSlots":0,"returnSlots":0},"@DOMAIN_VERSION_4850":{"entryPoint":null,"id":4850,"parameterSlots":0,"returnSlots":0},"@FEE_DIVISOR_4855":{"entryPoint":null,"id":4855,"parameterSlots":0,"returnSlots":0},"@_buildDomainSeparator_3646":{"entryPoint":null,"id":3646,"parameterSlots":0,"returnSlots":1},"@_checkOwner_54":{"entryPoint":9652,"id":54,"parameterSlots":0,"returnSlots":0},"@_check_5985":{"entryPoint":7556,"id":5985,"parameterSlots":1,"returnSlots":0},"@_domainSeparatorV4_3625":{"entryPoint":10671,"id":3625,"parameterSlots":0,"returnSlots":1},"@_getOrderHash_6029":{"entryPoint":8854,"id":6029,"parameterSlots":1,"returnSlots":1},"@_hashTypedDataV4_3662":{"entryPoint":10001,"id":3662,"parameterSlots":1,"returnSlots":1},"@_markNonceAsUsed_5860":{"entryPoint":7342,"id":5860,"parameterSlots":2,"returnSlots":0},"@_msgSender_2493":{"entryPoint":null,"id":2493,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_111":{"entryPoint":10491,"id":111,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_172":{"entryPoint":9781,"id":172,"parameterSlots":1,"returnSlots":0},"@_transfer_6094":{"entryPoint":8173,"id":6094,"parameterSlots":6,"returnSlots":0},"@acceptOwnership_194":{"entryPoint":6299,"id":194,"parameterSlots":0,"returnSlots":0},"@adapters_4885":{"entryPoint":null,"id":4885,"parameterSlots":0,"returnSlots":0},"@authorize_5282":{"entryPoint":6966,"id":5282,"parameterSlots":1,"returnSlots":0},"@authorized_4870":{"entryPoint":null,"id":4870,"parameterSlots":0,"returnSlots":0},"@byteLength_2702":{"entryPoint":11227,"id":2702,"parameterSlots":1,"returnSlots":1},"@cancelUpTo_5367":{"entryPoint":1453,"id":5367,"parameterSlots":1,"returnSlots":0},"@cancel_5347":{"entryPoint":1344,"id":5347,"parameterSlots":2,"returnSlots":0},"@check_5764":{"entryPoint":2604,"id":5764,"parameterSlots":2,"returnSlots":1},"@eip712Domain_3709":{"entryPoint":6676,"id":3709,"parameterSlots":0,"returnSlots":7},"@isValidERC1271SignatureNow_3808":{"entryPoint":10142,"id":3808,"parameterSlots":3,"returnSlots":1},"@isValidSignatureNow_3756":{"entryPoint":9527,"id":3756,"parameterSlots":3,"returnSlots":1},"@nonceUsed_5801":{"entryPoint":1243,"id":5801,"parameterSlots":2,"returnSlots":1},"@owner_40":{"entryPoint":null,"id":40,"parameterSlots":0,"returnSlots":1},"@pendingOwner_135":{"entryPoint":null,"id":135,"parameterSlots":0,"returnSlots":1},"@protocolFeeWallet_4878":{"entryPoint":null,"id":4878,"parameterSlots":0,"returnSlots":0},"@protocolFee_4876":{"entryPoint":null,"id":4876,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_68":{"entryPoint":6153,"id":68,"parameterSlots":0,"returnSlots":0},"@requiredSenderKind_4880":{"entryPoint":null,"id":4880,"parameterSlots":0,"returnSlots":0},"@revoke_5307":{"entryPoint":6841,"id":5307,"parameterSlots":0,"returnSlots":0},"@setProtocolFeeWallet_5251":{"entryPoint":6480,"id":5251,"parameterSlots":1,"returnSlots":0},"@setProtocolFee_5224":{"entryPoint":6173,"id":5224,"parameterSlots":1,"returnSlots":0},"@signatoryMinimumNonce_4874":{"entryPoint":null,"id":4874,"parameterSlots":0,"returnSlots":0},"@supportsRoyalties_5890":{"entryPoint":8638,"id":5890,"parameterSlots":1,"returnSlots":1},"@swap_5200":{"entryPoint":1513,"id":5200,"parameterSlots":3,"returnSlots":0},"@toStringWithFallback_2769":{"entryPoint":9830,"id":2769,"parameterSlots":2,"returnSlots":1},"@toString_2670":{"entryPoint":10608,"id":2670,"parameterSlots":1,"returnSlots":1},"@toTypedDataHash_3485":{"entryPoint":null,"id":3485,"parameterSlots":2,"returnSlots":1},"@transferOwnership_155":{"entryPoint":7166,"id":155,"parameterSlots":1,"returnSlots":0},"@tryRecover_3240":{"entryPoint":10073,"id":3240,"parameterSlots":2,"returnSlots":2},"@tryRecover_3408":{"entryPoint":10988,"id":3408,"parameterSlots":4,"returnSlots":2},"abi_decode_bytes4":{"entryPoint":11724,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_struct_Order_calldata":{"entryPoint":11512,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":11928,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_struct$_Order_$6514_calldata_ptr":{"entryPoint":11601,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":11326,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256_fromMemory":{"entryPoint":12355,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_struct$_Order_$6514_calldata_ptr":{"entryPoint":11537,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":11370,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":12511,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":12894,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":11772,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":11487,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint8":{"entryPoint":12401,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_string":{"entryPoint":11835,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_struct_Party_calldata":{"entryPoint":12545,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes32_t_bytes32_t_uint8__to_t_bytes32_t_bytes32_t_uint8__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":12689,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_2acab4a02365f399065e9ce76efb2e022c133c96451f5e343829a0e5cd04bfa7_t_stringliteral_224ed05dccb4f5c1e21e6e85fb29dd6c83074e33458fdfefb184d03fe8742f4f__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_address__to_t_address_t_address_t_uint256_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":11656,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":11957,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":12861,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_struct$_Party_$6436_calldata_ptr__to_t_bytes32_t_struct$_Party_$6436_memory_ptr__fromStack_reversed":{"entryPoint":12717,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes32_t_address_t_uint256__to_t_bytes32_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes32_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":9,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IAdapter_$6490__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":11909,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Party_$6436_calldata_ptr__to_t_struct$_Party_$6436_memory_ptr__fromStack_reversed":{"entryPoint":12675,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Party_$6436_memory_ptr__to_t_struct$_Party_$6436_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_address_t_uint256_t_uint256_t_address_t_address_t_uint256__to_t_uint256_t_uint256_t_address_t_uint256_t_uint256_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":9,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":12492,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":12245,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":12332,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":11799,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":12784,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":12436,"id":null,"parameterSlots":1,"returnSlots":1},"mod_t_uint256":{"entryPoint":12265,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":12198,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":12151,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":12737,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":12285,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":11292,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:18216:34","nodeType":"YulBlock","src":"0:18216:34","statements":[{"nativeSrc":"6:3:34","nodeType":"YulBlock","src":"6:3:34","statements":[]},{"body":{"nativeSrc":"113:149:34","nodeType":"YulBlock","src":"113:149:34","statements":[{"nativeSrc":"123:26:34","nodeType":"YulAssignment","src":"123:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"135:9:34","nodeType":"YulIdentifier","src":"135:9:34"},{"kind":"number","nativeSrc":"146:2:34","nodeType":"YulLiteral","src":"146:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"131:3:34","nodeType":"YulIdentifier","src":"131:3:34"},"nativeSrc":"131:18:34","nodeType":"YulFunctionCall","src":"131:18:34"},"variableNames":[{"name":"tail","nativeSrc":"123:4:34","nodeType":"YulIdentifier","src":"123:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"165:9:34","nodeType":"YulIdentifier","src":"165:9:34"},{"arguments":[{"name":"value0","nativeSrc":"180:6:34","nodeType":"YulIdentifier","src":"180:6:34"},{"kind":"number","nativeSrc":"188:66:34","nodeType":"YulLiteral","src":"188:66:34","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"176:3:34","nodeType":"YulIdentifier","src":"176:3:34"},"nativeSrc":"176:79:34","nodeType":"YulFunctionCall","src":"176:79:34"}],"functionName":{"name":"mstore","nativeSrc":"158:6:34","nodeType":"YulIdentifier","src":"158:6:34"},"nativeSrc":"158:98:34","nodeType":"YulFunctionCall","src":"158:98:34"},"nativeSrc":"158:98:34","nodeType":"YulExpressionStatement","src":"158:98:34"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"14:248:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"82:9:34","nodeType":"YulTypedName","src":"82:9:34","type":""},{"name":"value0","nativeSrc":"93:6:34","nodeType":"YulTypedName","src":"93:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"104:4:34","nodeType":"YulTypedName","src":"104:4:34","type":""}],"src":"14:248:34"},{"body":{"nativeSrc":"312:109:34","nodeType":"YulBlock","src":"312:109:34","statements":[{"body":{"nativeSrc":"399:16:34","nodeType":"YulBlock","src":"399:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"408:1:34","nodeType":"YulLiteral","src":"408:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"411:1:34","nodeType":"YulLiteral","src":"411:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"401:6:34","nodeType":"YulIdentifier","src":"401:6:34"},"nativeSrc":"401:12:34","nodeType":"YulFunctionCall","src":"401:12:34"},"nativeSrc":"401:12:34","nodeType":"YulExpressionStatement","src":"401:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"335:5:34","nodeType":"YulIdentifier","src":"335:5:34"},{"arguments":[{"name":"value","nativeSrc":"346:5:34","nodeType":"YulIdentifier","src":"346:5:34"},{"kind":"number","nativeSrc":"353:42:34","nodeType":"YulLiteral","src":"353:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"342:3:34","nodeType":"YulIdentifier","src":"342:3:34"},"nativeSrc":"342:54:34","nodeType":"YulFunctionCall","src":"342:54:34"}],"functionName":{"name":"eq","nativeSrc":"332:2:34","nodeType":"YulIdentifier","src":"332:2:34"},"nativeSrc":"332:65:34","nodeType":"YulFunctionCall","src":"332:65:34"}],"functionName":{"name":"iszero","nativeSrc":"325:6:34","nodeType":"YulIdentifier","src":"325:6:34"},"nativeSrc":"325:73:34","nodeType":"YulFunctionCall","src":"325:73:34"},"nativeSrc":"322:93:34","nodeType":"YulIf","src":"322:93:34"}]},"name":"validator_revert_address","nativeSrc":"267:154:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"301:5:34","nodeType":"YulTypedName","src":"301:5:34","type":""}],"src":"267:154:34"},{"body":{"nativeSrc":"513:228:34","nodeType":"YulBlock","src":"513:228:34","statements":[{"body":{"nativeSrc":"559:16:34","nodeType":"YulBlock","src":"559:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"568:1:34","nodeType":"YulLiteral","src":"568:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"571:1:34","nodeType":"YulLiteral","src":"571:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"561:6:34","nodeType":"YulIdentifier","src":"561:6:34"},"nativeSrc":"561:12:34","nodeType":"YulFunctionCall","src":"561:12:34"},"nativeSrc":"561:12:34","nodeType":"YulExpressionStatement","src":"561:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"534:7:34","nodeType":"YulIdentifier","src":"534:7:34"},{"name":"headStart","nativeSrc":"543:9:34","nodeType":"YulIdentifier","src":"543:9:34"}],"functionName":{"name":"sub","nativeSrc":"530:3:34","nodeType":"YulIdentifier","src":"530:3:34"},"nativeSrc":"530:23:34","nodeType":"YulFunctionCall","src":"530:23:34"},{"kind":"number","nativeSrc":"555:2:34","nodeType":"YulLiteral","src":"555:2:34","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"526:3:34","nodeType":"YulIdentifier","src":"526:3:34"},"nativeSrc":"526:32:34","nodeType":"YulFunctionCall","src":"526:32:34"},"nativeSrc":"523:52:34","nodeType":"YulIf","src":"523:52:34"},{"nativeSrc":"584:36:34","nodeType":"YulVariableDeclaration","src":"584:36:34","value":{"arguments":[{"name":"headStart","nativeSrc":"610:9:34","nodeType":"YulIdentifier","src":"610:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"597:12:34","nodeType":"YulIdentifier","src":"597:12:34"},"nativeSrc":"597:23:34","nodeType":"YulFunctionCall","src":"597:23:34"},"variables":[{"name":"value","nativeSrc":"588:5:34","nodeType":"YulTypedName","src":"588:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"654:5:34","nodeType":"YulIdentifier","src":"654:5:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"629:24:34","nodeType":"YulIdentifier","src":"629:24:34"},"nativeSrc":"629:31:34","nodeType":"YulFunctionCall","src":"629:31:34"},"nativeSrc":"629:31:34","nodeType":"YulExpressionStatement","src":"629:31:34"},{"nativeSrc":"669:15:34","nodeType":"YulAssignment","src":"669:15:34","value":{"name":"value","nativeSrc":"679:5:34","nodeType":"YulIdentifier","src":"679:5:34"},"variableNames":[{"name":"value0","nativeSrc":"669:6:34","nodeType":"YulIdentifier","src":"669:6:34"}]},{"nativeSrc":"693:42:34","nodeType":"YulAssignment","src":"693:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"720:9:34","nodeType":"YulIdentifier","src":"720:9:34"},{"kind":"number","nativeSrc":"731:2:34","nodeType":"YulLiteral","src":"731:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"716:3:34","nodeType":"YulIdentifier","src":"716:3:34"},"nativeSrc":"716:18:34","nodeType":"YulFunctionCall","src":"716:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"703:12:34","nodeType":"YulIdentifier","src":"703:12:34"},"nativeSrc":"703:32:34","nodeType":"YulFunctionCall","src":"703:32:34"},"variableNames":[{"name":"value1","nativeSrc":"693:6:34","nodeType":"YulIdentifier","src":"693:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"426:315:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"471:9:34","nodeType":"YulTypedName","src":"471:9:34","type":""},{"name":"dataEnd","nativeSrc":"482:7:34","nodeType":"YulTypedName","src":"482:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"494:6:34","nodeType":"YulTypedName","src":"494:6:34","type":""},{"name":"value1","nativeSrc":"502:6:34","nodeType":"YulTypedName","src":"502:6:34","type":""}],"src":"426:315:34"},{"body":{"nativeSrc":"841:92:34","nodeType":"YulBlock","src":"841:92:34","statements":[{"nativeSrc":"851:26:34","nodeType":"YulAssignment","src":"851:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"863:9:34","nodeType":"YulIdentifier","src":"863:9:34"},{"kind":"number","nativeSrc":"874:2:34","nodeType":"YulLiteral","src":"874:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"859:3:34","nodeType":"YulIdentifier","src":"859:3:34"},"nativeSrc":"859:18:34","nodeType":"YulFunctionCall","src":"859:18:34"},"variableNames":[{"name":"tail","nativeSrc":"851:4:34","nodeType":"YulIdentifier","src":"851:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"893:9:34","nodeType":"YulIdentifier","src":"893:9:34"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"918:6:34","nodeType":"YulIdentifier","src":"918:6:34"}],"functionName":{"name":"iszero","nativeSrc":"911:6:34","nodeType":"YulIdentifier","src":"911:6:34"},"nativeSrc":"911:14:34","nodeType":"YulFunctionCall","src":"911:14:34"}],"functionName":{"name":"iszero","nativeSrc":"904:6:34","nodeType":"YulIdentifier","src":"904:6:34"},"nativeSrc":"904:22:34","nodeType":"YulFunctionCall","src":"904:22:34"}],"functionName":{"name":"mstore","nativeSrc":"886:6:34","nodeType":"YulIdentifier","src":"886:6:34"},"nativeSrc":"886:41:34","nodeType":"YulFunctionCall","src":"886:41:34"},"nativeSrc":"886:41:34","nodeType":"YulExpressionStatement","src":"886:41:34"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"746:187:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"810:9:34","nodeType":"YulTypedName","src":"810:9:34","type":""},{"name":"value0","nativeSrc":"821:6:34","nodeType":"YulTypedName","src":"821:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"832:4:34","nodeType":"YulTypedName","src":"832:4:34","type":""}],"src":"746:187:34"},{"body":{"nativeSrc":"1043:510:34","nodeType":"YulBlock","src":"1043:510:34","statements":[{"body":{"nativeSrc":"1089:16:34","nodeType":"YulBlock","src":"1089:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1098:1:34","nodeType":"YulLiteral","src":"1098:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1101:1:34","nodeType":"YulLiteral","src":"1101:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1091:6:34","nodeType":"YulIdentifier","src":"1091:6:34"},"nativeSrc":"1091:12:34","nodeType":"YulFunctionCall","src":"1091:12:34"},"nativeSrc":"1091:12:34","nodeType":"YulExpressionStatement","src":"1091:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1064:7:34","nodeType":"YulIdentifier","src":"1064:7:34"},{"name":"headStart","nativeSrc":"1073:9:34","nodeType":"YulIdentifier","src":"1073:9:34"}],"functionName":{"name":"sub","nativeSrc":"1060:3:34","nodeType":"YulIdentifier","src":"1060:3:34"},"nativeSrc":"1060:23:34","nodeType":"YulFunctionCall","src":"1060:23:34"},{"kind":"number","nativeSrc":"1085:2:34","nodeType":"YulLiteral","src":"1085:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1056:3:34","nodeType":"YulIdentifier","src":"1056:3:34"},"nativeSrc":"1056:32:34","nodeType":"YulFunctionCall","src":"1056:32:34"},"nativeSrc":"1053:52:34","nodeType":"YulIf","src":"1053:52:34"},{"nativeSrc":"1114:37:34","nodeType":"YulVariableDeclaration","src":"1114:37:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1141:9:34","nodeType":"YulIdentifier","src":"1141:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"1128:12:34","nodeType":"YulIdentifier","src":"1128:12:34"},"nativeSrc":"1128:23:34","nodeType":"YulFunctionCall","src":"1128:23:34"},"variables":[{"name":"offset","nativeSrc":"1118:6:34","nodeType":"YulTypedName","src":"1118:6:34","type":""}]},{"nativeSrc":"1160:28:34","nodeType":"YulVariableDeclaration","src":"1160:28:34","value":{"kind":"number","nativeSrc":"1170:18:34","nodeType":"YulLiteral","src":"1170:18:34","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1164:2:34","nodeType":"YulTypedName","src":"1164:2:34","type":""}]},{"body":{"nativeSrc":"1215:16:34","nodeType":"YulBlock","src":"1215:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1224:1:34","nodeType":"YulLiteral","src":"1224:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1227:1:34","nodeType":"YulLiteral","src":"1227:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1217:6:34","nodeType":"YulIdentifier","src":"1217:6:34"},"nativeSrc":"1217:12:34","nodeType":"YulFunctionCall","src":"1217:12:34"},"nativeSrc":"1217:12:34","nodeType":"YulExpressionStatement","src":"1217:12:34"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"1203:6:34","nodeType":"YulIdentifier","src":"1203:6:34"},{"name":"_1","nativeSrc":"1211:2:34","nodeType":"YulIdentifier","src":"1211:2:34"}],"functionName":{"name":"gt","nativeSrc":"1200:2:34","nodeType":"YulIdentifier","src":"1200:2:34"},"nativeSrc":"1200:14:34","nodeType":"YulFunctionCall","src":"1200:14:34"},"nativeSrc":"1197:34:34","nodeType":"YulIf","src":"1197:34:34"},{"nativeSrc":"1240:32:34","nodeType":"YulVariableDeclaration","src":"1240:32:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1254:9:34","nodeType":"YulIdentifier","src":"1254:9:34"},{"name":"offset","nativeSrc":"1265:6:34","nodeType":"YulIdentifier","src":"1265:6:34"}],"functionName":{"name":"add","nativeSrc":"1250:3:34","nodeType":"YulIdentifier","src":"1250:3:34"},"nativeSrc":"1250:22:34","nodeType":"YulFunctionCall","src":"1250:22:34"},"variables":[{"name":"_2","nativeSrc":"1244:2:34","nodeType":"YulTypedName","src":"1244:2:34","type":""}]},{"body":{"nativeSrc":"1320:16:34","nodeType":"YulBlock","src":"1320:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1329:1:34","nodeType":"YulLiteral","src":"1329:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1332:1:34","nodeType":"YulLiteral","src":"1332:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1322:6:34","nodeType":"YulIdentifier","src":"1322:6:34"},"nativeSrc":"1322:12:34","nodeType":"YulFunctionCall","src":"1322:12:34"},"nativeSrc":"1322:12:34","nodeType":"YulExpressionStatement","src":"1322:12:34"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1299:2:34","nodeType":"YulIdentifier","src":"1299:2:34"},{"kind":"number","nativeSrc":"1303:4:34","nodeType":"YulLiteral","src":"1303:4:34","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1295:3:34","nodeType":"YulIdentifier","src":"1295:3:34"},"nativeSrc":"1295:13:34","nodeType":"YulFunctionCall","src":"1295:13:34"},{"name":"dataEnd","nativeSrc":"1310:7:34","nodeType":"YulIdentifier","src":"1310:7:34"}],"functionName":{"name":"slt","nativeSrc":"1291:3:34","nodeType":"YulIdentifier","src":"1291:3:34"},"nativeSrc":"1291:27:34","nodeType":"YulFunctionCall","src":"1291:27:34"}],"functionName":{"name":"iszero","nativeSrc":"1284:6:34","nodeType":"YulIdentifier","src":"1284:6:34"},"nativeSrc":"1284:35:34","nodeType":"YulFunctionCall","src":"1284:35:34"},"nativeSrc":"1281:55:34","nodeType":"YulIf","src":"1281:55:34"},{"nativeSrc":"1345:30:34","nodeType":"YulVariableDeclaration","src":"1345:30:34","value":{"arguments":[{"name":"_2","nativeSrc":"1372:2:34","nodeType":"YulIdentifier","src":"1372:2:34"}],"functionName":{"name":"calldataload","nativeSrc":"1359:12:34","nodeType":"YulIdentifier","src":"1359:12:34"},"nativeSrc":"1359:16:34","nodeType":"YulFunctionCall","src":"1359:16:34"},"variables":[{"name":"length","nativeSrc":"1349:6:34","nodeType":"YulTypedName","src":"1349:6:34","type":""}]},{"body":{"nativeSrc":"1402:16:34","nodeType":"YulBlock","src":"1402:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1411:1:34","nodeType":"YulLiteral","src":"1411:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1414:1:34","nodeType":"YulLiteral","src":"1414:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1404:6:34","nodeType":"YulIdentifier","src":"1404:6:34"},"nativeSrc":"1404:12:34","nodeType":"YulFunctionCall","src":"1404:12:34"},"nativeSrc":"1404:12:34","nodeType":"YulExpressionStatement","src":"1404:12:34"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"1390:6:34","nodeType":"YulIdentifier","src":"1390:6:34"},{"name":"_1","nativeSrc":"1398:2:34","nodeType":"YulIdentifier","src":"1398:2:34"}],"functionName":{"name":"gt","nativeSrc":"1387:2:34","nodeType":"YulIdentifier","src":"1387:2:34"},"nativeSrc":"1387:14:34","nodeType":"YulFunctionCall","src":"1387:14:34"},"nativeSrc":"1384:34:34","nodeType":"YulIf","src":"1384:34:34"},{"body":{"nativeSrc":"1476:16:34","nodeType":"YulBlock","src":"1476:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1485:1:34","nodeType":"YulLiteral","src":"1485:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1488:1:34","nodeType":"YulLiteral","src":"1488:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1478:6:34","nodeType":"YulIdentifier","src":"1478:6:34"},"nativeSrc":"1478:12:34","nodeType":"YulFunctionCall","src":"1478:12:34"},"nativeSrc":"1478:12:34","nodeType":"YulExpressionStatement","src":"1478:12:34"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"1441:2:34","nodeType":"YulIdentifier","src":"1441:2:34"},{"arguments":[{"kind":"number","nativeSrc":"1449:1:34","nodeType":"YulLiteral","src":"1449:1:34","type":"","value":"5"},{"name":"length","nativeSrc":"1452:6:34","nodeType":"YulIdentifier","src":"1452:6:34"}],"functionName":{"name":"shl","nativeSrc":"1445:3:34","nodeType":"YulIdentifier","src":"1445:3:34"},"nativeSrc":"1445:14:34","nodeType":"YulFunctionCall","src":"1445:14:34"}],"functionName":{"name":"add","nativeSrc":"1437:3:34","nodeType":"YulIdentifier","src":"1437:3:34"},"nativeSrc":"1437:23:34","nodeType":"YulFunctionCall","src":"1437:23:34"},{"kind":"number","nativeSrc":"1462:2:34","nodeType":"YulLiteral","src":"1462:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1433:3:34","nodeType":"YulIdentifier","src":"1433:3:34"},"nativeSrc":"1433:32:34","nodeType":"YulFunctionCall","src":"1433:32:34"},{"name":"dataEnd","nativeSrc":"1467:7:34","nodeType":"YulIdentifier","src":"1467:7:34"}],"functionName":{"name":"gt","nativeSrc":"1430:2:34","nodeType":"YulIdentifier","src":"1430:2:34"},"nativeSrc":"1430:45:34","nodeType":"YulFunctionCall","src":"1430:45:34"},"nativeSrc":"1427:65:34","nodeType":"YulIf","src":"1427:65:34"},{"nativeSrc":"1501:21:34","nodeType":"YulAssignment","src":"1501:21:34","value":{"arguments":[{"name":"_2","nativeSrc":"1515:2:34","nodeType":"YulIdentifier","src":"1515:2:34"},{"kind":"number","nativeSrc":"1519:2:34","nodeType":"YulLiteral","src":"1519:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1511:3:34","nodeType":"YulIdentifier","src":"1511:3:34"},"nativeSrc":"1511:11:34","nodeType":"YulFunctionCall","src":"1511:11:34"},"variableNames":[{"name":"value0","nativeSrc":"1501:6:34","nodeType":"YulIdentifier","src":"1501:6:34"}]},{"nativeSrc":"1531:16:34","nodeType":"YulAssignment","src":"1531:16:34","value":{"name":"length","nativeSrc":"1541:6:34","nodeType":"YulIdentifier","src":"1541:6:34"},"variableNames":[{"name":"value1","nativeSrc":"1531:6:34","nodeType":"YulIdentifier","src":"1531:6:34"}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"938:615:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1001:9:34","nodeType":"YulTypedName","src":"1001:9:34","type":""},{"name":"dataEnd","nativeSrc":"1012:7:34","nodeType":"YulTypedName","src":"1012:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1024:6:34","nodeType":"YulTypedName","src":"1024:6:34","type":""},{"name":"value1","nativeSrc":"1032:6:34","nodeType":"YulTypedName","src":"1032:6:34","type":""}],"src":"938:615:34"},{"body":{"nativeSrc":"1659:76:34","nodeType":"YulBlock","src":"1659:76:34","statements":[{"nativeSrc":"1669:26:34","nodeType":"YulAssignment","src":"1669:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1681:9:34","nodeType":"YulIdentifier","src":"1681:9:34"},{"kind":"number","nativeSrc":"1692:2:34","nodeType":"YulLiteral","src":"1692:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1677:3:34","nodeType":"YulIdentifier","src":"1677:3:34"},"nativeSrc":"1677:18:34","nodeType":"YulFunctionCall","src":"1677:18:34"},"variableNames":[{"name":"tail","nativeSrc":"1669:4:34","nodeType":"YulIdentifier","src":"1669:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1711:9:34","nodeType":"YulIdentifier","src":"1711:9:34"},{"name":"value0","nativeSrc":"1722:6:34","nodeType":"YulIdentifier","src":"1722:6:34"}],"functionName":{"name":"mstore","nativeSrc":"1704:6:34","nodeType":"YulIdentifier","src":"1704:6:34"},"nativeSrc":"1704:25:34","nodeType":"YulFunctionCall","src":"1704:25:34"},"nativeSrc":"1704:25:34","nodeType":"YulExpressionStatement","src":"1704:25:34"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"1558:177:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1628:9:34","nodeType":"YulTypedName","src":"1628:9:34","type":""},{"name":"value0","nativeSrc":"1639:6:34","nodeType":"YulTypedName","src":"1639:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1650:4:34","nodeType":"YulTypedName","src":"1650:4:34","type":""}],"src":"1558:177:34"},{"body":{"nativeSrc":"1810:110:34","nodeType":"YulBlock","src":"1810:110:34","statements":[{"body":{"nativeSrc":"1856:16:34","nodeType":"YulBlock","src":"1856:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1865:1:34","nodeType":"YulLiteral","src":"1865:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1868:1:34","nodeType":"YulLiteral","src":"1868:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1858:6:34","nodeType":"YulIdentifier","src":"1858:6:34"},"nativeSrc":"1858:12:34","nodeType":"YulFunctionCall","src":"1858:12:34"},"nativeSrc":"1858:12:34","nodeType":"YulExpressionStatement","src":"1858:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1831:7:34","nodeType":"YulIdentifier","src":"1831:7:34"},{"name":"headStart","nativeSrc":"1840:9:34","nodeType":"YulIdentifier","src":"1840:9:34"}],"functionName":{"name":"sub","nativeSrc":"1827:3:34","nodeType":"YulIdentifier","src":"1827:3:34"},"nativeSrc":"1827:23:34","nodeType":"YulFunctionCall","src":"1827:23:34"},{"kind":"number","nativeSrc":"1852:2:34","nodeType":"YulLiteral","src":"1852:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1823:3:34","nodeType":"YulIdentifier","src":"1823:3:34"},"nativeSrc":"1823:32:34","nodeType":"YulFunctionCall","src":"1823:32:34"},"nativeSrc":"1820:52:34","nodeType":"YulIf","src":"1820:52:34"},{"nativeSrc":"1881:33:34","nodeType":"YulAssignment","src":"1881:33:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1904:9:34","nodeType":"YulIdentifier","src":"1904:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"1891:12:34","nodeType":"YulIdentifier","src":"1891:12:34"},"nativeSrc":"1891:23:34","nodeType":"YulFunctionCall","src":"1891:23:34"},"variableNames":[{"name":"value0","nativeSrc":"1881:6:34","nodeType":"YulIdentifier","src":"1881:6:34"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1740:180:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1776:9:34","nodeType":"YulTypedName","src":"1776:9:34","type":""},{"name":"dataEnd","nativeSrc":"1787:7:34","nodeType":"YulTypedName","src":"1787:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1799:6:34","nodeType":"YulTypedName","src":"1799:6:34","type":""}],"src":"1740:180:34"},{"body":{"nativeSrc":"1993:86:34","nodeType":"YulBlock","src":"1993:86:34","statements":[{"body":{"nativeSrc":"2033:16:34","nodeType":"YulBlock","src":"2033:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2042:1:34","nodeType":"YulLiteral","src":"2042:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2045:1:34","nodeType":"YulLiteral","src":"2045:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2035:6:34","nodeType":"YulIdentifier","src":"2035:6:34"},"nativeSrc":"2035:12:34","nodeType":"YulFunctionCall","src":"2035:12:34"},"nativeSrc":"2035:12:34","nodeType":"YulExpressionStatement","src":"2035:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"2014:3:34","nodeType":"YulIdentifier","src":"2014:3:34"},{"name":"offset","nativeSrc":"2019:6:34","nodeType":"YulIdentifier","src":"2019:6:34"}],"functionName":{"name":"sub","nativeSrc":"2010:3:34","nodeType":"YulIdentifier","src":"2010:3:34"},"nativeSrc":"2010:16:34","nodeType":"YulFunctionCall","src":"2010:16:34"},{"kind":"number","nativeSrc":"2028:3:34","nodeType":"YulLiteral","src":"2028:3:34","type":"","value":"544"}],"functionName":{"name":"slt","nativeSrc":"2006:3:34","nodeType":"YulIdentifier","src":"2006:3:34"},"nativeSrc":"2006:26:34","nodeType":"YulFunctionCall","src":"2006:26:34"},"nativeSrc":"2003:46:34","nodeType":"YulIf","src":"2003:46:34"},{"nativeSrc":"2058:15:34","nodeType":"YulAssignment","src":"2058:15:34","value":{"name":"offset","nativeSrc":"2067:6:34","nodeType":"YulIdentifier","src":"2067:6:34"},"variableNames":[{"name":"value","nativeSrc":"2058:5:34","nodeType":"YulIdentifier","src":"2058:5:34"}]}]},"name":"abi_decode_struct_Order_calldata","nativeSrc":"1925:154:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1967:6:34","nodeType":"YulTypedName","src":"1967:6:34","type":""},{"name":"end","nativeSrc":"1975:3:34","nodeType":"YulTypedName","src":"1975:3:34","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1983:5:34","nodeType":"YulTypedName","src":"1983:5:34","type":""}],"src":"1925:154:34"},{"body":{"nativeSrc":"2213:309:34","nodeType":"YulBlock","src":"2213:309:34","statements":[{"body":{"nativeSrc":"2260:16:34","nodeType":"YulBlock","src":"2260:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2269:1:34","nodeType":"YulLiteral","src":"2269:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2272:1:34","nodeType":"YulLiteral","src":"2272:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2262:6:34","nodeType":"YulIdentifier","src":"2262:6:34"},"nativeSrc":"2262:12:34","nodeType":"YulFunctionCall","src":"2262:12:34"},"nativeSrc":"2262:12:34","nodeType":"YulExpressionStatement","src":"2262:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2234:7:34","nodeType":"YulIdentifier","src":"2234:7:34"},{"name":"headStart","nativeSrc":"2243:9:34","nodeType":"YulIdentifier","src":"2243:9:34"}],"functionName":{"name":"sub","nativeSrc":"2230:3:34","nodeType":"YulIdentifier","src":"2230:3:34"},"nativeSrc":"2230:23:34","nodeType":"YulFunctionCall","src":"2230:23:34"},{"kind":"number","nativeSrc":"2255:3:34","nodeType":"YulLiteral","src":"2255:3:34","type":"","value":"608"}],"functionName":{"name":"slt","nativeSrc":"2226:3:34","nodeType":"YulIdentifier","src":"2226:3:34"},"nativeSrc":"2226:33:34","nodeType":"YulFunctionCall","src":"2226:33:34"},"nativeSrc":"2223:53:34","nodeType":"YulIf","src":"2223:53:34"},{"nativeSrc":"2285:36:34","nodeType":"YulVariableDeclaration","src":"2285:36:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2311:9:34","nodeType":"YulIdentifier","src":"2311:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"2298:12:34","nodeType":"YulIdentifier","src":"2298:12:34"},"nativeSrc":"2298:23:34","nodeType":"YulFunctionCall","src":"2298:23:34"},"variables":[{"name":"value","nativeSrc":"2289:5:34","nodeType":"YulTypedName","src":"2289:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2355:5:34","nodeType":"YulIdentifier","src":"2355:5:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2330:24:34","nodeType":"YulIdentifier","src":"2330:24:34"},"nativeSrc":"2330:31:34","nodeType":"YulFunctionCall","src":"2330:31:34"},"nativeSrc":"2330:31:34","nodeType":"YulExpressionStatement","src":"2330:31:34"},{"nativeSrc":"2370:15:34","nodeType":"YulAssignment","src":"2370:15:34","value":{"name":"value","nativeSrc":"2380:5:34","nodeType":"YulIdentifier","src":"2380:5:34"},"variableNames":[{"name":"value0","nativeSrc":"2370:6:34","nodeType":"YulIdentifier","src":"2370:6:34"}]},{"nativeSrc":"2394:42:34","nodeType":"YulAssignment","src":"2394:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2421:9:34","nodeType":"YulIdentifier","src":"2421:9:34"},{"kind":"number","nativeSrc":"2432:2:34","nodeType":"YulLiteral","src":"2432:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2417:3:34","nodeType":"YulIdentifier","src":"2417:3:34"},"nativeSrc":"2417:18:34","nodeType":"YulFunctionCall","src":"2417:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"2404:12:34","nodeType":"YulIdentifier","src":"2404:12:34"},"nativeSrc":"2404:32:34","nodeType":"YulFunctionCall","src":"2404:32:34"},"variableNames":[{"name":"value1","nativeSrc":"2394:6:34","nodeType":"YulIdentifier","src":"2394:6:34"}]},{"nativeSrc":"2445:71:34","nodeType":"YulAssignment","src":"2445:71:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2492:9:34","nodeType":"YulIdentifier","src":"2492:9:34"},{"kind":"number","nativeSrc":"2503:2:34","nodeType":"YulLiteral","src":"2503:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2488:3:34","nodeType":"YulIdentifier","src":"2488:3:34"},"nativeSrc":"2488:18:34","nodeType":"YulFunctionCall","src":"2488:18:34"},{"name":"dataEnd","nativeSrc":"2508:7:34","nodeType":"YulIdentifier","src":"2508:7:34"}],"functionName":{"name":"abi_decode_struct_Order_calldata","nativeSrc":"2455:32:34","nodeType":"YulIdentifier","src":"2455:32:34"},"nativeSrc":"2455:61:34","nodeType":"YulFunctionCall","src":"2455:61:34"},"variableNames":[{"name":"value2","nativeSrc":"2445:6:34","nodeType":"YulIdentifier","src":"2445:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_struct$_Order_$6514_calldata_ptr","nativeSrc":"2084:438:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2163:9:34","nodeType":"YulTypedName","src":"2163:9:34","type":""},{"name":"dataEnd","nativeSrc":"2174:7:34","nodeType":"YulTypedName","src":"2174:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2186:6:34","nodeType":"YulTypedName","src":"2186:6:34","type":""},{"name":"value1","nativeSrc":"2194:6:34","nodeType":"YulTypedName","src":"2194:6:34","type":""},{"name":"value2","nativeSrc":"2202:6:34","nodeType":"YulTypedName","src":"2202:6:34","type":""}],"src":"2084:438:34"},{"body":{"nativeSrc":"2639:258:34","nodeType":"YulBlock","src":"2639:258:34","statements":[{"body":{"nativeSrc":"2686:16:34","nodeType":"YulBlock","src":"2686:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2695:1:34","nodeType":"YulLiteral","src":"2695:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2698:1:34","nodeType":"YulLiteral","src":"2698:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2688:6:34","nodeType":"YulIdentifier","src":"2688:6:34"},"nativeSrc":"2688:12:34","nodeType":"YulFunctionCall","src":"2688:12:34"},"nativeSrc":"2688:12:34","nodeType":"YulExpressionStatement","src":"2688:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2660:7:34","nodeType":"YulIdentifier","src":"2660:7:34"},{"name":"headStart","nativeSrc":"2669:9:34","nodeType":"YulIdentifier","src":"2669:9:34"}],"functionName":{"name":"sub","nativeSrc":"2656:3:34","nodeType":"YulIdentifier","src":"2656:3:34"},"nativeSrc":"2656:23:34","nodeType":"YulFunctionCall","src":"2656:23:34"},{"kind":"number","nativeSrc":"2681:3:34","nodeType":"YulLiteral","src":"2681:3:34","type":"","value":"576"}],"functionName":{"name":"slt","nativeSrc":"2652:3:34","nodeType":"YulIdentifier","src":"2652:3:34"},"nativeSrc":"2652:33:34","nodeType":"YulFunctionCall","src":"2652:33:34"},"nativeSrc":"2649:53:34","nodeType":"YulIf","src":"2649:53:34"},{"nativeSrc":"2711:36:34","nodeType":"YulVariableDeclaration","src":"2711:36:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2737:9:34","nodeType":"YulIdentifier","src":"2737:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"2724:12:34","nodeType":"YulIdentifier","src":"2724:12:34"},"nativeSrc":"2724:23:34","nodeType":"YulFunctionCall","src":"2724:23:34"},"variables":[{"name":"value","nativeSrc":"2715:5:34","nodeType":"YulTypedName","src":"2715:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2781:5:34","nodeType":"YulIdentifier","src":"2781:5:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2756:24:34","nodeType":"YulIdentifier","src":"2756:24:34"},"nativeSrc":"2756:31:34","nodeType":"YulFunctionCall","src":"2756:31:34"},"nativeSrc":"2756:31:34","nodeType":"YulExpressionStatement","src":"2756:31:34"},{"nativeSrc":"2796:15:34","nodeType":"YulAssignment","src":"2796:15:34","value":{"name":"value","nativeSrc":"2806:5:34","nodeType":"YulIdentifier","src":"2806:5:34"},"variableNames":[{"name":"value0","nativeSrc":"2796:6:34","nodeType":"YulIdentifier","src":"2796:6:34"}]},{"nativeSrc":"2820:71:34","nodeType":"YulAssignment","src":"2820:71:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2867:9:34","nodeType":"YulIdentifier","src":"2867:9:34"},{"kind":"number","nativeSrc":"2878:2:34","nodeType":"YulLiteral","src":"2878:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2863:3:34","nodeType":"YulIdentifier","src":"2863:3:34"},"nativeSrc":"2863:18:34","nodeType":"YulFunctionCall","src":"2863:18:34"},{"name":"dataEnd","nativeSrc":"2883:7:34","nodeType":"YulIdentifier","src":"2883:7:34"}],"functionName":{"name":"abi_decode_struct_Order_calldata","nativeSrc":"2830:32:34","nodeType":"YulIdentifier","src":"2830:32:34"},"nativeSrc":"2830:61:34","nodeType":"YulFunctionCall","src":"2830:61:34"},"variableNames":[{"name":"value1","nativeSrc":"2820:6:34","nodeType":"YulIdentifier","src":"2820:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_struct$_Order_$6514_calldata_ptr","nativeSrc":"2527:370:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2597:9:34","nodeType":"YulTypedName","src":"2597:9:34","type":""},{"name":"dataEnd","nativeSrc":"2608:7:34","nodeType":"YulTypedName","src":"2608:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2620:6:34","nodeType":"YulTypedName","src":"2620:6:34","type":""},{"name":"value1","nativeSrc":"2628:6:34","nodeType":"YulTypedName","src":"2628:6:34","type":""}],"src":"2527:370:34"},{"body":{"nativeSrc":"3053:481:34","nodeType":"YulBlock","src":"3053:481:34","statements":[{"nativeSrc":"3063:12:34","nodeType":"YulVariableDeclaration","src":"3063:12:34","value":{"kind":"number","nativeSrc":"3073:2:34","nodeType":"YulLiteral","src":"3073:2:34","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"3067:2:34","nodeType":"YulTypedName","src":"3067:2:34","type":""}]},{"nativeSrc":"3084:32:34","nodeType":"YulVariableDeclaration","src":"3084:32:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3102:9:34","nodeType":"YulIdentifier","src":"3102:9:34"},{"kind":"number","nativeSrc":"3113:2:34","nodeType":"YulLiteral","src":"3113:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3098:3:34","nodeType":"YulIdentifier","src":"3098:3:34"},"nativeSrc":"3098:18:34","nodeType":"YulFunctionCall","src":"3098:18:34"},"variables":[{"name":"tail_1","nativeSrc":"3088:6:34","nodeType":"YulTypedName","src":"3088:6:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3132:9:34","nodeType":"YulIdentifier","src":"3132:9:34"},{"kind":"number","nativeSrc":"3143:2:34","nodeType":"YulLiteral","src":"3143:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3125:6:34","nodeType":"YulIdentifier","src":"3125:6:34"},"nativeSrc":"3125:21:34","nodeType":"YulFunctionCall","src":"3125:21:34"},"nativeSrc":"3125:21:34","nodeType":"YulExpressionStatement","src":"3125:21:34"},{"nativeSrc":"3155:17:34","nodeType":"YulVariableDeclaration","src":"3155:17:34","value":{"name":"tail_1","nativeSrc":"3166:6:34","nodeType":"YulIdentifier","src":"3166:6:34"},"variables":[{"name":"pos","nativeSrc":"3159:3:34","nodeType":"YulTypedName","src":"3159:3:34","type":""}]},{"nativeSrc":"3181:27:34","nodeType":"YulVariableDeclaration","src":"3181:27:34","value":{"arguments":[{"name":"value0","nativeSrc":"3201:6:34","nodeType":"YulIdentifier","src":"3201:6:34"}],"functionName":{"name":"mload","nativeSrc":"3195:5:34","nodeType":"YulIdentifier","src":"3195:5:34"},"nativeSrc":"3195:13:34","nodeType":"YulFunctionCall","src":"3195:13:34"},"variables":[{"name":"length","nativeSrc":"3185:6:34","nodeType":"YulTypedName","src":"3185:6:34","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nativeSrc":"3224:6:34","nodeType":"YulIdentifier","src":"3224:6:34"},{"name":"length","nativeSrc":"3232:6:34","nodeType":"YulIdentifier","src":"3232:6:34"}],"functionName":{"name":"mstore","nativeSrc":"3217:6:34","nodeType":"YulIdentifier","src":"3217:6:34"},"nativeSrc":"3217:22:34","nodeType":"YulFunctionCall","src":"3217:22:34"},"nativeSrc":"3217:22:34","nodeType":"YulExpressionStatement","src":"3217:22:34"},{"nativeSrc":"3248:25:34","nodeType":"YulAssignment","src":"3248:25:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3259:9:34","nodeType":"YulIdentifier","src":"3259:9:34"},{"kind":"number","nativeSrc":"3270:2:34","nodeType":"YulLiteral","src":"3270:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3255:3:34","nodeType":"YulIdentifier","src":"3255:3:34"},"nativeSrc":"3255:18:34","nodeType":"YulFunctionCall","src":"3255:18:34"},"variableNames":[{"name":"pos","nativeSrc":"3248:3:34","nodeType":"YulIdentifier","src":"3248:3:34"}]},{"nativeSrc":"3282:29:34","nodeType":"YulVariableDeclaration","src":"3282:29:34","value":{"arguments":[{"name":"value0","nativeSrc":"3300:6:34","nodeType":"YulIdentifier","src":"3300:6:34"},{"kind":"number","nativeSrc":"3308:2:34","nodeType":"YulLiteral","src":"3308:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3296:3:34","nodeType":"YulIdentifier","src":"3296:3:34"},"nativeSrc":"3296:15:34","nodeType":"YulFunctionCall","src":"3296:15:34"},"variables":[{"name":"srcPtr","nativeSrc":"3286:6:34","nodeType":"YulTypedName","src":"3286:6:34","type":""}]},{"nativeSrc":"3320:10:34","nodeType":"YulVariableDeclaration","src":"3320:10:34","value":{"kind":"number","nativeSrc":"3329:1:34","nodeType":"YulLiteral","src":"3329:1:34","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3324:1:34","nodeType":"YulTypedName","src":"3324:1:34","type":""}]},{"body":{"nativeSrc":"3388:120:34","nodeType":"YulBlock","src":"3388:120:34","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3409:3:34","nodeType":"YulIdentifier","src":"3409:3:34"},{"arguments":[{"name":"srcPtr","nativeSrc":"3420:6:34","nodeType":"YulIdentifier","src":"3420:6:34"}],"functionName":{"name":"mload","nativeSrc":"3414:5:34","nodeType":"YulIdentifier","src":"3414:5:34"},"nativeSrc":"3414:13:34","nodeType":"YulFunctionCall","src":"3414:13:34"}],"functionName":{"name":"mstore","nativeSrc":"3402:6:34","nodeType":"YulIdentifier","src":"3402:6:34"},"nativeSrc":"3402:26:34","nodeType":"YulFunctionCall","src":"3402:26:34"},"nativeSrc":"3402:26:34","nodeType":"YulExpressionStatement","src":"3402:26:34"},{"nativeSrc":"3441:19:34","nodeType":"YulAssignment","src":"3441:19:34","value":{"arguments":[{"name":"pos","nativeSrc":"3452:3:34","nodeType":"YulIdentifier","src":"3452:3:34"},{"name":"_1","nativeSrc":"3457:2:34","nodeType":"YulIdentifier","src":"3457:2:34"}],"functionName":{"name":"add","nativeSrc":"3448:3:34","nodeType":"YulIdentifier","src":"3448:3:34"},"nativeSrc":"3448:12:34","nodeType":"YulFunctionCall","src":"3448:12:34"},"variableNames":[{"name":"pos","nativeSrc":"3441:3:34","nodeType":"YulIdentifier","src":"3441:3:34"}]},{"nativeSrc":"3473:25:34","nodeType":"YulAssignment","src":"3473:25:34","value":{"arguments":[{"name":"srcPtr","nativeSrc":"3487:6:34","nodeType":"YulIdentifier","src":"3487:6:34"},{"name":"_1","nativeSrc":"3495:2:34","nodeType":"YulIdentifier","src":"3495:2:34"}],"functionName":{"name":"add","nativeSrc":"3483:3:34","nodeType":"YulIdentifier","src":"3483:3:34"},"nativeSrc":"3483:15:34","nodeType":"YulFunctionCall","src":"3483:15:34"},"variableNames":[{"name":"srcPtr","nativeSrc":"3473:6:34","nodeType":"YulIdentifier","src":"3473:6:34"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3350:1:34","nodeType":"YulIdentifier","src":"3350:1:34"},{"name":"length","nativeSrc":"3353:6:34","nodeType":"YulIdentifier","src":"3353:6:34"}],"functionName":{"name":"lt","nativeSrc":"3347:2:34","nodeType":"YulIdentifier","src":"3347:2:34"},"nativeSrc":"3347:13:34","nodeType":"YulFunctionCall","src":"3347:13:34"},"nativeSrc":"3339:169:34","nodeType":"YulForLoop","post":{"nativeSrc":"3361:18:34","nodeType":"YulBlock","src":"3361:18:34","statements":[{"nativeSrc":"3363:14:34","nodeType":"YulAssignment","src":"3363:14:34","value":{"arguments":[{"name":"i","nativeSrc":"3372:1:34","nodeType":"YulIdentifier","src":"3372:1:34"},{"kind":"number","nativeSrc":"3375:1:34","nodeType":"YulLiteral","src":"3375:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3368:3:34","nodeType":"YulIdentifier","src":"3368:3:34"},"nativeSrc":"3368:9:34","nodeType":"YulFunctionCall","src":"3368:9:34"},"variableNames":[{"name":"i","nativeSrc":"3363:1:34","nodeType":"YulIdentifier","src":"3363:1:34"}]}]},"pre":{"nativeSrc":"3343:3:34","nodeType":"YulBlock","src":"3343:3:34","statements":[]},"src":"3339:169:34"},{"nativeSrc":"3517:11:34","nodeType":"YulAssignment","src":"3517:11:34","value":{"name":"pos","nativeSrc":"3525:3:34","nodeType":"YulIdentifier","src":"3525:3:34"},"variableNames":[{"name":"tail","nativeSrc":"3517:4:34","nodeType":"YulIdentifier","src":"3517:4:34"}]}]},"name":"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"2902:632:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3022:9:34","nodeType":"YulTypedName","src":"3022:9:34","type":""},{"name":"value0","nativeSrc":"3033:6:34","nodeType":"YulTypedName","src":"3033:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3044:4:34","nodeType":"YulTypedName","src":"3044:4:34","type":""}],"src":"2902:632:34"},{"body":{"nativeSrc":"3587:171:34","nodeType":"YulBlock","src":"3587:171:34","statements":[{"nativeSrc":"3597:29:34","nodeType":"YulAssignment","src":"3597:29:34","value":{"arguments":[{"name":"offset","nativeSrc":"3619:6:34","nodeType":"YulIdentifier","src":"3619:6:34"}],"functionName":{"name":"calldataload","nativeSrc":"3606:12:34","nodeType":"YulIdentifier","src":"3606:12:34"},"nativeSrc":"3606:20:34","nodeType":"YulFunctionCall","src":"3606:20:34"},"variableNames":[{"name":"value","nativeSrc":"3597:5:34","nodeType":"YulIdentifier","src":"3597:5:34"}]},{"body":{"nativeSrc":"3736:16:34","nodeType":"YulBlock","src":"3736:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3745:1:34","nodeType":"YulLiteral","src":"3745:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3748:1:34","nodeType":"YulLiteral","src":"3748:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3738:6:34","nodeType":"YulIdentifier","src":"3738:6:34"},"nativeSrc":"3738:12:34","nodeType":"YulFunctionCall","src":"3738:12:34"},"nativeSrc":"3738:12:34","nodeType":"YulExpressionStatement","src":"3738:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3648:5:34","nodeType":"YulIdentifier","src":"3648:5:34"},{"arguments":[{"name":"value","nativeSrc":"3659:5:34","nodeType":"YulIdentifier","src":"3659:5:34"},{"kind":"number","nativeSrc":"3666:66:34","nodeType":"YulLiteral","src":"3666:66:34","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"3655:3:34","nodeType":"YulIdentifier","src":"3655:3:34"},"nativeSrc":"3655:78:34","nodeType":"YulFunctionCall","src":"3655:78:34"}],"functionName":{"name":"eq","nativeSrc":"3645:2:34","nodeType":"YulIdentifier","src":"3645:2:34"},"nativeSrc":"3645:89:34","nodeType":"YulFunctionCall","src":"3645:89:34"}],"functionName":{"name":"iszero","nativeSrc":"3638:6:34","nodeType":"YulIdentifier","src":"3638:6:34"},"nativeSrc":"3638:97:34","nodeType":"YulFunctionCall","src":"3638:97:34"},"nativeSrc":"3635:117:34","nodeType":"YulIf","src":"3635:117:34"}]},"name":"abi_decode_bytes4","nativeSrc":"3539:219:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3566:6:34","nodeType":"YulTypedName","src":"3566:6:34","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3577:5:34","nodeType":"YulTypedName","src":"3577:5:34","type":""}],"src":"3539:219:34"},{"body":{"nativeSrc":"3832:115:34","nodeType":"YulBlock","src":"3832:115:34","statements":[{"body":{"nativeSrc":"3878:16:34","nodeType":"YulBlock","src":"3878:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3887:1:34","nodeType":"YulLiteral","src":"3887:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3890:1:34","nodeType":"YulLiteral","src":"3890:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3880:6:34","nodeType":"YulIdentifier","src":"3880:6:34"},"nativeSrc":"3880:12:34","nodeType":"YulFunctionCall","src":"3880:12:34"},"nativeSrc":"3880:12:34","nodeType":"YulExpressionStatement","src":"3880:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3853:7:34","nodeType":"YulIdentifier","src":"3853:7:34"},{"name":"headStart","nativeSrc":"3862:9:34","nodeType":"YulIdentifier","src":"3862:9:34"}],"functionName":{"name":"sub","nativeSrc":"3849:3:34","nodeType":"YulIdentifier","src":"3849:3:34"},"nativeSrc":"3849:23:34","nodeType":"YulFunctionCall","src":"3849:23:34"},{"kind":"number","nativeSrc":"3874:2:34","nodeType":"YulLiteral","src":"3874:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3845:3:34","nodeType":"YulIdentifier","src":"3845:3:34"},"nativeSrc":"3845:32:34","nodeType":"YulFunctionCall","src":"3845:32:34"},"nativeSrc":"3842:52:34","nodeType":"YulIf","src":"3842:52:34"},{"nativeSrc":"3903:38:34","nodeType":"YulAssignment","src":"3903:38:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3931:9:34","nodeType":"YulIdentifier","src":"3931:9:34"}],"functionName":{"name":"abi_decode_bytes4","nativeSrc":"3913:17:34","nodeType":"YulIdentifier","src":"3913:17:34"},"nativeSrc":"3913:28:34","nodeType":"YulFunctionCall","src":"3913:28:34"},"variableNames":[{"name":"value0","nativeSrc":"3903:6:34","nodeType":"YulIdentifier","src":"3903:6:34"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"3763:184:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3798:9:34","nodeType":"YulTypedName","src":"3798:9:34","type":""},{"name":"dataEnd","nativeSrc":"3809:7:34","nodeType":"YulTypedName","src":"3809:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3821:6:34","nodeType":"YulTypedName","src":"3821:6:34","type":""}],"src":"3763:184:34"},{"body":{"nativeSrc":"4070:125:34","nodeType":"YulBlock","src":"4070:125:34","statements":[{"nativeSrc":"4080:26:34","nodeType":"YulAssignment","src":"4080:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"4092:9:34","nodeType":"YulIdentifier","src":"4092:9:34"},{"kind":"number","nativeSrc":"4103:2:34","nodeType":"YulLiteral","src":"4103:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4088:3:34","nodeType":"YulIdentifier","src":"4088:3:34"},"nativeSrc":"4088:18:34","nodeType":"YulFunctionCall","src":"4088:18:34"},"variableNames":[{"name":"tail","nativeSrc":"4080:4:34","nodeType":"YulIdentifier","src":"4080:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4122:9:34","nodeType":"YulIdentifier","src":"4122:9:34"},{"arguments":[{"name":"value0","nativeSrc":"4137:6:34","nodeType":"YulIdentifier","src":"4137:6:34"},{"kind":"number","nativeSrc":"4145:42:34","nodeType":"YulLiteral","src":"4145:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4133:3:34","nodeType":"YulIdentifier","src":"4133:3:34"},"nativeSrc":"4133:55:34","nodeType":"YulFunctionCall","src":"4133:55:34"}],"functionName":{"name":"mstore","nativeSrc":"4115:6:34","nodeType":"YulIdentifier","src":"4115:6:34"},"nativeSrc":"4115:74:34","nodeType":"YulFunctionCall","src":"4115:74:34"},"nativeSrc":"4115:74:34","nodeType":"YulExpressionStatement","src":"4115:74:34"}]},"name":"abi_encode_tuple_t_contract$_IAdapter_$6490__to_t_address__fromStack_reversed","nativeSrc":"3952:243:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4039:9:34","nodeType":"YulTypedName","src":"4039:9:34","type":""},{"name":"value0","nativeSrc":"4050:6:34","nodeType":"YulTypedName","src":"4050:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4061:4:34","nodeType":"YulTypedName","src":"4061:4:34","type":""}],"src":"3952:243:34"},{"body":{"nativeSrc":"4266:184:34","nodeType":"YulBlock","src":"4266:184:34","statements":[{"nativeSrc":"4276:10:34","nodeType":"YulVariableDeclaration","src":"4276:10:34","value":{"kind":"number","nativeSrc":"4285:1:34","nodeType":"YulLiteral","src":"4285:1:34","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4280:1:34","nodeType":"YulTypedName","src":"4280:1:34","type":""}]},{"body":{"nativeSrc":"4345:63:34","nodeType":"YulBlock","src":"4345:63:34","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4370:3:34","nodeType":"YulIdentifier","src":"4370:3:34"},{"name":"i","nativeSrc":"4375:1:34","nodeType":"YulIdentifier","src":"4375:1:34"}],"functionName":{"name":"add","nativeSrc":"4366:3:34","nodeType":"YulIdentifier","src":"4366:3:34"},"nativeSrc":"4366:11:34","nodeType":"YulFunctionCall","src":"4366:11:34"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4389:3:34","nodeType":"YulIdentifier","src":"4389:3:34"},{"name":"i","nativeSrc":"4394:1:34","nodeType":"YulIdentifier","src":"4394:1:34"}],"functionName":{"name":"add","nativeSrc":"4385:3:34","nodeType":"YulIdentifier","src":"4385:3:34"},"nativeSrc":"4385:11:34","nodeType":"YulFunctionCall","src":"4385:11:34"}],"functionName":{"name":"mload","nativeSrc":"4379:5:34","nodeType":"YulIdentifier","src":"4379:5:34"},"nativeSrc":"4379:18:34","nodeType":"YulFunctionCall","src":"4379:18:34"}],"functionName":{"name":"mstore","nativeSrc":"4359:6:34","nodeType":"YulIdentifier","src":"4359:6:34"},"nativeSrc":"4359:39:34","nodeType":"YulFunctionCall","src":"4359:39:34"},"nativeSrc":"4359:39:34","nodeType":"YulExpressionStatement","src":"4359:39:34"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4306:1:34","nodeType":"YulIdentifier","src":"4306:1:34"},{"name":"length","nativeSrc":"4309:6:34","nodeType":"YulIdentifier","src":"4309:6:34"}],"functionName":{"name":"lt","nativeSrc":"4303:2:34","nodeType":"YulIdentifier","src":"4303:2:34"},"nativeSrc":"4303:13:34","nodeType":"YulFunctionCall","src":"4303:13:34"},"nativeSrc":"4295:113:34","nodeType":"YulForLoop","post":{"nativeSrc":"4317:19:34","nodeType":"YulBlock","src":"4317:19:34","statements":[{"nativeSrc":"4319:15:34","nodeType":"YulAssignment","src":"4319:15:34","value":{"arguments":[{"name":"i","nativeSrc":"4328:1:34","nodeType":"YulIdentifier","src":"4328:1:34"},{"kind":"number","nativeSrc":"4331:2:34","nodeType":"YulLiteral","src":"4331:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4324:3:34","nodeType":"YulIdentifier","src":"4324:3:34"},"nativeSrc":"4324:10:34","nodeType":"YulFunctionCall","src":"4324:10:34"},"variableNames":[{"name":"i","nativeSrc":"4319:1:34","nodeType":"YulIdentifier","src":"4319:1:34"}]}]},"pre":{"nativeSrc":"4299:3:34","nodeType":"YulBlock","src":"4299:3:34","statements":[]},"src":"4295:113:34"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4428:3:34","nodeType":"YulIdentifier","src":"4428:3:34"},{"name":"length","nativeSrc":"4433:6:34","nodeType":"YulIdentifier","src":"4433:6:34"}],"functionName":{"name":"add","nativeSrc":"4424:3:34","nodeType":"YulIdentifier","src":"4424:3:34"},"nativeSrc":"4424:16:34","nodeType":"YulFunctionCall","src":"4424:16:34"},{"kind":"number","nativeSrc":"4442:1:34","nodeType":"YulLiteral","src":"4442:1:34","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4417:6:34","nodeType":"YulIdentifier","src":"4417:6:34"},"nativeSrc":"4417:27:34","nodeType":"YulFunctionCall","src":"4417:27:34"},"nativeSrc":"4417:27:34","nodeType":"YulExpressionStatement","src":"4417:27:34"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4200:250:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4244:3:34","nodeType":"YulTypedName","src":"4244:3:34","type":""},{"name":"dst","nativeSrc":"4249:3:34","nodeType":"YulTypedName","src":"4249:3:34","type":""},{"name":"length","nativeSrc":"4254:6:34","nodeType":"YulTypedName","src":"4254:6:34","type":""}],"src":"4200:250:34"},{"body":{"nativeSrc":"4505:280:34","nodeType":"YulBlock","src":"4505:280:34","statements":[{"nativeSrc":"4515:26:34","nodeType":"YulVariableDeclaration","src":"4515:26:34","value":{"arguments":[{"name":"value","nativeSrc":"4535:5:34","nodeType":"YulIdentifier","src":"4535:5:34"}],"functionName":{"name":"mload","nativeSrc":"4529:5:34","nodeType":"YulIdentifier","src":"4529:5:34"},"nativeSrc":"4529:12:34","nodeType":"YulFunctionCall","src":"4529:12:34"},"variables":[{"name":"length","nativeSrc":"4519:6:34","nodeType":"YulTypedName","src":"4519:6:34","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"4557:3:34","nodeType":"YulIdentifier","src":"4557:3:34"},{"name":"length","nativeSrc":"4562:6:34","nodeType":"YulIdentifier","src":"4562:6:34"}],"functionName":{"name":"mstore","nativeSrc":"4550:6:34","nodeType":"YulIdentifier","src":"4550:6:34"},"nativeSrc":"4550:19:34","nodeType":"YulFunctionCall","src":"4550:19:34"},"nativeSrc":"4550:19:34","nodeType":"YulExpressionStatement","src":"4550:19:34"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4617:5:34","nodeType":"YulIdentifier","src":"4617:5:34"},{"kind":"number","nativeSrc":"4624:4:34","nodeType":"YulLiteral","src":"4624:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4613:3:34","nodeType":"YulIdentifier","src":"4613:3:34"},"nativeSrc":"4613:16:34","nodeType":"YulFunctionCall","src":"4613:16:34"},{"arguments":[{"name":"pos","nativeSrc":"4635:3:34","nodeType":"YulIdentifier","src":"4635:3:34"},{"kind":"number","nativeSrc":"4640:4:34","nodeType":"YulLiteral","src":"4640:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4631:3:34","nodeType":"YulIdentifier","src":"4631:3:34"},"nativeSrc":"4631:14:34","nodeType":"YulFunctionCall","src":"4631:14:34"},{"name":"length","nativeSrc":"4647:6:34","nodeType":"YulIdentifier","src":"4647:6:34"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4578:34:34","nodeType":"YulIdentifier","src":"4578:34:34"},"nativeSrc":"4578:76:34","nodeType":"YulFunctionCall","src":"4578:76:34"},"nativeSrc":"4578:76:34","nodeType":"YulExpressionStatement","src":"4578:76:34"},{"nativeSrc":"4663:116:34","nodeType":"YulAssignment","src":"4663:116:34","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"4678:3:34","nodeType":"YulIdentifier","src":"4678:3:34"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4691:6:34","nodeType":"YulIdentifier","src":"4691:6:34"},{"kind":"number","nativeSrc":"4699:2:34","nodeType":"YulLiteral","src":"4699:2:34","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4687:3:34","nodeType":"YulIdentifier","src":"4687:3:34"},"nativeSrc":"4687:15:34","nodeType":"YulFunctionCall","src":"4687:15:34"},{"kind":"number","nativeSrc":"4704:66:34","nodeType":"YulLiteral","src":"4704:66:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"4683:3:34","nodeType":"YulIdentifier","src":"4683:3:34"},"nativeSrc":"4683:88:34","nodeType":"YulFunctionCall","src":"4683:88:34"}],"functionName":{"name":"add","nativeSrc":"4674:3:34","nodeType":"YulIdentifier","src":"4674:3:34"},"nativeSrc":"4674:98:34","nodeType":"YulFunctionCall","src":"4674:98:34"},{"kind":"number","nativeSrc":"4774:4:34","nodeType":"YulLiteral","src":"4774:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4670:3:34","nodeType":"YulIdentifier","src":"4670:3:34"},"nativeSrc":"4670:109:34","nodeType":"YulFunctionCall","src":"4670:109:34"},"variableNames":[{"name":"end","nativeSrc":"4663:3:34","nodeType":"YulIdentifier","src":"4663:3:34"}]}]},"name":"abi_encode_string","nativeSrc":"4455:330:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4482:5:34","nodeType":"YulTypedName","src":"4482:5:34","type":""},{"name":"pos","nativeSrc":"4489:3:34","nodeType":"YulTypedName","src":"4489:3:34","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4497:3:34","nodeType":"YulTypedName","src":"4497:3:34","type":""}],"src":"4455:330:34"},{"body":{"nativeSrc":"4911:99:34","nodeType":"YulBlock","src":"4911:99:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4928:9:34","nodeType":"YulIdentifier","src":"4928:9:34"},{"kind":"number","nativeSrc":"4939:2:34","nodeType":"YulLiteral","src":"4939:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4921:6:34","nodeType":"YulIdentifier","src":"4921:6:34"},"nativeSrc":"4921:21:34","nodeType":"YulFunctionCall","src":"4921:21:34"},"nativeSrc":"4921:21:34","nodeType":"YulExpressionStatement","src":"4921:21:34"},{"nativeSrc":"4951:53:34","nodeType":"YulAssignment","src":"4951:53:34","value":{"arguments":[{"name":"value0","nativeSrc":"4977:6:34","nodeType":"YulIdentifier","src":"4977:6:34"},{"arguments":[{"name":"headStart","nativeSrc":"4989:9:34","nodeType":"YulIdentifier","src":"4989:9:34"},{"kind":"number","nativeSrc":"5000:2:34","nodeType":"YulLiteral","src":"5000:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4985:3:34","nodeType":"YulIdentifier","src":"4985:3:34"},"nativeSrc":"4985:18:34","nodeType":"YulFunctionCall","src":"4985:18:34"}],"functionName":{"name":"abi_encode_string","nativeSrc":"4959:17:34","nodeType":"YulIdentifier","src":"4959:17:34"},"nativeSrc":"4959:45:34","nodeType":"YulFunctionCall","src":"4959:45:34"},"variableNames":[{"name":"tail","nativeSrc":"4951:4:34","nodeType":"YulIdentifier","src":"4951:4:34"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4790:220:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4880:9:34","nodeType":"YulTypedName","src":"4880:9:34","type":""},{"name":"value0","nativeSrc":"4891:6:34","nodeType":"YulTypedName","src":"4891:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4902:4:34","nodeType":"YulTypedName","src":"4902:4:34","type":""}],"src":"4790:220:34"},{"body":{"nativeSrc":"5085:177:34","nodeType":"YulBlock","src":"5085:177:34","statements":[{"body":{"nativeSrc":"5131:16:34","nodeType":"YulBlock","src":"5131:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5140:1:34","nodeType":"YulLiteral","src":"5140:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"5143:1:34","nodeType":"YulLiteral","src":"5143:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5133:6:34","nodeType":"YulIdentifier","src":"5133:6:34"},"nativeSrc":"5133:12:34","nodeType":"YulFunctionCall","src":"5133:12:34"},"nativeSrc":"5133:12:34","nodeType":"YulExpressionStatement","src":"5133:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5106:7:34","nodeType":"YulIdentifier","src":"5106:7:34"},{"name":"headStart","nativeSrc":"5115:9:34","nodeType":"YulIdentifier","src":"5115:9:34"}],"functionName":{"name":"sub","nativeSrc":"5102:3:34","nodeType":"YulIdentifier","src":"5102:3:34"},"nativeSrc":"5102:23:34","nodeType":"YulFunctionCall","src":"5102:23:34"},{"kind":"number","nativeSrc":"5127:2:34","nodeType":"YulLiteral","src":"5127:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5098:3:34","nodeType":"YulIdentifier","src":"5098:3:34"},"nativeSrc":"5098:32:34","nodeType":"YulFunctionCall","src":"5098:32:34"},"nativeSrc":"5095:52:34","nodeType":"YulIf","src":"5095:52:34"},{"nativeSrc":"5156:36:34","nodeType":"YulVariableDeclaration","src":"5156:36:34","value":{"arguments":[{"name":"headStart","nativeSrc":"5182:9:34","nodeType":"YulIdentifier","src":"5182:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"5169:12:34","nodeType":"YulIdentifier","src":"5169:12:34"},"nativeSrc":"5169:23:34","nodeType":"YulFunctionCall","src":"5169:23:34"},"variables":[{"name":"value","nativeSrc":"5160:5:34","nodeType":"YulTypedName","src":"5160:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5226:5:34","nodeType":"YulIdentifier","src":"5226:5:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"5201:24:34","nodeType":"YulIdentifier","src":"5201:24:34"},"nativeSrc":"5201:31:34","nodeType":"YulFunctionCall","src":"5201:31:34"},"nativeSrc":"5201:31:34","nodeType":"YulExpressionStatement","src":"5201:31:34"},{"nativeSrc":"5241:15:34","nodeType":"YulAssignment","src":"5241:15:34","value":{"name":"value","nativeSrc":"5251:5:34","nodeType":"YulIdentifier","src":"5251:5:34"},"variableNames":[{"name":"value0","nativeSrc":"5241:6:34","nodeType":"YulIdentifier","src":"5241:6:34"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5015:247:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5051:9:34","nodeType":"YulTypedName","src":"5051:9:34","type":""},{"name":"dataEnd","nativeSrc":"5062:7:34","nodeType":"YulTypedName","src":"5062:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5074:6:34","nodeType":"YulTypedName","src":"5074:6:34","type":""}],"src":"5015:247:34"},{"body":{"nativeSrc":"5624:978:34","nodeType":"YulBlock","src":"5624:978:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5641:9:34","nodeType":"YulIdentifier","src":"5641:9:34"},{"arguments":[{"name":"value0","nativeSrc":"5656:6:34","nodeType":"YulIdentifier","src":"5656:6:34"},{"kind":"number","nativeSrc":"5664:66:34","nodeType":"YulLiteral","src":"5664:66:34","type":"","value":"0xff00000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"5652:3:34","nodeType":"YulIdentifier","src":"5652:3:34"},"nativeSrc":"5652:79:34","nodeType":"YulFunctionCall","src":"5652:79:34"}],"functionName":{"name":"mstore","nativeSrc":"5634:6:34","nodeType":"YulIdentifier","src":"5634:6:34"},"nativeSrc":"5634:98:34","nodeType":"YulFunctionCall","src":"5634:98:34"},"nativeSrc":"5634:98:34","nodeType":"YulExpressionStatement","src":"5634:98:34"},{"nativeSrc":"5741:12:34","nodeType":"YulVariableDeclaration","src":"5741:12:34","value":{"kind":"number","nativeSrc":"5751:2:34","nodeType":"YulLiteral","src":"5751:2:34","type":"","value":"32"},"variables":[{"name":"_1","nativeSrc":"5745:2:34","nodeType":"YulTypedName","src":"5745:2:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5773:9:34","nodeType":"YulIdentifier","src":"5773:9:34"},{"kind":"number","nativeSrc":"5784:2:34","nodeType":"YulLiteral","src":"5784:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5769:3:34","nodeType":"YulIdentifier","src":"5769:3:34"},"nativeSrc":"5769:18:34","nodeType":"YulFunctionCall","src":"5769:18:34"},{"kind":"number","nativeSrc":"5789:3:34","nodeType":"YulLiteral","src":"5789:3:34","type":"","value":"224"}],"functionName":{"name":"mstore","nativeSrc":"5762:6:34","nodeType":"YulIdentifier","src":"5762:6:34"},"nativeSrc":"5762:31:34","nodeType":"YulFunctionCall","src":"5762:31:34"},"nativeSrc":"5762:31:34","nodeType":"YulExpressionStatement","src":"5762:31:34"},{"nativeSrc":"5802:60:34","nodeType":"YulVariableDeclaration","src":"5802:60:34","value":{"arguments":[{"name":"value1","nativeSrc":"5834:6:34","nodeType":"YulIdentifier","src":"5834:6:34"},{"arguments":[{"name":"headStart","nativeSrc":"5846:9:34","nodeType":"YulIdentifier","src":"5846:9:34"},{"kind":"number","nativeSrc":"5857:3:34","nodeType":"YulLiteral","src":"5857:3:34","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"5842:3:34","nodeType":"YulIdentifier","src":"5842:3:34"},"nativeSrc":"5842:19:34","nodeType":"YulFunctionCall","src":"5842:19:34"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5816:17:34","nodeType":"YulIdentifier","src":"5816:17:34"},"nativeSrc":"5816:46:34","nodeType":"YulFunctionCall","src":"5816:46:34"},"variables":[{"name":"tail_1","nativeSrc":"5806:6:34","nodeType":"YulTypedName","src":"5806:6:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5882:9:34","nodeType":"YulIdentifier","src":"5882:9:34"},{"kind":"number","nativeSrc":"5893:2:34","nodeType":"YulLiteral","src":"5893:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5878:3:34","nodeType":"YulIdentifier","src":"5878:3:34"},"nativeSrc":"5878:18:34","nodeType":"YulFunctionCall","src":"5878:18:34"},{"arguments":[{"name":"tail_1","nativeSrc":"5902:6:34","nodeType":"YulIdentifier","src":"5902:6:34"},{"name":"headStart","nativeSrc":"5910:9:34","nodeType":"YulIdentifier","src":"5910:9:34"}],"functionName":{"name":"sub","nativeSrc":"5898:3:34","nodeType":"YulIdentifier","src":"5898:3:34"},"nativeSrc":"5898:22:34","nodeType":"YulFunctionCall","src":"5898:22:34"}],"functionName":{"name":"mstore","nativeSrc":"5871:6:34","nodeType":"YulIdentifier","src":"5871:6:34"},"nativeSrc":"5871:50:34","nodeType":"YulFunctionCall","src":"5871:50:34"},"nativeSrc":"5871:50:34","nodeType":"YulExpressionStatement","src":"5871:50:34"},{"nativeSrc":"5930:47:34","nodeType":"YulVariableDeclaration","src":"5930:47:34","value":{"arguments":[{"name":"value2","nativeSrc":"5962:6:34","nodeType":"YulIdentifier","src":"5962:6:34"},{"name":"tail_1","nativeSrc":"5970:6:34","nodeType":"YulIdentifier","src":"5970:6:34"}],"functionName":{"name":"abi_encode_string","nativeSrc":"5944:17:34","nodeType":"YulIdentifier","src":"5944:17:34"},"nativeSrc":"5944:33:34","nodeType":"YulFunctionCall","src":"5944:33:34"},"variables":[{"name":"tail_2","nativeSrc":"5934:6:34","nodeType":"YulTypedName","src":"5934:6:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5997:9:34","nodeType":"YulIdentifier","src":"5997:9:34"},{"kind":"number","nativeSrc":"6008:2:34","nodeType":"YulLiteral","src":"6008:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"5993:3:34","nodeType":"YulIdentifier","src":"5993:3:34"},"nativeSrc":"5993:18:34","nodeType":"YulFunctionCall","src":"5993:18:34"},{"name":"value3","nativeSrc":"6013:6:34","nodeType":"YulIdentifier","src":"6013:6:34"}],"functionName":{"name":"mstore","nativeSrc":"5986:6:34","nodeType":"YulIdentifier","src":"5986:6:34"},"nativeSrc":"5986:34:34","nodeType":"YulFunctionCall","src":"5986:34:34"},"nativeSrc":"5986:34:34","nodeType":"YulExpressionStatement","src":"5986:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6040:9:34","nodeType":"YulIdentifier","src":"6040:9:34"},{"kind":"number","nativeSrc":"6051:3:34","nodeType":"YulLiteral","src":"6051:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6036:3:34","nodeType":"YulIdentifier","src":"6036:3:34"},"nativeSrc":"6036:19:34","nodeType":"YulFunctionCall","src":"6036:19:34"},{"arguments":[{"name":"value4","nativeSrc":"6061:6:34","nodeType":"YulIdentifier","src":"6061:6:34"},{"kind":"number","nativeSrc":"6069:42:34","nodeType":"YulLiteral","src":"6069:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6057:3:34","nodeType":"YulIdentifier","src":"6057:3:34"},"nativeSrc":"6057:55:34","nodeType":"YulFunctionCall","src":"6057:55:34"}],"functionName":{"name":"mstore","nativeSrc":"6029:6:34","nodeType":"YulIdentifier","src":"6029:6:34"},"nativeSrc":"6029:84:34","nodeType":"YulFunctionCall","src":"6029:84:34"},"nativeSrc":"6029:84:34","nodeType":"YulExpressionStatement","src":"6029:84:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6133:9:34","nodeType":"YulIdentifier","src":"6133:9:34"},{"kind":"number","nativeSrc":"6144:3:34","nodeType":"YulLiteral","src":"6144:3:34","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"6129:3:34","nodeType":"YulIdentifier","src":"6129:3:34"},"nativeSrc":"6129:19:34","nodeType":"YulFunctionCall","src":"6129:19:34"},{"name":"value5","nativeSrc":"6150:6:34","nodeType":"YulIdentifier","src":"6150:6:34"}],"functionName":{"name":"mstore","nativeSrc":"6122:6:34","nodeType":"YulIdentifier","src":"6122:6:34"},"nativeSrc":"6122:35:34","nodeType":"YulFunctionCall","src":"6122:35:34"},"nativeSrc":"6122:35:34","nodeType":"YulExpressionStatement","src":"6122:35:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6177:9:34","nodeType":"YulIdentifier","src":"6177:9:34"},{"kind":"number","nativeSrc":"6188:3:34","nodeType":"YulLiteral","src":"6188:3:34","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"6173:3:34","nodeType":"YulIdentifier","src":"6173:3:34"},"nativeSrc":"6173:19:34","nodeType":"YulFunctionCall","src":"6173:19:34"},{"arguments":[{"name":"tail_2","nativeSrc":"6198:6:34","nodeType":"YulIdentifier","src":"6198:6:34"},{"name":"headStart","nativeSrc":"6206:9:34","nodeType":"YulIdentifier","src":"6206:9:34"}],"functionName":{"name":"sub","nativeSrc":"6194:3:34","nodeType":"YulIdentifier","src":"6194:3:34"},"nativeSrc":"6194:22:34","nodeType":"YulFunctionCall","src":"6194:22:34"}],"functionName":{"name":"mstore","nativeSrc":"6166:6:34","nodeType":"YulIdentifier","src":"6166:6:34"},"nativeSrc":"6166:51:34","nodeType":"YulFunctionCall","src":"6166:51:34"},"nativeSrc":"6166:51:34","nodeType":"YulExpressionStatement","src":"6166:51:34"},{"nativeSrc":"6226:17:34","nodeType":"YulVariableDeclaration","src":"6226:17:34","value":{"name":"tail_2","nativeSrc":"6237:6:34","nodeType":"YulIdentifier","src":"6237:6:34"},"variables":[{"name":"pos","nativeSrc":"6230:3:34","nodeType":"YulTypedName","src":"6230:3:34","type":""}]},{"nativeSrc":"6252:27:34","nodeType":"YulVariableDeclaration","src":"6252:27:34","value":{"arguments":[{"name":"value6","nativeSrc":"6272:6:34","nodeType":"YulIdentifier","src":"6272:6:34"}],"functionName":{"name":"mload","nativeSrc":"6266:5:34","nodeType":"YulIdentifier","src":"6266:5:34"},"nativeSrc":"6266:13:34","nodeType":"YulFunctionCall","src":"6266:13:34"},"variables":[{"name":"length","nativeSrc":"6256:6:34","nodeType":"YulTypedName","src":"6256:6:34","type":""}]},{"expression":{"arguments":[{"name":"tail_2","nativeSrc":"6295:6:34","nodeType":"YulIdentifier","src":"6295:6:34"},{"name":"length","nativeSrc":"6303:6:34","nodeType":"YulIdentifier","src":"6303:6:34"}],"functionName":{"name":"mstore","nativeSrc":"6288:6:34","nodeType":"YulIdentifier","src":"6288:6:34"},"nativeSrc":"6288:22:34","nodeType":"YulFunctionCall","src":"6288:22:34"},"nativeSrc":"6288:22:34","nodeType":"YulExpressionStatement","src":"6288:22:34"},{"nativeSrc":"6319:22:34","nodeType":"YulAssignment","src":"6319:22:34","value":{"arguments":[{"name":"tail_2","nativeSrc":"6330:6:34","nodeType":"YulIdentifier","src":"6330:6:34"},{"kind":"number","nativeSrc":"6338:2:34","nodeType":"YulLiteral","src":"6338:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6326:3:34","nodeType":"YulIdentifier","src":"6326:3:34"},"nativeSrc":"6326:15:34","nodeType":"YulFunctionCall","src":"6326:15:34"},"variableNames":[{"name":"pos","nativeSrc":"6319:3:34","nodeType":"YulIdentifier","src":"6319:3:34"}]},{"nativeSrc":"6350:29:34","nodeType":"YulVariableDeclaration","src":"6350:29:34","value":{"arguments":[{"name":"value6","nativeSrc":"6368:6:34","nodeType":"YulIdentifier","src":"6368:6:34"},{"kind":"number","nativeSrc":"6376:2:34","nodeType":"YulLiteral","src":"6376:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6364:3:34","nodeType":"YulIdentifier","src":"6364:3:34"},"nativeSrc":"6364:15:34","nodeType":"YulFunctionCall","src":"6364:15:34"},"variables":[{"name":"srcPtr","nativeSrc":"6354:6:34","nodeType":"YulTypedName","src":"6354:6:34","type":""}]},{"nativeSrc":"6388:10:34","nodeType":"YulVariableDeclaration","src":"6388:10:34","value":{"kind":"number","nativeSrc":"6397:1:34","nodeType":"YulLiteral","src":"6397:1:34","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"6392:1:34","nodeType":"YulTypedName","src":"6392:1:34","type":""}]},{"body":{"nativeSrc":"6456:120:34","nodeType":"YulBlock","src":"6456:120:34","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6477:3:34","nodeType":"YulIdentifier","src":"6477:3:34"},{"arguments":[{"name":"srcPtr","nativeSrc":"6488:6:34","nodeType":"YulIdentifier","src":"6488:6:34"}],"functionName":{"name":"mload","nativeSrc":"6482:5:34","nodeType":"YulIdentifier","src":"6482:5:34"},"nativeSrc":"6482:13:34","nodeType":"YulFunctionCall","src":"6482:13:34"}],"functionName":{"name":"mstore","nativeSrc":"6470:6:34","nodeType":"YulIdentifier","src":"6470:6:34"},"nativeSrc":"6470:26:34","nodeType":"YulFunctionCall","src":"6470:26:34"},"nativeSrc":"6470:26:34","nodeType":"YulExpressionStatement","src":"6470:26:34"},{"nativeSrc":"6509:19:34","nodeType":"YulAssignment","src":"6509:19:34","value":{"arguments":[{"name":"pos","nativeSrc":"6520:3:34","nodeType":"YulIdentifier","src":"6520:3:34"},{"name":"_1","nativeSrc":"6525:2:34","nodeType":"YulIdentifier","src":"6525:2:34"}],"functionName":{"name":"add","nativeSrc":"6516:3:34","nodeType":"YulIdentifier","src":"6516:3:34"},"nativeSrc":"6516:12:34","nodeType":"YulFunctionCall","src":"6516:12:34"},"variableNames":[{"name":"pos","nativeSrc":"6509:3:34","nodeType":"YulIdentifier","src":"6509:3:34"}]},{"nativeSrc":"6541:25:34","nodeType":"YulAssignment","src":"6541:25:34","value":{"arguments":[{"name":"srcPtr","nativeSrc":"6555:6:34","nodeType":"YulIdentifier","src":"6555:6:34"},{"name":"_1","nativeSrc":"6563:2:34","nodeType":"YulIdentifier","src":"6563:2:34"}],"functionName":{"name":"add","nativeSrc":"6551:3:34","nodeType":"YulIdentifier","src":"6551:3:34"},"nativeSrc":"6551:15:34","nodeType":"YulFunctionCall","src":"6551:15:34"},"variableNames":[{"name":"srcPtr","nativeSrc":"6541:6:34","nodeType":"YulIdentifier","src":"6541:6:34"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"6418:1:34","nodeType":"YulIdentifier","src":"6418:1:34"},{"name":"length","nativeSrc":"6421:6:34","nodeType":"YulIdentifier","src":"6421:6:34"}],"functionName":{"name":"lt","nativeSrc":"6415:2:34","nodeType":"YulIdentifier","src":"6415:2:34"},"nativeSrc":"6415:13:34","nodeType":"YulFunctionCall","src":"6415:13:34"},"nativeSrc":"6407:169:34","nodeType":"YulForLoop","post":{"nativeSrc":"6429:18:34","nodeType":"YulBlock","src":"6429:18:34","statements":[{"nativeSrc":"6431:14:34","nodeType":"YulAssignment","src":"6431:14:34","value":{"arguments":[{"name":"i","nativeSrc":"6440:1:34","nodeType":"YulIdentifier","src":"6440:1:34"},{"kind":"number","nativeSrc":"6443:1:34","nodeType":"YulLiteral","src":"6443:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"6436:3:34","nodeType":"YulIdentifier","src":"6436:3:34"},"nativeSrc":"6436:9:34","nodeType":"YulFunctionCall","src":"6436:9:34"},"variableNames":[{"name":"i","nativeSrc":"6431:1:34","nodeType":"YulIdentifier","src":"6431:1:34"}]}]},"pre":{"nativeSrc":"6411:3:34","nodeType":"YulBlock","src":"6411:3:34","statements":[]},"src":"6407:169:34"},{"nativeSrc":"6585:11:34","nodeType":"YulAssignment","src":"6585:11:34","value":{"name":"pos","nativeSrc":"6593:3:34","nodeType":"YulIdentifier","src":"6593:3:34"},"variableNames":[{"name":"tail","nativeSrc":"6585:4:34","nodeType":"YulIdentifier","src":"6585:4:34"}]}]},"name":"abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"5267:1335:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5545:9:34","nodeType":"YulTypedName","src":"5545:9:34","type":""},{"name":"value6","nativeSrc":"5556:6:34","nodeType":"YulTypedName","src":"5556:6:34","type":""},{"name":"value5","nativeSrc":"5564:6:34","nodeType":"YulTypedName","src":"5564:6:34","type":""},{"name":"value4","nativeSrc":"5572:6:34","nodeType":"YulTypedName","src":"5572:6:34","type":""},{"name":"value3","nativeSrc":"5580:6:34","nodeType":"YulTypedName","src":"5580:6:34","type":""},{"name":"value2","nativeSrc":"5588:6:34","nodeType":"YulTypedName","src":"5588:6:34","type":""},{"name":"value1","nativeSrc":"5596:6:34","nodeType":"YulTypedName","src":"5596:6:34","type":""},{"name":"value0","nativeSrc":"5604:6:34","nodeType":"YulTypedName","src":"5604:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5615:4:34","nodeType":"YulTypedName","src":"5615:4:34","type":""}],"src":"5267:1335:34"},{"body":{"nativeSrc":"6708:125:34","nodeType":"YulBlock","src":"6708:125:34","statements":[{"nativeSrc":"6718:26:34","nodeType":"YulAssignment","src":"6718:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"6730:9:34","nodeType":"YulIdentifier","src":"6730:9:34"},{"kind":"number","nativeSrc":"6741:2:34","nodeType":"YulLiteral","src":"6741:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6726:3:34","nodeType":"YulIdentifier","src":"6726:3:34"},"nativeSrc":"6726:18:34","nodeType":"YulFunctionCall","src":"6726:18:34"},"variableNames":[{"name":"tail","nativeSrc":"6718:4:34","nodeType":"YulIdentifier","src":"6718:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6760:9:34","nodeType":"YulIdentifier","src":"6760:9:34"},{"arguments":[{"name":"value0","nativeSrc":"6775:6:34","nodeType":"YulIdentifier","src":"6775:6:34"},{"kind":"number","nativeSrc":"6783:42:34","nodeType":"YulLiteral","src":"6783:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"6771:3:34","nodeType":"YulIdentifier","src":"6771:3:34"},"nativeSrc":"6771:55:34","nodeType":"YulFunctionCall","src":"6771:55:34"}],"functionName":{"name":"mstore","nativeSrc":"6753:6:34","nodeType":"YulIdentifier","src":"6753:6:34"},"nativeSrc":"6753:74:34","nodeType":"YulFunctionCall","src":"6753:74:34"},"nativeSrc":"6753:74:34","nodeType":"YulExpressionStatement","src":"6753:74:34"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6607:226:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6677:9:34","nodeType":"YulTypedName","src":"6677:9:34","type":""},{"name":"value0","nativeSrc":"6688:6:34","nodeType":"YulTypedName","src":"6688:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6699:4:34","nodeType":"YulTypedName","src":"6699:4:34","type":""}],"src":"6607:226:34"},{"body":{"nativeSrc":"6939:76:34","nodeType":"YulBlock","src":"6939:76:34","statements":[{"nativeSrc":"6949:26:34","nodeType":"YulAssignment","src":"6949:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"6961:9:34","nodeType":"YulIdentifier","src":"6961:9:34"},{"kind":"number","nativeSrc":"6972:2:34","nodeType":"YulLiteral","src":"6972:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6957:3:34","nodeType":"YulIdentifier","src":"6957:3:34"},"nativeSrc":"6957:18:34","nodeType":"YulFunctionCall","src":"6957:18:34"},"variableNames":[{"name":"tail","nativeSrc":"6949:4:34","nodeType":"YulIdentifier","src":"6949:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6991:9:34","nodeType":"YulIdentifier","src":"6991:9:34"},{"name":"value0","nativeSrc":"7002:6:34","nodeType":"YulIdentifier","src":"7002:6:34"}],"functionName":{"name":"mstore","nativeSrc":"6984:6:34","nodeType":"YulIdentifier","src":"6984:6:34"},"nativeSrc":"6984:25:34","nodeType":"YulFunctionCall","src":"6984:25:34"},"nativeSrc":"6984:25:34","nodeType":"YulExpressionStatement","src":"6984:25:34"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"6838:177:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6908:9:34","nodeType":"YulTypedName","src":"6908:9:34","type":""},{"name":"value0","nativeSrc":"6919:6:34","nodeType":"YulTypedName","src":"6919:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6930:4:34","nodeType":"YulTypedName","src":"6930:4:34","type":""}],"src":"6838:177:34"},{"body":{"nativeSrc":"7052:152:34","nodeType":"YulBlock","src":"7052:152:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7069:1:34","nodeType":"YulLiteral","src":"7069:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"7072:77:34","nodeType":"YulLiteral","src":"7072:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7062:6:34","nodeType":"YulIdentifier","src":"7062:6:34"},"nativeSrc":"7062:88:34","nodeType":"YulFunctionCall","src":"7062:88:34"},"nativeSrc":"7062:88:34","nodeType":"YulExpressionStatement","src":"7062:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7166:1:34","nodeType":"YulLiteral","src":"7166:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"7169:4:34","nodeType":"YulLiteral","src":"7169:4:34","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7159:6:34","nodeType":"YulIdentifier","src":"7159:6:34"},"nativeSrc":"7159:15:34","nodeType":"YulFunctionCall","src":"7159:15:34"},"nativeSrc":"7159:15:34","nodeType":"YulExpressionStatement","src":"7159:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7190:1:34","nodeType":"YulLiteral","src":"7190:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"7193:4:34","nodeType":"YulLiteral","src":"7193:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7183:6:34","nodeType":"YulIdentifier","src":"7183:6:34"},"nativeSrc":"7183:15:34","nodeType":"YulFunctionCall","src":"7183:15:34"},"nativeSrc":"7183:15:34","nodeType":"YulExpressionStatement","src":"7183:15:34"}]},"name":"panic_error_0x12","nativeSrc":"7020:184:34","nodeType":"YulFunctionDefinition","src":"7020:184:34"},{"body":{"nativeSrc":"7241:152:34","nodeType":"YulBlock","src":"7241:152:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7258:1:34","nodeType":"YulLiteral","src":"7258:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"7261:77:34","nodeType":"YulLiteral","src":"7261:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7251:6:34","nodeType":"YulIdentifier","src":"7251:6:34"},"nativeSrc":"7251:88:34","nodeType":"YulFunctionCall","src":"7251:88:34"},"nativeSrc":"7251:88:34","nodeType":"YulExpressionStatement","src":"7251:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7355:1:34","nodeType":"YulLiteral","src":"7355:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"7358:4:34","nodeType":"YulLiteral","src":"7358:4:34","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"7348:6:34","nodeType":"YulIdentifier","src":"7348:6:34"},"nativeSrc":"7348:15:34","nodeType":"YulFunctionCall","src":"7348:15:34"},"nativeSrc":"7348:15:34","nodeType":"YulExpressionStatement","src":"7348:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7379:1:34","nodeType":"YulLiteral","src":"7379:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"7382:4:34","nodeType":"YulLiteral","src":"7382:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7372:6:34","nodeType":"YulIdentifier","src":"7372:6:34"},"nativeSrc":"7372:15:34","nodeType":"YulFunctionCall","src":"7372:15:34"},"nativeSrc":"7372:15:34","nodeType":"YulExpressionStatement","src":"7372:15:34"}]},"name":"panic_error_0x11","nativeSrc":"7209:184:34","nodeType":"YulFunctionDefinition","src":"7209:184:34"},{"body":{"nativeSrc":"7444:74:34","nodeType":"YulBlock","src":"7444:74:34","statements":[{"body":{"nativeSrc":"7467:22:34","nodeType":"YulBlock","src":"7467:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"7469:16:34","nodeType":"YulIdentifier","src":"7469:16:34"},"nativeSrc":"7469:18:34","nodeType":"YulFunctionCall","src":"7469:18:34"},"nativeSrc":"7469:18:34","nodeType":"YulExpressionStatement","src":"7469:18:34"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"7464:1:34","nodeType":"YulIdentifier","src":"7464:1:34"}],"functionName":{"name":"iszero","nativeSrc":"7457:6:34","nodeType":"YulIdentifier","src":"7457:6:34"},"nativeSrc":"7457:9:34","nodeType":"YulFunctionCall","src":"7457:9:34"},"nativeSrc":"7454:35:34","nodeType":"YulIf","src":"7454:35:34"},{"nativeSrc":"7498:14:34","nodeType":"YulAssignment","src":"7498:14:34","value":{"arguments":[{"name":"x","nativeSrc":"7507:1:34","nodeType":"YulIdentifier","src":"7507:1:34"},{"name":"y","nativeSrc":"7510:1:34","nodeType":"YulIdentifier","src":"7510:1:34"}],"functionName":{"name":"div","nativeSrc":"7503:3:34","nodeType":"YulIdentifier","src":"7503:3:34"},"nativeSrc":"7503:9:34","nodeType":"YulFunctionCall","src":"7503:9:34"},"variableNames":[{"name":"r","nativeSrc":"7498:1:34","nodeType":"YulIdentifier","src":"7498:1:34"}]}]},"name":"checked_div_t_uint256","nativeSrc":"7398:120:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7429:1:34","nodeType":"YulTypedName","src":"7429:1:34","type":""},{"name":"y","nativeSrc":"7432:1:34","nodeType":"YulTypedName","src":"7432:1:34","type":""}],"returnVariables":[{"name":"r","nativeSrc":"7438:1:34","nodeType":"YulTypedName","src":"7438:1:34","type":""}],"src":"7398:120:34"},{"body":{"nativeSrc":"7561:74:34","nodeType":"YulBlock","src":"7561:74:34","statements":[{"body":{"nativeSrc":"7584:22:34","nodeType":"YulBlock","src":"7584:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"7586:16:34","nodeType":"YulIdentifier","src":"7586:16:34"},"nativeSrc":"7586:18:34","nodeType":"YulFunctionCall","src":"7586:18:34"},"nativeSrc":"7586:18:34","nodeType":"YulExpressionStatement","src":"7586:18:34"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"7581:1:34","nodeType":"YulIdentifier","src":"7581:1:34"}],"functionName":{"name":"iszero","nativeSrc":"7574:6:34","nodeType":"YulIdentifier","src":"7574:6:34"},"nativeSrc":"7574:9:34","nodeType":"YulFunctionCall","src":"7574:9:34"},"nativeSrc":"7571:35:34","nodeType":"YulIf","src":"7571:35:34"},{"nativeSrc":"7615:14:34","nodeType":"YulAssignment","src":"7615:14:34","value":{"arguments":[{"name":"x","nativeSrc":"7624:1:34","nodeType":"YulIdentifier","src":"7624:1:34"},{"name":"y","nativeSrc":"7627:1:34","nodeType":"YulIdentifier","src":"7627:1:34"}],"functionName":{"name":"mod","nativeSrc":"7620:3:34","nodeType":"YulIdentifier","src":"7620:3:34"},"nativeSrc":"7620:9:34","nodeType":"YulFunctionCall","src":"7620:9:34"},"variableNames":[{"name":"r","nativeSrc":"7615:1:34","nodeType":"YulIdentifier","src":"7615:1:34"}]}]},"name":"mod_t_uint256","nativeSrc":"7523:112:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7546:1:34","nodeType":"YulTypedName","src":"7546:1:34","type":""},{"name":"y","nativeSrc":"7549:1:34","nodeType":"YulTypedName","src":"7549:1:34","type":""}],"returnVariables":[{"name":"r","nativeSrc":"7555:1:34","nodeType":"YulTypedName","src":"7555:1:34","type":""}],"src":"7523:112:34"},{"body":{"nativeSrc":"7672:152:34","nodeType":"YulBlock","src":"7672:152:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7689:1:34","nodeType":"YulLiteral","src":"7689:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"7692:77:34","nodeType":"YulLiteral","src":"7692:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7682:6:34","nodeType":"YulIdentifier","src":"7682:6:34"},"nativeSrc":"7682:88:34","nodeType":"YulFunctionCall","src":"7682:88:34"},"nativeSrc":"7682:88:34","nodeType":"YulExpressionStatement","src":"7682:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7786:1:34","nodeType":"YulLiteral","src":"7786:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"7789:4:34","nodeType":"YulLiteral","src":"7789:4:34","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"7779:6:34","nodeType":"YulIdentifier","src":"7779:6:34"},"nativeSrc":"7779:15:34","nodeType":"YulFunctionCall","src":"7779:15:34"},"nativeSrc":"7779:15:34","nodeType":"YulExpressionStatement","src":"7779:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7810:1:34","nodeType":"YulLiteral","src":"7810:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"7813:4:34","nodeType":"YulLiteral","src":"7813:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7803:6:34","nodeType":"YulIdentifier","src":"7803:6:34"},"nativeSrc":"7803:15:34","nodeType":"YulFunctionCall","src":"7803:15:34"},"nativeSrc":"7803:15:34","nodeType":"YulExpressionStatement","src":"7803:15:34"}]},"name":"panic_error_0x32","nativeSrc":"7640:184:34","nodeType":"YulFunctionDefinition","src":"7640:184:34"},{"body":{"nativeSrc":"7881:116:34","nodeType":"YulBlock","src":"7881:116:34","statements":[{"nativeSrc":"7891:20:34","nodeType":"YulAssignment","src":"7891:20:34","value":{"arguments":[{"name":"x","nativeSrc":"7906:1:34","nodeType":"YulIdentifier","src":"7906:1:34"},{"name":"y","nativeSrc":"7909:1:34","nodeType":"YulIdentifier","src":"7909:1:34"}],"functionName":{"name":"mul","nativeSrc":"7902:3:34","nodeType":"YulIdentifier","src":"7902:3:34"},"nativeSrc":"7902:9:34","nodeType":"YulFunctionCall","src":"7902:9:34"},"variableNames":[{"name":"product","nativeSrc":"7891:7:34","nodeType":"YulIdentifier","src":"7891:7:34"}]},{"body":{"nativeSrc":"7969:22:34","nodeType":"YulBlock","src":"7969:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7971:16:34","nodeType":"YulIdentifier","src":"7971:16:34"},"nativeSrc":"7971:18:34","nodeType":"YulFunctionCall","src":"7971:18:34"},"nativeSrc":"7971:18:34","nodeType":"YulExpressionStatement","src":"7971:18:34"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7940:1:34","nodeType":"YulIdentifier","src":"7940:1:34"}],"functionName":{"name":"iszero","nativeSrc":"7933:6:34","nodeType":"YulIdentifier","src":"7933:6:34"},"nativeSrc":"7933:9:34","nodeType":"YulFunctionCall","src":"7933:9:34"},{"arguments":[{"name":"y","nativeSrc":"7947:1:34","nodeType":"YulIdentifier","src":"7947:1:34"},{"arguments":[{"name":"product","nativeSrc":"7954:7:34","nodeType":"YulIdentifier","src":"7954:7:34"},{"name":"x","nativeSrc":"7963:1:34","nodeType":"YulIdentifier","src":"7963:1:34"}],"functionName":{"name":"div","nativeSrc":"7950:3:34","nodeType":"YulIdentifier","src":"7950:3:34"},"nativeSrc":"7950:15:34","nodeType":"YulFunctionCall","src":"7950:15:34"}],"functionName":{"name":"eq","nativeSrc":"7944:2:34","nodeType":"YulIdentifier","src":"7944:2:34"},"nativeSrc":"7944:22:34","nodeType":"YulFunctionCall","src":"7944:22:34"}],"functionName":{"name":"or","nativeSrc":"7930:2:34","nodeType":"YulIdentifier","src":"7930:2:34"},"nativeSrc":"7930:37:34","nodeType":"YulFunctionCall","src":"7930:37:34"}],"functionName":{"name":"iszero","nativeSrc":"7923:6:34","nodeType":"YulIdentifier","src":"7923:6:34"},"nativeSrc":"7923:45:34","nodeType":"YulFunctionCall","src":"7923:45:34"},"nativeSrc":"7920:71:34","nodeType":"YulIf","src":"7920:71:34"}]},"name":"checked_mul_t_uint256","nativeSrc":"7829:168:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7860:1:34","nodeType":"YulTypedName","src":"7860:1:34","type":""},{"name":"y","nativeSrc":"7863:1:34","nodeType":"YulTypedName","src":"7863:1:34","type":""}],"returnVariables":[{"name":"product","nativeSrc":"7869:7:34","nodeType":"YulTypedName","src":"7869:7:34","type":""}],"src":"7829:168:34"},{"body":{"nativeSrc":"8131:119:34","nodeType":"YulBlock","src":"8131:119:34","statements":[{"nativeSrc":"8141:26:34","nodeType":"YulAssignment","src":"8141:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"8153:9:34","nodeType":"YulIdentifier","src":"8153:9:34"},{"kind":"number","nativeSrc":"8164:2:34","nodeType":"YulLiteral","src":"8164:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8149:3:34","nodeType":"YulIdentifier","src":"8149:3:34"},"nativeSrc":"8149:18:34","nodeType":"YulFunctionCall","src":"8149:18:34"},"variableNames":[{"name":"tail","nativeSrc":"8141:4:34","nodeType":"YulIdentifier","src":"8141:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8183:9:34","nodeType":"YulIdentifier","src":"8183:9:34"},{"name":"value0","nativeSrc":"8194:6:34","nodeType":"YulIdentifier","src":"8194:6:34"}],"functionName":{"name":"mstore","nativeSrc":"8176:6:34","nodeType":"YulIdentifier","src":"8176:6:34"},"nativeSrc":"8176:25:34","nodeType":"YulFunctionCall","src":"8176:25:34"},"nativeSrc":"8176:25:34","nodeType":"YulExpressionStatement","src":"8176:25:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8221:9:34","nodeType":"YulIdentifier","src":"8221:9:34"},{"kind":"number","nativeSrc":"8232:2:34","nodeType":"YulLiteral","src":"8232:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8217:3:34","nodeType":"YulIdentifier","src":"8217:3:34"},"nativeSrc":"8217:18:34","nodeType":"YulFunctionCall","src":"8217:18:34"},{"name":"value1","nativeSrc":"8237:6:34","nodeType":"YulIdentifier","src":"8237:6:34"}],"functionName":{"name":"mstore","nativeSrc":"8210:6:34","nodeType":"YulIdentifier","src":"8210:6:34"},"nativeSrc":"8210:34:34","nodeType":"YulFunctionCall","src":"8210:34:34"},"nativeSrc":"8210:34:34","nodeType":"YulExpressionStatement","src":"8210:34:34"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"8002:248:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8092:9:34","nodeType":"YulTypedName","src":"8092:9:34","type":""},{"name":"value1","nativeSrc":"8103:6:34","nodeType":"YulTypedName","src":"8103:6:34","type":""},{"name":"value0","nativeSrc":"8111:6:34","nodeType":"YulTypedName","src":"8111:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8122:4:34","nodeType":"YulTypedName","src":"8122:4:34","type":""}],"src":"8002:248:34"},{"body":{"nativeSrc":"8353:214:34","nodeType":"YulBlock","src":"8353:214:34","statements":[{"body":{"nativeSrc":"8399:16:34","nodeType":"YulBlock","src":"8399:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8408:1:34","nodeType":"YulLiteral","src":"8408:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"8411:1:34","nodeType":"YulLiteral","src":"8411:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8401:6:34","nodeType":"YulIdentifier","src":"8401:6:34"},"nativeSrc":"8401:12:34","nodeType":"YulFunctionCall","src":"8401:12:34"},"nativeSrc":"8401:12:34","nodeType":"YulExpressionStatement","src":"8401:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8374:7:34","nodeType":"YulIdentifier","src":"8374:7:34"},{"name":"headStart","nativeSrc":"8383:9:34","nodeType":"YulIdentifier","src":"8383:9:34"}],"functionName":{"name":"sub","nativeSrc":"8370:3:34","nodeType":"YulIdentifier","src":"8370:3:34"},"nativeSrc":"8370:23:34","nodeType":"YulFunctionCall","src":"8370:23:34"},{"kind":"number","nativeSrc":"8395:2:34","nodeType":"YulLiteral","src":"8395:2:34","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8366:3:34","nodeType":"YulIdentifier","src":"8366:3:34"},"nativeSrc":"8366:32:34","nodeType":"YulFunctionCall","src":"8366:32:34"},"nativeSrc":"8363:52:34","nodeType":"YulIf","src":"8363:52:34"},{"nativeSrc":"8424:29:34","nodeType":"YulVariableDeclaration","src":"8424:29:34","value":{"arguments":[{"name":"headStart","nativeSrc":"8443:9:34","nodeType":"YulIdentifier","src":"8443:9:34"}],"functionName":{"name":"mload","nativeSrc":"8437:5:34","nodeType":"YulIdentifier","src":"8437:5:34"},"nativeSrc":"8437:16:34","nodeType":"YulFunctionCall","src":"8437:16:34"},"variables":[{"name":"value","nativeSrc":"8428:5:34","nodeType":"YulTypedName","src":"8428:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8487:5:34","nodeType":"YulIdentifier","src":"8487:5:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"8462:24:34","nodeType":"YulIdentifier","src":"8462:24:34"},"nativeSrc":"8462:31:34","nodeType":"YulFunctionCall","src":"8462:31:34"},"nativeSrc":"8462:31:34","nodeType":"YulExpressionStatement","src":"8462:31:34"},{"nativeSrc":"8502:15:34","nodeType":"YulAssignment","src":"8502:15:34","value":{"name":"value","nativeSrc":"8512:5:34","nodeType":"YulIdentifier","src":"8512:5:34"},"variableNames":[{"name":"value0","nativeSrc":"8502:6:34","nodeType":"YulIdentifier","src":"8502:6:34"}]},{"nativeSrc":"8526:35:34","nodeType":"YulAssignment","src":"8526:35:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8546:9:34","nodeType":"YulIdentifier","src":"8546:9:34"},{"kind":"number","nativeSrc":"8557:2:34","nodeType":"YulLiteral","src":"8557:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8542:3:34","nodeType":"YulIdentifier","src":"8542:3:34"},"nativeSrc":"8542:18:34","nodeType":"YulFunctionCall","src":"8542:18:34"}],"functionName":{"name":"mload","nativeSrc":"8536:5:34","nodeType":"YulIdentifier","src":"8536:5:34"},"nativeSrc":"8536:25:34","nodeType":"YulFunctionCall","src":"8536:25:34"},"variableNames":[{"name":"value1","nativeSrc":"8526:6:34","nodeType":"YulIdentifier","src":"8526:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_uint256_fromMemory","nativeSrc":"8255:312:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8311:9:34","nodeType":"YulTypedName","src":"8311:9:34","type":""},{"name":"dataEnd","nativeSrc":"8322:7:34","nodeType":"YulTypedName","src":"8322:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8334:6:34","nodeType":"YulTypedName","src":"8334:6:34","type":""},{"name":"value1","nativeSrc":"8342:6:34","nodeType":"YulTypedName","src":"8342:6:34","type":""}],"src":"8255:312:34"},{"body":{"nativeSrc":"8869:470:34","nodeType":"YulBlock","src":"8869:470:34","statements":[{"nativeSrc":"8879:27:34","nodeType":"YulAssignment","src":"8879:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"8891:9:34","nodeType":"YulIdentifier","src":"8891:9:34"},{"kind":"number","nativeSrc":"8902:3:34","nodeType":"YulLiteral","src":"8902:3:34","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"8887:3:34","nodeType":"YulIdentifier","src":"8887:3:34"},"nativeSrc":"8887:19:34","nodeType":"YulFunctionCall","src":"8887:19:34"},"variableNames":[{"name":"tail","nativeSrc":"8879:4:34","nodeType":"YulIdentifier","src":"8879:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8922:9:34","nodeType":"YulIdentifier","src":"8922:9:34"},{"name":"value0","nativeSrc":"8933:6:34","nodeType":"YulIdentifier","src":"8933:6:34"}],"functionName":{"name":"mstore","nativeSrc":"8915:6:34","nodeType":"YulIdentifier","src":"8915:6:34"},"nativeSrc":"8915:25:34","nodeType":"YulFunctionCall","src":"8915:25:34"},"nativeSrc":"8915:25:34","nodeType":"YulExpressionStatement","src":"8915:25:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8960:9:34","nodeType":"YulIdentifier","src":"8960:9:34"},{"kind":"number","nativeSrc":"8971:2:34","nodeType":"YulLiteral","src":"8971:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8956:3:34","nodeType":"YulIdentifier","src":"8956:3:34"},"nativeSrc":"8956:18:34","nodeType":"YulFunctionCall","src":"8956:18:34"},{"name":"value1","nativeSrc":"8976:6:34","nodeType":"YulIdentifier","src":"8976:6:34"}],"functionName":{"name":"mstore","nativeSrc":"8949:6:34","nodeType":"YulIdentifier","src":"8949:6:34"},"nativeSrc":"8949:34:34","nodeType":"YulFunctionCall","src":"8949:34:34"},"nativeSrc":"8949:34:34","nodeType":"YulExpressionStatement","src":"8949:34:34"},{"nativeSrc":"8992:52:34","nodeType":"YulVariableDeclaration","src":"8992:52:34","value":{"kind":"number","nativeSrc":"9002:42:34","nodeType":"YulLiteral","src":"9002:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"8996:2:34","nodeType":"YulTypedName","src":"8996:2:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9064:9:34","nodeType":"YulIdentifier","src":"9064:9:34"},{"kind":"number","nativeSrc":"9075:2:34","nodeType":"YulLiteral","src":"9075:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9060:3:34","nodeType":"YulIdentifier","src":"9060:3:34"},"nativeSrc":"9060:18:34","nodeType":"YulFunctionCall","src":"9060:18:34"},{"arguments":[{"name":"value2","nativeSrc":"9084:6:34","nodeType":"YulIdentifier","src":"9084:6:34"},{"name":"_1","nativeSrc":"9092:2:34","nodeType":"YulIdentifier","src":"9092:2:34"}],"functionName":{"name":"and","nativeSrc":"9080:3:34","nodeType":"YulIdentifier","src":"9080:3:34"},"nativeSrc":"9080:15:34","nodeType":"YulFunctionCall","src":"9080:15:34"}],"functionName":{"name":"mstore","nativeSrc":"9053:6:34","nodeType":"YulIdentifier","src":"9053:6:34"},"nativeSrc":"9053:43:34","nodeType":"YulFunctionCall","src":"9053:43:34"},"nativeSrc":"9053:43:34","nodeType":"YulExpressionStatement","src":"9053:43:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9116:9:34","nodeType":"YulIdentifier","src":"9116:9:34"},{"kind":"number","nativeSrc":"9127:2:34","nodeType":"YulLiteral","src":"9127:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9112:3:34","nodeType":"YulIdentifier","src":"9112:3:34"},"nativeSrc":"9112:18:34","nodeType":"YulFunctionCall","src":"9112:18:34"},{"name":"value3","nativeSrc":"9132:6:34","nodeType":"YulIdentifier","src":"9132:6:34"}],"functionName":{"name":"mstore","nativeSrc":"9105:6:34","nodeType":"YulIdentifier","src":"9105:6:34"},"nativeSrc":"9105:34:34","nodeType":"YulFunctionCall","src":"9105:34:34"},"nativeSrc":"9105:34:34","nodeType":"YulExpressionStatement","src":"9105:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9159:9:34","nodeType":"YulIdentifier","src":"9159:9:34"},{"kind":"number","nativeSrc":"9170:3:34","nodeType":"YulLiteral","src":"9170:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9155:3:34","nodeType":"YulIdentifier","src":"9155:3:34"},"nativeSrc":"9155:19:34","nodeType":"YulFunctionCall","src":"9155:19:34"},{"name":"value4","nativeSrc":"9176:6:34","nodeType":"YulIdentifier","src":"9176:6:34"}],"functionName":{"name":"mstore","nativeSrc":"9148:6:34","nodeType":"YulIdentifier","src":"9148:6:34"},"nativeSrc":"9148:35:34","nodeType":"YulFunctionCall","src":"9148:35:34"},"nativeSrc":"9148:35:34","nodeType":"YulExpressionStatement","src":"9148:35:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9203:9:34","nodeType":"YulIdentifier","src":"9203:9:34"},{"kind":"number","nativeSrc":"9214:3:34","nodeType":"YulLiteral","src":"9214:3:34","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"9199:3:34","nodeType":"YulIdentifier","src":"9199:3:34"},"nativeSrc":"9199:19:34","nodeType":"YulFunctionCall","src":"9199:19:34"},{"arguments":[{"name":"value5","nativeSrc":"9224:6:34","nodeType":"YulIdentifier","src":"9224:6:34"},{"name":"_1","nativeSrc":"9232:2:34","nodeType":"YulIdentifier","src":"9232:2:34"}],"functionName":{"name":"and","nativeSrc":"9220:3:34","nodeType":"YulIdentifier","src":"9220:3:34"},"nativeSrc":"9220:15:34","nodeType":"YulFunctionCall","src":"9220:15:34"}],"functionName":{"name":"mstore","nativeSrc":"9192:6:34","nodeType":"YulIdentifier","src":"9192:6:34"},"nativeSrc":"9192:44:34","nodeType":"YulFunctionCall","src":"9192:44:34"},"nativeSrc":"9192:44:34","nodeType":"YulExpressionStatement","src":"9192:44:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9256:9:34","nodeType":"YulIdentifier","src":"9256:9:34"},{"kind":"number","nativeSrc":"9267:3:34","nodeType":"YulLiteral","src":"9267:3:34","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"9252:3:34","nodeType":"YulIdentifier","src":"9252:3:34"},"nativeSrc":"9252:19:34","nodeType":"YulFunctionCall","src":"9252:19:34"},{"arguments":[{"name":"value6","nativeSrc":"9277:6:34","nodeType":"YulIdentifier","src":"9277:6:34"},{"name":"_1","nativeSrc":"9285:2:34","nodeType":"YulIdentifier","src":"9285:2:34"}],"functionName":{"name":"and","nativeSrc":"9273:3:34","nodeType":"YulIdentifier","src":"9273:3:34"},"nativeSrc":"9273:15:34","nodeType":"YulFunctionCall","src":"9273:15:34"}],"functionName":{"name":"mstore","nativeSrc":"9245:6:34","nodeType":"YulIdentifier","src":"9245:6:34"},"nativeSrc":"9245:44:34","nodeType":"YulFunctionCall","src":"9245:44:34"},"nativeSrc":"9245:44:34","nodeType":"YulExpressionStatement","src":"9245:44:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9309:9:34","nodeType":"YulIdentifier","src":"9309:9:34"},{"kind":"number","nativeSrc":"9320:3:34","nodeType":"YulLiteral","src":"9320:3:34","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"9305:3:34","nodeType":"YulIdentifier","src":"9305:3:34"},"nativeSrc":"9305:19:34","nodeType":"YulFunctionCall","src":"9305:19:34"},{"name":"value7","nativeSrc":"9326:6:34","nodeType":"YulIdentifier","src":"9326:6:34"}],"functionName":{"name":"mstore","nativeSrc":"9298:6:34","nodeType":"YulIdentifier","src":"9298:6:34"},"nativeSrc":"9298:35:34","nodeType":"YulFunctionCall","src":"9298:35:34"},"nativeSrc":"9298:35:34","nodeType":"YulExpressionStatement","src":"9298:35:34"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address_t_uint256_t_uint256_t_address_t_address_t_uint256__to_t_uint256_t_uint256_t_address_t_uint256_t_uint256_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"8572:767:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8782:9:34","nodeType":"YulTypedName","src":"8782:9:34","type":""},{"name":"value7","nativeSrc":"8793:6:34","nodeType":"YulTypedName","src":"8793:6:34","type":""},{"name":"value6","nativeSrc":"8801:6:34","nodeType":"YulTypedName","src":"8801:6:34","type":""},{"name":"value5","nativeSrc":"8809:6:34","nodeType":"YulTypedName","src":"8809:6:34","type":""},{"name":"value4","nativeSrc":"8817:6:34","nodeType":"YulTypedName","src":"8817:6:34","type":""},{"name":"value3","nativeSrc":"8825:6:34","nodeType":"YulTypedName","src":"8825:6:34","type":""},{"name":"value2","nativeSrc":"8833:6:34","nodeType":"YulTypedName","src":"8833:6:34","type":""},{"name":"value1","nativeSrc":"8841:6:34","nodeType":"YulTypedName","src":"8841:6:34","type":""},{"name":"value0","nativeSrc":"8849:6:34","nodeType":"YulTypedName","src":"8849:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8860:4:34","nodeType":"YulTypedName","src":"8860:4:34","type":""}],"src":"8572:767:34"},{"body":{"nativeSrc":"9376:152:34","nodeType":"YulBlock","src":"9376:152:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9393:1:34","nodeType":"YulLiteral","src":"9393:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"9396:77:34","nodeType":"YulLiteral","src":"9396:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9386:6:34","nodeType":"YulIdentifier","src":"9386:6:34"},"nativeSrc":"9386:88:34","nodeType":"YulFunctionCall","src":"9386:88:34"},"nativeSrc":"9386:88:34","nodeType":"YulExpressionStatement","src":"9386:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9490:1:34","nodeType":"YulLiteral","src":"9490:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"9493:4:34","nodeType":"YulLiteral","src":"9493:4:34","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"9483:6:34","nodeType":"YulIdentifier","src":"9483:6:34"},"nativeSrc":"9483:15:34","nodeType":"YulFunctionCall","src":"9483:15:34"},"nativeSrc":"9483:15:34","nodeType":"YulExpressionStatement","src":"9483:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9514:1:34","nodeType":"YulLiteral","src":"9514:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"9517:4:34","nodeType":"YulLiteral","src":"9517:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9507:6:34","nodeType":"YulIdentifier","src":"9507:6:34"},"nativeSrc":"9507:15:34","nodeType":"YulFunctionCall","src":"9507:15:34"},"nativeSrc":"9507:15:34","nodeType":"YulExpressionStatement","src":"9507:15:34"}]},"name":"panic_error_0x41","nativeSrc":"9344:184:34","nodeType":"YulFunctionDefinition","src":"9344:184:34"},{"body":{"nativeSrc":"9601:201:34","nodeType":"YulBlock","src":"9601:201:34","statements":[{"body":{"nativeSrc":"9647:16:34","nodeType":"YulBlock","src":"9647:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9656:1:34","nodeType":"YulLiteral","src":"9656:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"9659:1:34","nodeType":"YulLiteral","src":"9659:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9649:6:34","nodeType":"YulIdentifier","src":"9649:6:34"},"nativeSrc":"9649:12:34","nodeType":"YulFunctionCall","src":"9649:12:34"},"nativeSrc":"9649:12:34","nodeType":"YulExpressionStatement","src":"9649:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9622:7:34","nodeType":"YulIdentifier","src":"9622:7:34"},{"name":"headStart","nativeSrc":"9631:9:34","nodeType":"YulIdentifier","src":"9631:9:34"}],"functionName":{"name":"sub","nativeSrc":"9618:3:34","nodeType":"YulIdentifier","src":"9618:3:34"},"nativeSrc":"9618:23:34","nodeType":"YulFunctionCall","src":"9618:23:34"},{"kind":"number","nativeSrc":"9643:2:34","nodeType":"YulLiteral","src":"9643:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9614:3:34","nodeType":"YulIdentifier","src":"9614:3:34"},"nativeSrc":"9614:32:34","nodeType":"YulFunctionCall","src":"9614:32:34"},"nativeSrc":"9611:52:34","nodeType":"YulIf","src":"9611:52:34"},{"nativeSrc":"9672:36:34","nodeType":"YulVariableDeclaration","src":"9672:36:34","value":{"arguments":[{"name":"headStart","nativeSrc":"9698:9:34","nodeType":"YulIdentifier","src":"9698:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"9685:12:34","nodeType":"YulIdentifier","src":"9685:12:34"},"nativeSrc":"9685:23:34","nodeType":"YulFunctionCall","src":"9685:23:34"},"variables":[{"name":"value","nativeSrc":"9676:5:34","nodeType":"YulTypedName","src":"9676:5:34","type":""}]},{"body":{"nativeSrc":"9756:16:34","nodeType":"YulBlock","src":"9756:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9765:1:34","nodeType":"YulLiteral","src":"9765:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"9768:1:34","nodeType":"YulLiteral","src":"9768:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9758:6:34","nodeType":"YulIdentifier","src":"9758:6:34"},"nativeSrc":"9758:12:34","nodeType":"YulFunctionCall","src":"9758:12:34"},"nativeSrc":"9758:12:34","nodeType":"YulExpressionStatement","src":"9758:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9730:5:34","nodeType":"YulIdentifier","src":"9730:5:34"},{"arguments":[{"name":"value","nativeSrc":"9741:5:34","nodeType":"YulIdentifier","src":"9741:5:34"},{"kind":"number","nativeSrc":"9748:4:34","nodeType":"YulLiteral","src":"9748:4:34","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"9737:3:34","nodeType":"YulIdentifier","src":"9737:3:34"},"nativeSrc":"9737:16:34","nodeType":"YulFunctionCall","src":"9737:16:34"}],"functionName":{"name":"eq","nativeSrc":"9727:2:34","nodeType":"YulIdentifier","src":"9727:2:34"},"nativeSrc":"9727:27:34","nodeType":"YulFunctionCall","src":"9727:27:34"}],"functionName":{"name":"iszero","nativeSrc":"9720:6:34","nodeType":"YulIdentifier","src":"9720:6:34"},"nativeSrc":"9720:35:34","nodeType":"YulFunctionCall","src":"9720:35:34"},"nativeSrc":"9717:55:34","nodeType":"YulIf","src":"9717:55:34"},{"nativeSrc":"9781:15:34","nodeType":"YulAssignment","src":"9781:15:34","value":{"name":"value","nativeSrc":"9791:5:34","nodeType":"YulIdentifier","src":"9791:5:34"},"variableNames":[{"name":"value0","nativeSrc":"9781:6:34","nodeType":"YulIdentifier","src":"9781:6:34"}]}]},"name":"abi_decode_tuple_t_uint8","nativeSrc":"9533:269:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9567:9:34","nodeType":"YulTypedName","src":"9567:9:34","type":""},{"name":"dataEnd","nativeSrc":"9578:7:34","nodeType":"YulTypedName","src":"9578:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9590:6:34","nodeType":"YulTypedName","src":"9590:6:34","type":""}],"src":"9533:269:34"},{"body":{"nativeSrc":"9978:220:34","nodeType":"YulBlock","src":"9978:220:34","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9995:3:34","nodeType":"YulIdentifier","src":"9995:3:34"},{"name":"value0","nativeSrc":"10000:6:34","nodeType":"YulIdentifier","src":"10000:6:34"}],"functionName":{"name":"mstore","nativeSrc":"9988:6:34","nodeType":"YulIdentifier","src":"9988:6:34"},"nativeSrc":"9988:19:34","nodeType":"YulFunctionCall","src":"9988:19:34"},"nativeSrc":"9988:19:34","nodeType":"YulExpressionStatement","src":"9988:19:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"10027:3:34","nodeType":"YulIdentifier","src":"10027:3:34"},{"kind":"number","nativeSrc":"10032:2:34","nodeType":"YulLiteral","src":"10032:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10023:3:34","nodeType":"YulIdentifier","src":"10023:3:34"},"nativeSrc":"10023:12:34","nodeType":"YulFunctionCall","src":"10023:12:34"},{"name":"value1","nativeSrc":"10037:6:34","nodeType":"YulIdentifier","src":"10037:6:34"}],"functionName":{"name":"mstore","nativeSrc":"10016:6:34","nodeType":"YulIdentifier","src":"10016:6:34"},"nativeSrc":"10016:28:34","nodeType":"YulFunctionCall","src":"10016:28:34"},"nativeSrc":"10016:28:34","nodeType":"YulExpressionStatement","src":"10016:28:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"10064:3:34","nodeType":"YulIdentifier","src":"10064:3:34"},{"kind":"number","nativeSrc":"10069:2:34","nodeType":"YulLiteral","src":"10069:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10060:3:34","nodeType":"YulIdentifier","src":"10060:3:34"},"nativeSrc":"10060:12:34","nodeType":"YulFunctionCall","src":"10060:12:34"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10082:3:34","nodeType":"YulLiteral","src":"10082:3:34","type":"","value":"248"},{"name":"value2","nativeSrc":"10087:6:34","nodeType":"YulIdentifier","src":"10087:6:34"}],"functionName":{"name":"shl","nativeSrc":"10078:3:34","nodeType":"YulIdentifier","src":"10078:3:34"},"nativeSrc":"10078:16:34","nodeType":"YulFunctionCall","src":"10078:16:34"},{"kind":"number","nativeSrc":"10096:66:34","nodeType":"YulLiteral","src":"10096:66:34","type":"","value":"0xff00000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"10074:3:34","nodeType":"YulIdentifier","src":"10074:3:34"},"nativeSrc":"10074:89:34","nodeType":"YulFunctionCall","src":"10074:89:34"}],"functionName":{"name":"mstore","nativeSrc":"10053:6:34","nodeType":"YulIdentifier","src":"10053:6:34"},"nativeSrc":"10053:111:34","nodeType":"YulFunctionCall","src":"10053:111:34"},"nativeSrc":"10053:111:34","nodeType":"YulExpressionStatement","src":"10053:111:34"},{"nativeSrc":"10173:19:34","nodeType":"YulAssignment","src":"10173:19:34","value":{"arguments":[{"name":"pos","nativeSrc":"10184:3:34","nodeType":"YulIdentifier","src":"10184:3:34"},{"kind":"number","nativeSrc":"10189:2:34","nodeType":"YulLiteral","src":"10189:2:34","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"10180:3:34","nodeType":"YulIdentifier","src":"10180:3:34"},"nativeSrc":"10180:12:34","nodeType":"YulFunctionCall","src":"10180:12:34"},"variableNames":[{"name":"end","nativeSrc":"10173:3:34","nodeType":"YulIdentifier","src":"10173:3:34"}]}]},"name":"abi_encode_tuple_packed_t_bytes32_t_bytes32_t_uint8__to_t_bytes32_t_bytes32_t_uint8__nonPadded_inplace_fromStack_reversed","nativeSrc":"9807:391:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9938:3:34","nodeType":"YulTypedName","src":"9938:3:34","type":""},{"name":"value2","nativeSrc":"9943:6:34","nodeType":"YulTypedName","src":"9943:6:34","type":""},{"name":"value1","nativeSrc":"9951:6:34","nodeType":"YulTypedName","src":"9951:6:34","type":""},{"name":"value0","nativeSrc":"9959:6:34","nodeType":"YulTypedName","src":"9959:6:34","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9970:3:34","nodeType":"YulTypedName","src":"9970:3:34","type":""}],"src":"9807:391:34"},{"body":{"nativeSrc":"10250:148:34","nodeType":"YulBlock","src":"10250:148:34","statements":[{"body":{"nativeSrc":"10341:22:34","nodeType":"YulBlock","src":"10341:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10343:16:34","nodeType":"YulIdentifier","src":"10343:16:34"},"nativeSrc":"10343:18:34","nodeType":"YulFunctionCall","src":"10343:18:34"},"nativeSrc":"10343:18:34","nodeType":"YulExpressionStatement","src":"10343:18:34"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"10266:5:34","nodeType":"YulIdentifier","src":"10266:5:34"},{"kind":"number","nativeSrc":"10273:66:34","nodeType":"YulLiteral","src":"10273:66:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"10263:2:34","nodeType":"YulIdentifier","src":"10263:2:34"},"nativeSrc":"10263:77:34","nodeType":"YulFunctionCall","src":"10263:77:34"},"nativeSrc":"10260:103:34","nodeType":"YulIf","src":"10260:103:34"},{"nativeSrc":"10372:20:34","nodeType":"YulAssignment","src":"10372:20:34","value":{"arguments":[{"name":"value","nativeSrc":"10383:5:34","nodeType":"YulIdentifier","src":"10383:5:34"},{"kind":"number","nativeSrc":"10390:1:34","nodeType":"YulLiteral","src":"10390:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10379:3:34","nodeType":"YulIdentifier","src":"10379:3:34"},"nativeSrc":"10379:13:34","nodeType":"YulFunctionCall","src":"10379:13:34"},"variableNames":[{"name":"ret","nativeSrc":"10372:3:34","nodeType":"YulIdentifier","src":"10372:3:34"}]}]},"name":"increment_t_uint256","nativeSrc":"10203:195:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10232:5:34","nodeType":"YulTypedName","src":"10232:5:34","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"10242:3:34","nodeType":"YulTypedName","src":"10242:3:34","type":""}],"src":"10203:195:34"},{"body":{"nativeSrc":"10451:77:34","nodeType":"YulBlock","src":"10451:77:34","statements":[{"nativeSrc":"10461:16:34","nodeType":"YulAssignment","src":"10461:16:34","value":{"arguments":[{"name":"x","nativeSrc":"10472:1:34","nodeType":"YulIdentifier","src":"10472:1:34"},{"name":"y","nativeSrc":"10475:1:34","nodeType":"YulIdentifier","src":"10475:1:34"}],"functionName":{"name":"add","nativeSrc":"10468:3:34","nodeType":"YulIdentifier","src":"10468:3:34"},"nativeSrc":"10468:9:34","nodeType":"YulFunctionCall","src":"10468:9:34"},"variableNames":[{"name":"sum","nativeSrc":"10461:3:34","nodeType":"YulIdentifier","src":"10461:3:34"}]},{"body":{"nativeSrc":"10500:22:34","nodeType":"YulBlock","src":"10500:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10502:16:34","nodeType":"YulIdentifier","src":"10502:16:34"},"nativeSrc":"10502:18:34","nodeType":"YulFunctionCall","src":"10502:18:34"},"nativeSrc":"10502:18:34","nodeType":"YulExpressionStatement","src":"10502:18:34"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"10492:1:34","nodeType":"YulIdentifier","src":"10492:1:34"},{"name":"sum","nativeSrc":"10495:3:34","nodeType":"YulIdentifier","src":"10495:3:34"}],"functionName":{"name":"gt","nativeSrc":"10489:2:34","nodeType":"YulIdentifier","src":"10489:2:34"},"nativeSrc":"10489:10:34","nodeType":"YulFunctionCall","src":"10489:10:34"},"nativeSrc":"10486:36:34","nodeType":"YulIf","src":"10486:36:34"}]},"name":"checked_add_t_uint256","nativeSrc":"10403:125:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"10434:1:34","nodeType":"YulTypedName","src":"10434:1:34","type":""},{"name":"y","nativeSrc":"10437:1:34","nodeType":"YulTypedName","src":"10437:1:34","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"10443:3:34","nodeType":"YulTypedName","src":"10443:3:34","type":""}],"src":"10403:125:34"},{"body":{"nativeSrc":"10680:488:34","nodeType":"YulBlock","src":"10680:488:34","statements":[{"nativeSrc":"10690:27:34","nodeType":"YulAssignment","src":"10690:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"10702:9:34","nodeType":"YulIdentifier","src":"10702:9:34"},{"kind":"number","nativeSrc":"10713:3:34","nodeType":"YulLiteral","src":"10713:3:34","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"10698:3:34","nodeType":"YulIdentifier","src":"10698:3:34"},"nativeSrc":"10698:19:34","nodeType":"YulFunctionCall","src":"10698:19:34"},"variableNames":[{"name":"tail","nativeSrc":"10690:4:34","nodeType":"YulIdentifier","src":"10690:4:34"}]},{"nativeSrc":"10726:52:34","nodeType":"YulVariableDeclaration","src":"10726:52:34","value":{"kind":"number","nativeSrc":"10736:42:34","nodeType":"YulLiteral","src":"10736:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"10730:2:34","nodeType":"YulTypedName","src":"10730:2:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10794:9:34","nodeType":"YulIdentifier","src":"10794:9:34"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10815:6:34","nodeType":"YulIdentifier","src":"10815:6:34"}],"functionName":{"name":"mload","nativeSrc":"10809:5:34","nodeType":"YulIdentifier","src":"10809:5:34"},"nativeSrc":"10809:13:34","nodeType":"YulFunctionCall","src":"10809:13:34"},{"name":"_1","nativeSrc":"10824:2:34","nodeType":"YulIdentifier","src":"10824:2:34"}],"functionName":{"name":"and","nativeSrc":"10805:3:34","nodeType":"YulIdentifier","src":"10805:3:34"},"nativeSrc":"10805:22:34","nodeType":"YulFunctionCall","src":"10805:22:34"}],"functionName":{"name":"mstore","nativeSrc":"10787:6:34","nodeType":"YulIdentifier","src":"10787:6:34"},"nativeSrc":"10787:41:34","nodeType":"YulFunctionCall","src":"10787:41:34"},"nativeSrc":"10787:41:34","nodeType":"YulExpressionStatement","src":"10787:41:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10848:9:34","nodeType":"YulIdentifier","src":"10848:9:34"},{"kind":"number","nativeSrc":"10859:4:34","nodeType":"YulLiteral","src":"10859:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10844:3:34","nodeType":"YulIdentifier","src":"10844:3:34"},"nativeSrc":"10844:20:34","nodeType":"YulFunctionCall","src":"10844:20:34"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10880:6:34","nodeType":"YulIdentifier","src":"10880:6:34"},{"kind":"number","nativeSrc":"10888:4:34","nodeType":"YulLiteral","src":"10888:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10876:3:34","nodeType":"YulIdentifier","src":"10876:3:34"},"nativeSrc":"10876:17:34","nodeType":"YulFunctionCall","src":"10876:17:34"}],"functionName":{"name":"mload","nativeSrc":"10870:5:34","nodeType":"YulIdentifier","src":"10870:5:34"},"nativeSrc":"10870:24:34","nodeType":"YulFunctionCall","src":"10870:24:34"},{"name":"_1","nativeSrc":"10896:2:34","nodeType":"YulIdentifier","src":"10896:2:34"}],"functionName":{"name":"and","nativeSrc":"10866:3:34","nodeType":"YulIdentifier","src":"10866:3:34"},"nativeSrc":"10866:33:34","nodeType":"YulFunctionCall","src":"10866:33:34"}],"functionName":{"name":"mstore","nativeSrc":"10837:6:34","nodeType":"YulIdentifier","src":"10837:6:34"},"nativeSrc":"10837:63:34","nodeType":"YulFunctionCall","src":"10837:63:34"},"nativeSrc":"10837:63:34","nodeType":"YulExpressionStatement","src":"10837:63:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10920:9:34","nodeType":"YulIdentifier","src":"10920:9:34"},{"kind":"number","nativeSrc":"10931:4:34","nodeType":"YulLiteral","src":"10931:4:34","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"10916:3:34","nodeType":"YulIdentifier","src":"10916:3:34"},"nativeSrc":"10916:20:34","nodeType":"YulFunctionCall","src":"10916:20:34"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"10952:6:34","nodeType":"YulIdentifier","src":"10952:6:34"},{"kind":"number","nativeSrc":"10960:4:34","nodeType":"YulLiteral","src":"10960:4:34","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"10948:3:34","nodeType":"YulIdentifier","src":"10948:3:34"},"nativeSrc":"10948:17:34","nodeType":"YulFunctionCall","src":"10948:17:34"}],"functionName":{"name":"mload","nativeSrc":"10942:5:34","nodeType":"YulIdentifier","src":"10942:5:34"},"nativeSrc":"10942:24:34","nodeType":"YulFunctionCall","src":"10942:24:34"},{"kind":"number","nativeSrc":"10968:66:34","nodeType":"YulLiteral","src":"10968:66:34","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"10938:3:34","nodeType":"YulIdentifier","src":"10938:3:34"},"nativeSrc":"10938:97:34","nodeType":"YulFunctionCall","src":"10938:97:34"}],"functionName":{"name":"mstore","nativeSrc":"10909:6:34","nodeType":"YulIdentifier","src":"10909:6:34"},"nativeSrc":"10909:127:34","nodeType":"YulFunctionCall","src":"10909:127:34"},"nativeSrc":"10909:127:34","nodeType":"YulExpressionStatement","src":"10909:127:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11056:9:34","nodeType":"YulIdentifier","src":"11056:9:34"},{"kind":"number","nativeSrc":"11067:4:34","nodeType":"YulLiteral","src":"11067:4:34","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"11052:3:34","nodeType":"YulIdentifier","src":"11052:3:34"},"nativeSrc":"11052:20:34","nodeType":"YulFunctionCall","src":"11052:20:34"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11084:6:34","nodeType":"YulIdentifier","src":"11084:6:34"},{"kind":"number","nativeSrc":"11092:4:34","nodeType":"YulLiteral","src":"11092:4:34","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"11080:3:34","nodeType":"YulIdentifier","src":"11080:3:34"},"nativeSrc":"11080:17:34","nodeType":"YulFunctionCall","src":"11080:17:34"}],"functionName":{"name":"mload","nativeSrc":"11074:5:34","nodeType":"YulIdentifier","src":"11074:5:34"},"nativeSrc":"11074:24:34","nodeType":"YulFunctionCall","src":"11074:24:34"}],"functionName":{"name":"mstore","nativeSrc":"11045:6:34","nodeType":"YulIdentifier","src":"11045:6:34"},"nativeSrc":"11045:54:34","nodeType":"YulFunctionCall","src":"11045:54:34"},"nativeSrc":"11045:54:34","nodeType":"YulExpressionStatement","src":"11045:54:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11119:9:34","nodeType":"YulIdentifier","src":"11119:9:34"},{"kind":"number","nativeSrc":"11130:4:34","nodeType":"YulLiteral","src":"11130:4:34","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"11115:3:34","nodeType":"YulIdentifier","src":"11115:3:34"},"nativeSrc":"11115:20:34","nodeType":"YulFunctionCall","src":"11115:20:34"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"11147:6:34","nodeType":"YulIdentifier","src":"11147:6:34"},{"kind":"number","nativeSrc":"11155:4:34","nodeType":"YulLiteral","src":"11155:4:34","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"11143:3:34","nodeType":"YulIdentifier","src":"11143:3:34"},"nativeSrc":"11143:17:34","nodeType":"YulFunctionCall","src":"11143:17:34"}],"functionName":{"name":"mload","nativeSrc":"11137:5:34","nodeType":"YulIdentifier","src":"11137:5:34"},"nativeSrc":"11137:24:34","nodeType":"YulFunctionCall","src":"11137:24:34"}],"functionName":{"name":"mstore","nativeSrc":"11108:6:34","nodeType":"YulIdentifier","src":"11108:6:34"},"nativeSrc":"11108:54:34","nodeType":"YulFunctionCall","src":"11108:54:34"},"nativeSrc":"11108:54:34","nodeType":"YulExpressionStatement","src":"11108:54:34"}]},"name":"abi_encode_tuple_t_struct$_Party_$6436_memory_ptr__to_t_struct$_Party_$6436_memory_ptr__fromStack_reversed","nativeSrc":"10533:635:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10649:9:34","nodeType":"YulTypedName","src":"10649:9:34","type":""},{"name":"value0","nativeSrc":"10660:6:34","nodeType":"YulTypedName","src":"10660:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10671:4:34","nodeType":"YulTypedName","src":"10671:4:34","type":""}],"src":"10533:635:34"},{"body":{"nativeSrc":"11251:199:34","nodeType":"YulBlock","src":"11251:199:34","statements":[{"body":{"nativeSrc":"11297:16:34","nodeType":"YulBlock","src":"11297:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11306:1:34","nodeType":"YulLiteral","src":"11306:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"11309:1:34","nodeType":"YulLiteral","src":"11309:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11299:6:34","nodeType":"YulIdentifier","src":"11299:6:34"},"nativeSrc":"11299:12:34","nodeType":"YulFunctionCall","src":"11299:12:34"},"nativeSrc":"11299:12:34","nodeType":"YulExpressionStatement","src":"11299:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11272:7:34","nodeType":"YulIdentifier","src":"11272:7:34"},{"name":"headStart","nativeSrc":"11281:9:34","nodeType":"YulIdentifier","src":"11281:9:34"}],"functionName":{"name":"sub","nativeSrc":"11268:3:34","nodeType":"YulIdentifier","src":"11268:3:34"},"nativeSrc":"11268:23:34","nodeType":"YulFunctionCall","src":"11268:23:34"},{"kind":"number","nativeSrc":"11293:2:34","nodeType":"YulLiteral","src":"11293:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11264:3:34","nodeType":"YulIdentifier","src":"11264:3:34"},"nativeSrc":"11264:32:34","nodeType":"YulFunctionCall","src":"11264:32:34"},"nativeSrc":"11261:52:34","nodeType":"YulIf","src":"11261:52:34"},{"nativeSrc":"11322:29:34","nodeType":"YulVariableDeclaration","src":"11322:29:34","value":{"arguments":[{"name":"headStart","nativeSrc":"11341:9:34","nodeType":"YulIdentifier","src":"11341:9:34"}],"functionName":{"name":"mload","nativeSrc":"11335:5:34","nodeType":"YulIdentifier","src":"11335:5:34"},"nativeSrc":"11335:16:34","nodeType":"YulFunctionCall","src":"11335:16:34"},"variables":[{"name":"value","nativeSrc":"11326:5:34","nodeType":"YulTypedName","src":"11326:5:34","type":""}]},{"body":{"nativeSrc":"11404:16:34","nodeType":"YulBlock","src":"11404:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11413:1:34","nodeType":"YulLiteral","src":"11413:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"11416:1:34","nodeType":"YulLiteral","src":"11416:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11406:6:34","nodeType":"YulIdentifier","src":"11406:6:34"},"nativeSrc":"11406:12:34","nodeType":"YulFunctionCall","src":"11406:12:34"},"nativeSrc":"11406:12:34","nodeType":"YulExpressionStatement","src":"11406:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11373:5:34","nodeType":"YulIdentifier","src":"11373:5:34"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11394:5:34","nodeType":"YulIdentifier","src":"11394:5:34"}],"functionName":{"name":"iszero","nativeSrc":"11387:6:34","nodeType":"YulIdentifier","src":"11387:6:34"},"nativeSrc":"11387:13:34","nodeType":"YulFunctionCall","src":"11387:13:34"}],"functionName":{"name":"iszero","nativeSrc":"11380:6:34","nodeType":"YulIdentifier","src":"11380:6:34"},"nativeSrc":"11380:21:34","nodeType":"YulFunctionCall","src":"11380:21:34"}],"functionName":{"name":"eq","nativeSrc":"11370:2:34","nodeType":"YulIdentifier","src":"11370:2:34"},"nativeSrc":"11370:32:34","nodeType":"YulFunctionCall","src":"11370:32:34"}],"functionName":{"name":"iszero","nativeSrc":"11363:6:34","nodeType":"YulIdentifier","src":"11363:6:34"},"nativeSrc":"11363:40:34","nodeType":"YulFunctionCall","src":"11363:40:34"},"nativeSrc":"11360:60:34","nodeType":"YulIf","src":"11360:60:34"},{"nativeSrc":"11429:15:34","nodeType":"YulAssignment","src":"11429:15:34","value":{"name":"value","nativeSrc":"11439:5:34","nodeType":"YulIdentifier","src":"11439:5:34"},"variableNames":[{"name":"value0","nativeSrc":"11429:6:34","nodeType":"YulIdentifier","src":"11429:6:34"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"11173:277:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11217:9:34","nodeType":"YulTypedName","src":"11217:9:34","type":""},{"name":"dataEnd","nativeSrc":"11228:7:34","nodeType":"YulTypedName","src":"11228:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11240:6:34","nodeType":"YulTypedName","src":"11240:6:34","type":""}],"src":"11173:277:34"},{"body":{"nativeSrc":"11513:603:34","nodeType":"YulBlock","src":"11513:603:34","statements":[{"nativeSrc":"11523:34:34","nodeType":"YulVariableDeclaration","src":"11523:34:34","value":{"arguments":[{"name":"value","nativeSrc":"11551:5:34","nodeType":"YulIdentifier","src":"11551:5:34"}],"functionName":{"name":"calldataload","nativeSrc":"11538:12:34","nodeType":"YulIdentifier","src":"11538:12:34"},"nativeSrc":"11538:19:34","nodeType":"YulFunctionCall","src":"11538:19:34"},"variables":[{"name":"value_1","nativeSrc":"11527:7:34","nodeType":"YulTypedName","src":"11527:7:34","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"11591:7:34","nodeType":"YulIdentifier","src":"11591:7:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11566:24:34","nodeType":"YulIdentifier","src":"11566:24:34"},"nativeSrc":"11566:33:34","nodeType":"YulFunctionCall","src":"11566:33:34"},"nativeSrc":"11566:33:34","nodeType":"YulExpressionStatement","src":"11566:33:34"},{"nativeSrc":"11608:52:34","nodeType":"YulVariableDeclaration","src":"11608:52:34","value":{"kind":"number","nativeSrc":"11618:42:34","nodeType":"YulLiteral","src":"11618:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"11612:2:34","nodeType":"YulTypedName","src":"11612:2:34","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11676:3:34","nodeType":"YulIdentifier","src":"11676:3:34"},{"arguments":[{"name":"value_1","nativeSrc":"11685:7:34","nodeType":"YulIdentifier","src":"11685:7:34"},{"name":"_1","nativeSrc":"11694:2:34","nodeType":"YulIdentifier","src":"11694:2:34"}],"functionName":{"name":"and","nativeSrc":"11681:3:34","nodeType":"YulIdentifier","src":"11681:3:34"},"nativeSrc":"11681:16:34","nodeType":"YulFunctionCall","src":"11681:16:34"}],"functionName":{"name":"mstore","nativeSrc":"11669:6:34","nodeType":"YulIdentifier","src":"11669:6:34"},"nativeSrc":"11669:29:34","nodeType":"YulFunctionCall","src":"11669:29:34"},"nativeSrc":"11669:29:34","nodeType":"YulExpressionStatement","src":"11669:29:34"},{"nativeSrc":"11707:45:34","nodeType":"YulVariableDeclaration","src":"11707:45:34","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11739:5:34","nodeType":"YulIdentifier","src":"11739:5:34"},{"kind":"number","nativeSrc":"11746:4:34","nodeType":"YulLiteral","src":"11746:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11735:3:34","nodeType":"YulIdentifier","src":"11735:3:34"},"nativeSrc":"11735:16:34","nodeType":"YulFunctionCall","src":"11735:16:34"}],"functionName":{"name":"calldataload","nativeSrc":"11722:12:34","nodeType":"YulIdentifier","src":"11722:12:34"},"nativeSrc":"11722:30:34","nodeType":"YulFunctionCall","src":"11722:30:34"},"variables":[{"name":"value_2","nativeSrc":"11711:7:34","nodeType":"YulTypedName","src":"11711:7:34","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"11786:7:34","nodeType":"YulIdentifier","src":"11786:7:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"11761:24:34","nodeType":"YulIdentifier","src":"11761:24:34"},"nativeSrc":"11761:33:34","nodeType":"YulFunctionCall","src":"11761:33:34"},"nativeSrc":"11761:33:34","nodeType":"YulExpressionStatement","src":"11761:33:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"11814:3:34","nodeType":"YulIdentifier","src":"11814:3:34"},{"kind":"number","nativeSrc":"11819:4:34","nodeType":"YulLiteral","src":"11819:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11810:3:34","nodeType":"YulIdentifier","src":"11810:3:34"},"nativeSrc":"11810:14:34","nodeType":"YulFunctionCall","src":"11810:14:34"},{"arguments":[{"name":"value_2","nativeSrc":"11830:7:34","nodeType":"YulIdentifier","src":"11830:7:34"},{"name":"_1","nativeSrc":"11839:2:34","nodeType":"YulIdentifier","src":"11839:2:34"}],"functionName":{"name":"and","nativeSrc":"11826:3:34","nodeType":"YulIdentifier","src":"11826:3:34"},"nativeSrc":"11826:16:34","nodeType":"YulFunctionCall","src":"11826:16:34"}],"functionName":{"name":"mstore","nativeSrc":"11803:6:34","nodeType":"YulIdentifier","src":"11803:6:34"},"nativeSrc":"11803:40:34","nodeType":"YulFunctionCall","src":"11803:40:34"},"nativeSrc":"11803:40:34","nodeType":"YulExpressionStatement","src":"11803:40:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"11863:3:34","nodeType":"YulIdentifier","src":"11863:3:34"},{"kind":"number","nativeSrc":"11868:4:34","nodeType":"YulLiteral","src":"11868:4:34","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11859:3:34","nodeType":"YulIdentifier","src":"11859:3:34"},"nativeSrc":"11859:14:34","nodeType":"YulFunctionCall","src":"11859:14:34"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11901:5:34","nodeType":"YulIdentifier","src":"11901:5:34"},{"kind":"number","nativeSrc":"11908:4:34","nodeType":"YulLiteral","src":"11908:4:34","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11897:3:34","nodeType":"YulIdentifier","src":"11897:3:34"},"nativeSrc":"11897:16:34","nodeType":"YulFunctionCall","src":"11897:16:34"}],"functionName":{"name":"abi_decode_bytes4","nativeSrc":"11879:17:34","nodeType":"YulIdentifier","src":"11879:17:34"},"nativeSrc":"11879:35:34","nodeType":"YulFunctionCall","src":"11879:35:34"},{"kind":"number","nativeSrc":"11916:66:34","nodeType":"YulLiteral","src":"11916:66:34","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"11875:3:34","nodeType":"YulIdentifier","src":"11875:3:34"},"nativeSrc":"11875:108:34","nodeType":"YulFunctionCall","src":"11875:108:34"}],"functionName":{"name":"mstore","nativeSrc":"11852:6:34","nodeType":"YulIdentifier","src":"11852:6:34"},"nativeSrc":"11852:132:34","nodeType":"YulFunctionCall","src":"11852:132:34"},"nativeSrc":"11852:132:34","nodeType":"YulExpressionStatement","src":"11852:132:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"12004:3:34","nodeType":"YulIdentifier","src":"12004:3:34"},{"kind":"number","nativeSrc":"12009:4:34","nodeType":"YulLiteral","src":"12009:4:34","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"12000:3:34","nodeType":"YulIdentifier","src":"12000:3:34"},"nativeSrc":"12000:14:34","nodeType":"YulFunctionCall","src":"12000:14:34"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12033:5:34","nodeType":"YulIdentifier","src":"12033:5:34"},{"kind":"number","nativeSrc":"12040:4:34","nodeType":"YulLiteral","src":"12040:4:34","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"12029:3:34","nodeType":"YulIdentifier","src":"12029:3:34"},"nativeSrc":"12029:16:34","nodeType":"YulFunctionCall","src":"12029:16:34"}],"functionName":{"name":"calldataload","nativeSrc":"12016:12:34","nodeType":"YulIdentifier","src":"12016:12:34"},"nativeSrc":"12016:30:34","nodeType":"YulFunctionCall","src":"12016:30:34"}],"functionName":{"name":"mstore","nativeSrc":"11993:6:34","nodeType":"YulIdentifier","src":"11993:6:34"},"nativeSrc":"11993:54:34","nodeType":"YulFunctionCall","src":"11993:54:34"},"nativeSrc":"11993:54:34","nodeType":"YulExpressionStatement","src":"11993:54:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"12067:3:34","nodeType":"YulIdentifier","src":"12067:3:34"},{"kind":"number","nativeSrc":"12072:4:34","nodeType":"YulLiteral","src":"12072:4:34","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"12063:3:34","nodeType":"YulIdentifier","src":"12063:3:34"},"nativeSrc":"12063:14:34","nodeType":"YulFunctionCall","src":"12063:14:34"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12096:5:34","nodeType":"YulIdentifier","src":"12096:5:34"},{"kind":"number","nativeSrc":"12103:4:34","nodeType":"YulLiteral","src":"12103:4:34","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"12092:3:34","nodeType":"YulIdentifier","src":"12092:3:34"},"nativeSrc":"12092:16:34","nodeType":"YulFunctionCall","src":"12092:16:34"}],"functionName":{"name":"calldataload","nativeSrc":"12079:12:34","nodeType":"YulIdentifier","src":"12079:12:34"},"nativeSrc":"12079:30:34","nodeType":"YulFunctionCall","src":"12079:30:34"}],"functionName":{"name":"mstore","nativeSrc":"12056:6:34","nodeType":"YulIdentifier","src":"12056:6:34"},"nativeSrc":"12056:54:34","nodeType":"YulFunctionCall","src":"12056:54:34"},"nativeSrc":"12056:54:34","nodeType":"YulExpressionStatement","src":"12056:54:34"}]},"name":"abi_encode_struct_Party_calldata","nativeSrc":"11455:661:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11497:5:34","nodeType":"YulTypedName","src":"11497:5:34","type":""},{"name":"pos","nativeSrc":"11504:3:34","nodeType":"YulTypedName","src":"11504:3:34","type":""}],"src":"11455:661:34"},{"body":{"nativeSrc":"12270:103:34","nodeType":"YulBlock","src":"12270:103:34","statements":[{"nativeSrc":"12280:27:34","nodeType":"YulAssignment","src":"12280:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"12292:9:34","nodeType":"YulIdentifier","src":"12292:9:34"},{"kind":"number","nativeSrc":"12303:3:34","nodeType":"YulLiteral","src":"12303:3:34","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"12288:3:34","nodeType":"YulIdentifier","src":"12288:3:34"},"nativeSrc":"12288:19:34","nodeType":"YulFunctionCall","src":"12288:19:34"},"variableNames":[{"name":"tail","nativeSrc":"12280:4:34","nodeType":"YulIdentifier","src":"12280:4:34"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12349:6:34","nodeType":"YulIdentifier","src":"12349:6:34"},{"name":"headStart","nativeSrc":"12357:9:34","nodeType":"YulIdentifier","src":"12357:9:34"}],"functionName":{"name":"abi_encode_struct_Party_calldata","nativeSrc":"12316:32:34","nodeType":"YulIdentifier","src":"12316:32:34"},"nativeSrc":"12316:51:34","nodeType":"YulFunctionCall","src":"12316:51:34"},"nativeSrc":"12316:51:34","nodeType":"YulExpressionStatement","src":"12316:51:34"}]},"name":"abi_encode_tuple_t_struct$_Party_$6436_calldata_ptr__to_t_struct$_Party_$6436_memory_ptr__fromStack_reversed","nativeSrc":"12121:252:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12239:9:34","nodeType":"YulTypedName","src":"12239:9:34","type":""},{"name":"value0","nativeSrc":"12250:6:34","nodeType":"YulTypedName","src":"12250:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12261:4:34","nodeType":"YulTypedName","src":"12261:4:34","type":""}],"src":"12121:252:34"},{"body":{"nativeSrc":"12552:231:34","nodeType":"YulBlock","src":"12552:231:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12569:9:34","nodeType":"YulIdentifier","src":"12569:9:34"},{"kind":"number","nativeSrc":"12580:2:34","nodeType":"YulLiteral","src":"12580:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12562:6:34","nodeType":"YulIdentifier","src":"12562:6:34"},"nativeSrc":"12562:21:34","nodeType":"YulFunctionCall","src":"12562:21:34"},"nativeSrc":"12562:21:34","nodeType":"YulExpressionStatement","src":"12562:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12603:9:34","nodeType":"YulIdentifier","src":"12603:9:34"},{"kind":"number","nativeSrc":"12614:2:34","nodeType":"YulLiteral","src":"12614:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12599:3:34","nodeType":"YulIdentifier","src":"12599:3:34"},"nativeSrc":"12599:18:34","nodeType":"YulFunctionCall","src":"12599:18:34"},{"kind":"number","nativeSrc":"12619:2:34","nodeType":"YulLiteral","src":"12619:2:34","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"12592:6:34","nodeType":"YulIdentifier","src":"12592:6:34"},"nativeSrc":"12592:30:34","nodeType":"YulFunctionCall","src":"12592:30:34"},"nativeSrc":"12592:30:34","nodeType":"YulExpressionStatement","src":"12592:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12642:9:34","nodeType":"YulIdentifier","src":"12642:9:34"},{"kind":"number","nativeSrc":"12653:2:34","nodeType":"YulLiteral","src":"12653:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12638:3:34","nodeType":"YulIdentifier","src":"12638:3:34"},"nativeSrc":"12638:18:34","nodeType":"YulFunctionCall","src":"12638:18:34"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nativeSrc":"12658:34:34","nodeType":"YulLiteral","src":"12658:34:34","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nativeSrc":"12631:6:34","nodeType":"YulIdentifier","src":"12631:6:34"},"nativeSrc":"12631:62:34","nodeType":"YulFunctionCall","src":"12631:62:34"},"nativeSrc":"12631:62:34","nodeType":"YulExpressionStatement","src":"12631:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12713:9:34","nodeType":"YulIdentifier","src":"12713:9:34"},{"kind":"number","nativeSrc":"12724:2:34","nodeType":"YulLiteral","src":"12724:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12709:3:34","nodeType":"YulIdentifier","src":"12709:3:34"},"nativeSrc":"12709:18:34","nodeType":"YulFunctionCall","src":"12709:18:34"},{"hexValue":"6e6577206f776e6572","kind":"string","nativeSrc":"12729:11:34","nodeType":"YulLiteral","src":"12729:11:34","type":"","value":"new owner"}],"functionName":{"name":"mstore","nativeSrc":"12702:6:34","nodeType":"YulIdentifier","src":"12702:6:34"},"nativeSrc":"12702:39:34","nodeType":"YulFunctionCall","src":"12702:39:34"},"nativeSrc":"12702:39:34","nodeType":"YulExpressionStatement","src":"12702:39:34"},{"nativeSrc":"12750:27:34","nodeType":"YulAssignment","src":"12750:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"12762:9:34","nodeType":"YulIdentifier","src":"12762:9:34"},{"kind":"number","nativeSrc":"12773:3:34","nodeType":"YulLiteral","src":"12773:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12758:3:34","nodeType":"YulIdentifier","src":"12758:3:34"},"nativeSrc":"12758:19:34","nodeType":"YulFunctionCall","src":"12758:19:34"},"variableNames":[{"name":"tail","nativeSrc":"12750:4:34","nodeType":"YulIdentifier","src":"12750:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12378:405:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12529:9:34","nodeType":"YulTypedName","src":"12529:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12543:4:34","nodeType":"YulTypedName","src":"12543:4:34","type":""}],"src":"12378:405:34"},{"body":{"nativeSrc":"13001:338:34","nodeType":"YulBlock","src":"13001:338:34","statements":[{"nativeSrc":"13011:27:34","nodeType":"YulAssignment","src":"13011:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"13023:9:34","nodeType":"YulIdentifier","src":"13023:9:34"},{"kind":"number","nativeSrc":"13034:3:34","nodeType":"YulLiteral","src":"13034:3:34","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"13019:3:34","nodeType":"YulIdentifier","src":"13019:3:34"},"nativeSrc":"13019:19:34","nodeType":"YulFunctionCall","src":"13019:19:34"},"variableNames":[{"name":"tail","nativeSrc":"13011:4:34","nodeType":"YulIdentifier","src":"13011:4:34"}]},{"nativeSrc":"13047:52:34","nodeType":"YulVariableDeclaration","src":"13047:52:34","value":{"kind":"number","nativeSrc":"13057:42:34","nodeType":"YulLiteral","src":"13057:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"13051:2:34","nodeType":"YulTypedName","src":"13051:2:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13115:9:34","nodeType":"YulIdentifier","src":"13115:9:34"},{"arguments":[{"name":"value0","nativeSrc":"13130:6:34","nodeType":"YulIdentifier","src":"13130:6:34"},{"name":"_1","nativeSrc":"13138:2:34","nodeType":"YulIdentifier","src":"13138:2:34"}],"functionName":{"name":"and","nativeSrc":"13126:3:34","nodeType":"YulIdentifier","src":"13126:3:34"},"nativeSrc":"13126:15:34","nodeType":"YulFunctionCall","src":"13126:15:34"}],"functionName":{"name":"mstore","nativeSrc":"13108:6:34","nodeType":"YulIdentifier","src":"13108:6:34"},"nativeSrc":"13108:34:34","nodeType":"YulFunctionCall","src":"13108:34:34"},"nativeSrc":"13108:34:34","nodeType":"YulExpressionStatement","src":"13108:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13162:9:34","nodeType":"YulIdentifier","src":"13162:9:34"},{"kind":"number","nativeSrc":"13173:2:34","nodeType":"YulLiteral","src":"13173:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13158:3:34","nodeType":"YulIdentifier","src":"13158:3:34"},"nativeSrc":"13158:18:34","nodeType":"YulFunctionCall","src":"13158:18:34"},{"arguments":[{"name":"value1","nativeSrc":"13182:6:34","nodeType":"YulIdentifier","src":"13182:6:34"},{"name":"_1","nativeSrc":"13190:2:34","nodeType":"YulIdentifier","src":"13190:2:34"}],"functionName":{"name":"and","nativeSrc":"13178:3:34","nodeType":"YulIdentifier","src":"13178:3:34"},"nativeSrc":"13178:15:34","nodeType":"YulFunctionCall","src":"13178:15:34"}],"functionName":{"name":"mstore","nativeSrc":"13151:6:34","nodeType":"YulIdentifier","src":"13151:6:34"},"nativeSrc":"13151:43:34","nodeType":"YulFunctionCall","src":"13151:43:34"},"nativeSrc":"13151:43:34","nodeType":"YulExpressionStatement","src":"13151:43:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13214:9:34","nodeType":"YulIdentifier","src":"13214:9:34"},{"kind":"number","nativeSrc":"13225:2:34","nodeType":"YulLiteral","src":"13225:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13210:3:34","nodeType":"YulIdentifier","src":"13210:3:34"},"nativeSrc":"13210:18:34","nodeType":"YulFunctionCall","src":"13210:18:34"},{"name":"value2","nativeSrc":"13230:6:34","nodeType":"YulIdentifier","src":"13230:6:34"}],"functionName":{"name":"mstore","nativeSrc":"13203:6:34","nodeType":"YulIdentifier","src":"13203:6:34"},"nativeSrc":"13203:34:34","nodeType":"YulFunctionCall","src":"13203:34:34"},"nativeSrc":"13203:34:34","nodeType":"YulExpressionStatement","src":"13203:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13257:9:34","nodeType":"YulIdentifier","src":"13257:9:34"},{"kind":"number","nativeSrc":"13268:2:34","nodeType":"YulLiteral","src":"13268:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13253:3:34","nodeType":"YulIdentifier","src":"13253:3:34"},"nativeSrc":"13253:18:34","nodeType":"YulFunctionCall","src":"13253:18:34"},{"name":"value3","nativeSrc":"13273:6:34","nodeType":"YulIdentifier","src":"13273:6:34"}],"functionName":{"name":"mstore","nativeSrc":"13246:6:34","nodeType":"YulIdentifier","src":"13246:6:34"},"nativeSrc":"13246:34:34","nodeType":"YulFunctionCall","src":"13246:34:34"},"nativeSrc":"13246:34:34","nodeType":"YulExpressionStatement","src":"13246:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13300:9:34","nodeType":"YulIdentifier","src":"13300:9:34"},{"kind":"number","nativeSrc":"13311:3:34","nodeType":"YulLiteral","src":"13311:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13296:3:34","nodeType":"YulIdentifier","src":"13296:3:34"},"nativeSrc":"13296:19:34","nodeType":"YulFunctionCall","src":"13296:19:34"},{"arguments":[{"name":"value4","nativeSrc":"13321:6:34","nodeType":"YulIdentifier","src":"13321:6:34"},{"name":"_1","nativeSrc":"13329:2:34","nodeType":"YulIdentifier","src":"13329:2:34"}],"functionName":{"name":"and","nativeSrc":"13317:3:34","nodeType":"YulIdentifier","src":"13317:3:34"},"nativeSrc":"13317:15:34","nodeType":"YulFunctionCall","src":"13317:15:34"}],"functionName":{"name":"mstore","nativeSrc":"13289:6:34","nodeType":"YulIdentifier","src":"13289:6:34"},"nativeSrc":"13289:44:34","nodeType":"YulFunctionCall","src":"13289:44:34"},"nativeSrc":"13289:44:34","nodeType":"YulExpressionStatement","src":"13289:44:34"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_address__to_t_address_t_address_t_uint256_t_uint256_t_address__fromStack_reversed","nativeSrc":"12788:551:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12938:9:34","nodeType":"YulTypedName","src":"12938:9:34","type":""},{"name":"value4","nativeSrc":"12949:6:34","nodeType":"YulTypedName","src":"12949:6:34","type":""},{"name":"value3","nativeSrc":"12957:6:34","nodeType":"YulTypedName","src":"12957:6:34","type":""},{"name":"value2","nativeSrc":"12965:6:34","nodeType":"YulTypedName","src":"12965:6:34","type":""},{"name":"value1","nativeSrc":"12973:6:34","nodeType":"YulTypedName","src":"12973:6:34","type":""},{"name":"value0","nativeSrc":"12981:6:34","nodeType":"YulTypedName","src":"12981:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12992:4:34","nodeType":"YulTypedName","src":"12992:4:34","type":""}],"src":"12788:551:34"},{"body":{"nativeSrc":"13481:150:34","nodeType":"YulBlock","src":"13481:150:34","statements":[{"nativeSrc":"13491:27:34","nodeType":"YulVariableDeclaration","src":"13491:27:34","value":{"arguments":[{"name":"value0","nativeSrc":"13511:6:34","nodeType":"YulIdentifier","src":"13511:6:34"}],"functionName":{"name":"mload","nativeSrc":"13505:5:34","nodeType":"YulIdentifier","src":"13505:5:34"},"nativeSrc":"13505:13:34","nodeType":"YulFunctionCall","src":"13505:13:34"},"variables":[{"name":"length","nativeSrc":"13495:6:34","nodeType":"YulTypedName","src":"13495:6:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"13566:6:34","nodeType":"YulIdentifier","src":"13566:6:34"},{"kind":"number","nativeSrc":"13574:4:34","nodeType":"YulLiteral","src":"13574:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13562:3:34","nodeType":"YulIdentifier","src":"13562:3:34"},"nativeSrc":"13562:17:34","nodeType":"YulFunctionCall","src":"13562:17:34"},{"name":"pos","nativeSrc":"13581:3:34","nodeType":"YulIdentifier","src":"13581:3:34"},{"name":"length","nativeSrc":"13586:6:34","nodeType":"YulIdentifier","src":"13586:6:34"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13527:34:34","nodeType":"YulIdentifier","src":"13527:34:34"},"nativeSrc":"13527:66:34","nodeType":"YulFunctionCall","src":"13527:66:34"},"nativeSrc":"13527:66:34","nodeType":"YulExpressionStatement","src":"13527:66:34"},{"nativeSrc":"13602:23:34","nodeType":"YulAssignment","src":"13602:23:34","value":{"arguments":[{"name":"pos","nativeSrc":"13613:3:34","nodeType":"YulIdentifier","src":"13613:3:34"},{"name":"length","nativeSrc":"13618:6:34","nodeType":"YulIdentifier","src":"13618:6:34"}],"functionName":{"name":"add","nativeSrc":"13609:3:34","nodeType":"YulIdentifier","src":"13609:3:34"},"nativeSrc":"13609:16:34","nodeType":"YulFunctionCall","src":"13609:16:34"},"variableNames":[{"name":"end","nativeSrc":"13602:3:34","nodeType":"YulIdentifier","src":"13602:3:34"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"13344:287:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13457:3:34","nodeType":"YulTypedName","src":"13457:3:34","type":""},{"name":"value0","nativeSrc":"13462:6:34","nodeType":"YulTypedName","src":"13462:6:34","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13473:3:34","nodeType":"YulTypedName","src":"13473:3:34","type":""}],"src":"13344:287:34"},{"body":{"nativeSrc":"13765:198:34","nodeType":"YulBlock","src":"13765:198:34","statements":[{"nativeSrc":"13775:26:34","nodeType":"YulAssignment","src":"13775:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"13787:9:34","nodeType":"YulIdentifier","src":"13787:9:34"},{"kind":"number","nativeSrc":"13798:2:34","nodeType":"YulLiteral","src":"13798:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13783:3:34","nodeType":"YulIdentifier","src":"13783:3:34"},"nativeSrc":"13783:18:34","nodeType":"YulFunctionCall","src":"13783:18:34"},"variableNames":[{"name":"tail","nativeSrc":"13775:4:34","nodeType":"YulIdentifier","src":"13775:4:34"}]},{"nativeSrc":"13810:52:34","nodeType":"YulVariableDeclaration","src":"13810:52:34","value":{"kind":"number","nativeSrc":"13820:42:34","nodeType":"YulLiteral","src":"13820:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"13814:2:34","nodeType":"YulTypedName","src":"13814:2:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13878:9:34","nodeType":"YulIdentifier","src":"13878:9:34"},{"arguments":[{"name":"value0","nativeSrc":"13893:6:34","nodeType":"YulIdentifier","src":"13893:6:34"},{"name":"_1","nativeSrc":"13901:2:34","nodeType":"YulIdentifier","src":"13901:2:34"}],"functionName":{"name":"and","nativeSrc":"13889:3:34","nodeType":"YulIdentifier","src":"13889:3:34"},"nativeSrc":"13889:15:34","nodeType":"YulFunctionCall","src":"13889:15:34"}],"functionName":{"name":"mstore","nativeSrc":"13871:6:34","nodeType":"YulIdentifier","src":"13871:6:34"},"nativeSrc":"13871:34:34","nodeType":"YulFunctionCall","src":"13871:34:34"},"nativeSrc":"13871:34:34","nodeType":"YulExpressionStatement","src":"13871:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13925:9:34","nodeType":"YulIdentifier","src":"13925:9:34"},{"kind":"number","nativeSrc":"13936:2:34","nodeType":"YulLiteral","src":"13936:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13921:3:34","nodeType":"YulIdentifier","src":"13921:3:34"},"nativeSrc":"13921:18:34","nodeType":"YulFunctionCall","src":"13921:18:34"},{"arguments":[{"name":"value1","nativeSrc":"13945:6:34","nodeType":"YulIdentifier","src":"13945:6:34"},{"name":"_1","nativeSrc":"13953:2:34","nodeType":"YulIdentifier","src":"13953:2:34"}],"functionName":{"name":"and","nativeSrc":"13941:3:34","nodeType":"YulIdentifier","src":"13941:3:34"},"nativeSrc":"13941:15:34","nodeType":"YulFunctionCall","src":"13941:15:34"}],"functionName":{"name":"mstore","nativeSrc":"13914:6:34","nodeType":"YulIdentifier","src":"13914:6:34"},"nativeSrc":"13914:43:34","nodeType":"YulFunctionCall","src":"13914:43:34"},"nativeSrc":"13914:43:34","nodeType":"YulExpressionStatement","src":"13914:43:34"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"13636:327:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13726:9:34","nodeType":"YulTypedName","src":"13726:9:34","type":""},{"name":"value1","nativeSrc":"13737:6:34","nodeType":"YulTypedName","src":"13737:6:34","type":""},{"name":"value0","nativeSrc":"13745:6:34","nodeType":"YulTypedName","src":"13745:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13756:4:34","nodeType":"YulTypedName","src":"13756:4:34","type":""}],"src":"13636:327:34"},{"body":{"nativeSrc":"14261:497:34","nodeType":"YulBlock","src":"14261:497:34","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14278:3:34","nodeType":"YulIdentifier","src":"14278:3:34"},{"hexValue":"4f726465722875696e74323536206e6f6e63652c75696e743235362065787069","kind":"string","nativeSrc":"14283:34:34","nodeType":"YulLiteral","src":"14283:34:34","type":"","value":"Order(uint256 nonce,uint256 expi"}],"functionName":{"name":"mstore","nativeSrc":"14271:6:34","nodeType":"YulIdentifier","src":"14271:6:34"},"nativeSrc":"14271:47:34","nodeType":"YulFunctionCall","src":"14271:47:34"},"nativeSrc":"14271:47:34","nodeType":"YulExpressionStatement","src":"14271:47:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14338:3:34","nodeType":"YulIdentifier","src":"14338:3:34"},{"kind":"number","nativeSrc":"14343:2:34","nodeType":"YulLiteral","src":"14343:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14334:3:34","nodeType":"YulIdentifier","src":"14334:3:34"},"nativeSrc":"14334:12:34","nodeType":"YulFunctionCall","src":"14334:12:34"},{"hexValue":"72792c75696e743235362070726f746f636f6c4665652c506172747920736967","kind":"string","nativeSrc":"14348:34:34","nodeType":"YulLiteral","src":"14348:34:34","type":"","value":"ry,uint256 protocolFee,Party sig"}],"functionName":{"name":"mstore","nativeSrc":"14327:6:34","nodeType":"YulIdentifier","src":"14327:6:34"},"nativeSrc":"14327:56:34","nodeType":"YulFunctionCall","src":"14327:56:34"},"nativeSrc":"14327:56:34","nodeType":"YulExpressionStatement","src":"14327:56:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14403:3:34","nodeType":"YulIdentifier","src":"14403:3:34"},{"kind":"number","nativeSrc":"14408:2:34","nodeType":"YulLiteral","src":"14408:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14399:3:34","nodeType":"YulIdentifier","src":"14399:3:34"},"nativeSrc":"14399:12:34","nodeType":"YulFunctionCall","src":"14399:12:34"},{"hexValue":"6e65722c50617274792073656e6465722c6164647265737320616666696c6961","kind":"string","nativeSrc":"14413:34:34","nodeType":"YulLiteral","src":"14413:34:34","type":"","value":"ner,Party sender,address affilia"}],"functionName":{"name":"mstore","nativeSrc":"14392:6:34","nodeType":"YulIdentifier","src":"14392:6:34"},"nativeSrc":"14392:56:34","nodeType":"YulFunctionCall","src":"14392:56:34"},"nativeSrc":"14392:56:34","nodeType":"YulExpressionStatement","src":"14392:56:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14468:3:34","nodeType":"YulIdentifier","src":"14468:3:34"},{"kind":"number","nativeSrc":"14473:2:34","nodeType":"YulLiteral","src":"14473:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14464:3:34","nodeType":"YulIdentifier","src":"14464:3:34"},"nativeSrc":"14464:12:34","nodeType":"YulFunctionCall","src":"14464:12:34"},{"hexValue":"746557616c6c65742c75696e7432353620616666696c69617465416d6f756e74","kind":"string","nativeSrc":"14478:34:34","nodeType":"YulLiteral","src":"14478:34:34","type":"","value":"teWallet,uint256 affiliateAmount"}],"functionName":{"name":"mstore","nativeSrc":"14457:6:34","nodeType":"YulIdentifier","src":"14457:6:34"},"nativeSrc":"14457:56:34","nodeType":"YulFunctionCall","src":"14457:56:34"},"nativeSrc":"14457:56:34","nodeType":"YulExpressionStatement","src":"14457:56:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14533:3:34","nodeType":"YulIdentifier","src":"14533:3:34"},{"kind":"number","nativeSrc":"14538:3:34","nodeType":"YulLiteral","src":"14538:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"14529:3:34","nodeType":"YulIdentifier","src":"14529:3:34"},"nativeSrc":"14529:13:34","nodeType":"YulFunctionCall","src":"14529:13:34"},{"hexValue":"29","kind":"string","nativeSrc":"14544:3:34","nodeType":"YulLiteral","src":"14544:3:34","type":"","value":")"}],"functionName":{"name":"mstore","nativeSrc":"14522:6:34","nodeType":"YulIdentifier","src":"14522:6:34"},"nativeSrc":"14522:26:34","nodeType":"YulFunctionCall","src":"14522:26:34"},"nativeSrc":"14522:26:34","nodeType":"YulExpressionStatement","src":"14522:26:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14568:3:34","nodeType":"YulIdentifier","src":"14568:3:34"},{"kind":"number","nativeSrc":"14573:3:34","nodeType":"YulLiteral","src":"14573:3:34","type":"","value":"129"}],"functionName":{"name":"add","nativeSrc":"14564:3:34","nodeType":"YulIdentifier","src":"14564:3:34"},"nativeSrc":"14564:13:34","nodeType":"YulFunctionCall","src":"14564:13:34"},{"hexValue":"506172747928616464726573732077616c6c65742c6164647265737320746f6b","kind":"string","nativeSrc":"14579:34:34","nodeType":"YulLiteral","src":"14579:34:34","type":"","value":"Party(address wallet,address tok"}],"functionName":{"name":"mstore","nativeSrc":"14557:6:34","nodeType":"YulIdentifier","src":"14557:6:34"},"nativeSrc":"14557:57:34","nodeType":"YulFunctionCall","src":"14557:57:34"},"nativeSrc":"14557:57:34","nodeType":"YulExpressionStatement","src":"14557:57:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14634:3:34","nodeType":"YulIdentifier","src":"14634:3:34"},{"kind":"number","nativeSrc":"14639:3:34","nodeType":"YulLiteral","src":"14639:3:34","type":"","value":"161"}],"functionName":{"name":"add","nativeSrc":"14630:3:34","nodeType":"YulIdentifier","src":"14630:3:34"},"nativeSrc":"14630:13:34","nodeType":"YulFunctionCall","src":"14630:13:34"},{"hexValue":"656e2c627974657334206b696e642c75696e743235362069642c75696e743235","kind":"string","nativeSrc":"14645:34:34","nodeType":"YulLiteral","src":"14645:34:34","type":"","value":"en,bytes4 kind,uint256 id,uint25"}],"functionName":{"name":"mstore","nativeSrc":"14623:6:34","nodeType":"YulIdentifier","src":"14623:6:34"},"nativeSrc":"14623:57:34","nodeType":"YulFunctionCall","src":"14623:57:34"},"nativeSrc":"14623:57:34","nodeType":"YulExpressionStatement","src":"14623:57:34"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14700:3:34","nodeType":"YulIdentifier","src":"14700:3:34"},{"kind":"number","nativeSrc":"14705:3:34","nodeType":"YulLiteral","src":"14705:3:34","type":"","value":"193"}],"functionName":{"name":"add","nativeSrc":"14696:3:34","nodeType":"YulIdentifier","src":"14696:3:34"},"nativeSrc":"14696:13:34","nodeType":"YulFunctionCall","src":"14696:13:34"},{"hexValue":"3620616d6f756e7429","kind":"string","nativeSrc":"14711:11:34","nodeType":"YulLiteral","src":"14711:11:34","type":"","value":"6 amount)"}],"functionName":{"name":"mstore","nativeSrc":"14689:6:34","nodeType":"YulIdentifier","src":"14689:6:34"},"nativeSrc":"14689:34:34","nodeType":"YulFunctionCall","src":"14689:34:34"},"nativeSrc":"14689:34:34","nodeType":"YulExpressionStatement","src":"14689:34:34"},{"nativeSrc":"14732:20:34","nodeType":"YulAssignment","src":"14732:20:34","value":{"arguments":[{"name":"pos","nativeSrc":"14743:3:34","nodeType":"YulIdentifier","src":"14743:3:34"},{"kind":"number","nativeSrc":"14748:3:34","nodeType":"YulLiteral","src":"14748:3:34","type":"","value":"202"}],"functionName":{"name":"add","nativeSrc":"14739:3:34","nodeType":"YulIdentifier","src":"14739:3:34"},"nativeSrc":"14739:13:34","nodeType":"YulFunctionCall","src":"14739:13:34"},"variableNames":[{"name":"end","nativeSrc":"14732:3:34","nodeType":"YulIdentifier","src":"14732:3:34"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_2acab4a02365f399065e9ce76efb2e022c133c96451f5e343829a0e5cd04bfa7_t_stringliteral_224ed05dccb4f5c1e21e6e85fb29dd6c83074e33458fdfefb184d03fe8742f4f__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"13968:790:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14245:3:34","nodeType":"YulTypedName","src":"14245:3:34","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14253:3:34","nodeType":"YulTypedName","src":"14253:3:34","type":""}],"src":"13968:790:34"},{"body":{"nativeSrc":"14940:146:34","nodeType":"YulBlock","src":"14940:146:34","statements":[{"nativeSrc":"14950:27:34","nodeType":"YulAssignment","src":"14950:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"14962:9:34","nodeType":"YulIdentifier","src":"14962:9:34"},{"kind":"number","nativeSrc":"14973:3:34","nodeType":"YulLiteral","src":"14973:3:34","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"14958:3:34","nodeType":"YulIdentifier","src":"14958:3:34"},"nativeSrc":"14958:19:34","nodeType":"YulFunctionCall","src":"14958:19:34"},"variableNames":[{"name":"tail","nativeSrc":"14950:4:34","nodeType":"YulIdentifier","src":"14950:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14993:9:34","nodeType":"YulIdentifier","src":"14993:9:34"},{"name":"value0","nativeSrc":"15004:6:34","nodeType":"YulIdentifier","src":"15004:6:34"}],"functionName":{"name":"mstore","nativeSrc":"14986:6:34","nodeType":"YulIdentifier","src":"14986:6:34"},"nativeSrc":"14986:25:34","nodeType":"YulFunctionCall","src":"14986:25:34"},"nativeSrc":"14986:25:34","nodeType":"YulExpressionStatement","src":"14986:25:34"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"15053:6:34","nodeType":"YulIdentifier","src":"15053:6:34"},{"arguments":[{"name":"headStart","nativeSrc":"15065:9:34","nodeType":"YulIdentifier","src":"15065:9:34"},{"kind":"number","nativeSrc":"15076:2:34","nodeType":"YulLiteral","src":"15076:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15061:3:34","nodeType":"YulIdentifier","src":"15061:3:34"},"nativeSrc":"15061:18:34","nodeType":"YulFunctionCall","src":"15061:18:34"}],"functionName":{"name":"abi_encode_struct_Party_calldata","nativeSrc":"15020:32:34","nodeType":"YulIdentifier","src":"15020:32:34"},"nativeSrc":"15020:60:34","nodeType":"YulFunctionCall","src":"15020:60:34"},"nativeSrc":"15020:60:34","nodeType":"YulExpressionStatement","src":"15020:60:34"}]},"name":"abi_encode_tuple_t_bytes32_t_struct$_Party_$6436_calldata_ptr__to_t_bytes32_t_struct$_Party_$6436_memory_ptr__fromStack_reversed","nativeSrc":"14763:323:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14901:9:34","nodeType":"YulTypedName","src":"14901:9:34","type":""},{"name":"value1","nativeSrc":"14912:6:34","nodeType":"YulTypedName","src":"14912:6:34","type":""},{"name":"value0","nativeSrc":"14920:6:34","nodeType":"YulTypedName","src":"14920:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14931:4:34","nodeType":"YulTypedName","src":"14931:4:34","type":""}],"src":"14763:323:34"},{"body":{"nativeSrc":"15388:431:34","nodeType":"YulBlock","src":"15388:431:34","statements":[{"nativeSrc":"15398:27:34","nodeType":"YulAssignment","src":"15398:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"15410:9:34","nodeType":"YulIdentifier","src":"15410:9:34"},{"kind":"number","nativeSrc":"15421:3:34","nodeType":"YulLiteral","src":"15421:3:34","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"15406:3:34","nodeType":"YulIdentifier","src":"15406:3:34"},"nativeSrc":"15406:19:34","nodeType":"YulFunctionCall","src":"15406:19:34"},"variableNames":[{"name":"tail","nativeSrc":"15398:4:34","nodeType":"YulIdentifier","src":"15398:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"15441:9:34","nodeType":"YulIdentifier","src":"15441:9:34"},{"name":"value0","nativeSrc":"15452:6:34","nodeType":"YulIdentifier","src":"15452:6:34"}],"functionName":{"name":"mstore","nativeSrc":"15434:6:34","nodeType":"YulIdentifier","src":"15434:6:34"},"nativeSrc":"15434:25:34","nodeType":"YulFunctionCall","src":"15434:25:34"},"nativeSrc":"15434:25:34","nodeType":"YulExpressionStatement","src":"15434:25:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15479:9:34","nodeType":"YulIdentifier","src":"15479:9:34"},{"kind":"number","nativeSrc":"15490:2:34","nodeType":"YulLiteral","src":"15490:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15475:3:34","nodeType":"YulIdentifier","src":"15475:3:34"},"nativeSrc":"15475:18:34","nodeType":"YulFunctionCall","src":"15475:18:34"},{"name":"value1","nativeSrc":"15495:6:34","nodeType":"YulIdentifier","src":"15495:6:34"}],"functionName":{"name":"mstore","nativeSrc":"15468:6:34","nodeType":"YulIdentifier","src":"15468:6:34"},"nativeSrc":"15468:34:34","nodeType":"YulFunctionCall","src":"15468:34:34"},"nativeSrc":"15468:34:34","nodeType":"YulExpressionStatement","src":"15468:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15522:9:34","nodeType":"YulIdentifier","src":"15522:9:34"},{"kind":"number","nativeSrc":"15533:2:34","nodeType":"YulLiteral","src":"15533:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"15518:3:34","nodeType":"YulIdentifier","src":"15518:3:34"},"nativeSrc":"15518:18:34","nodeType":"YulFunctionCall","src":"15518:18:34"},{"name":"value2","nativeSrc":"15538:6:34","nodeType":"YulIdentifier","src":"15538:6:34"}],"functionName":{"name":"mstore","nativeSrc":"15511:6:34","nodeType":"YulIdentifier","src":"15511:6:34"},"nativeSrc":"15511:34:34","nodeType":"YulFunctionCall","src":"15511:34:34"},"nativeSrc":"15511:34:34","nodeType":"YulExpressionStatement","src":"15511:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15565:9:34","nodeType":"YulIdentifier","src":"15565:9:34"},{"kind":"number","nativeSrc":"15576:2:34","nodeType":"YulLiteral","src":"15576:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15561:3:34","nodeType":"YulIdentifier","src":"15561:3:34"},"nativeSrc":"15561:18:34","nodeType":"YulFunctionCall","src":"15561:18:34"},{"name":"value3","nativeSrc":"15581:6:34","nodeType":"YulIdentifier","src":"15581:6:34"}],"functionName":{"name":"mstore","nativeSrc":"15554:6:34","nodeType":"YulIdentifier","src":"15554:6:34"},"nativeSrc":"15554:34:34","nodeType":"YulFunctionCall","src":"15554:34:34"},"nativeSrc":"15554:34:34","nodeType":"YulExpressionStatement","src":"15554:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15608:9:34","nodeType":"YulIdentifier","src":"15608:9:34"},{"kind":"number","nativeSrc":"15619:3:34","nodeType":"YulLiteral","src":"15619:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15604:3:34","nodeType":"YulIdentifier","src":"15604:3:34"},"nativeSrc":"15604:19:34","nodeType":"YulFunctionCall","src":"15604:19:34"},{"name":"value4","nativeSrc":"15625:6:34","nodeType":"YulIdentifier","src":"15625:6:34"}],"functionName":{"name":"mstore","nativeSrc":"15597:6:34","nodeType":"YulIdentifier","src":"15597:6:34"},"nativeSrc":"15597:35:34","nodeType":"YulFunctionCall","src":"15597:35:34"},"nativeSrc":"15597:35:34","nodeType":"YulExpressionStatement","src":"15597:35:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15652:9:34","nodeType":"YulIdentifier","src":"15652:9:34"},{"kind":"number","nativeSrc":"15663:3:34","nodeType":"YulLiteral","src":"15663:3:34","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"15648:3:34","nodeType":"YulIdentifier","src":"15648:3:34"},"nativeSrc":"15648:19:34","nodeType":"YulFunctionCall","src":"15648:19:34"},{"name":"value5","nativeSrc":"15669:6:34","nodeType":"YulIdentifier","src":"15669:6:34"}],"functionName":{"name":"mstore","nativeSrc":"15641:6:34","nodeType":"YulIdentifier","src":"15641:6:34"},"nativeSrc":"15641:35:34","nodeType":"YulFunctionCall","src":"15641:35:34"},"nativeSrc":"15641:35:34","nodeType":"YulExpressionStatement","src":"15641:35:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15696:9:34","nodeType":"YulIdentifier","src":"15696:9:34"},{"kind":"number","nativeSrc":"15707:3:34","nodeType":"YulLiteral","src":"15707:3:34","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"15692:3:34","nodeType":"YulIdentifier","src":"15692:3:34"},"nativeSrc":"15692:19:34","nodeType":"YulFunctionCall","src":"15692:19:34"},{"arguments":[{"name":"value6","nativeSrc":"15717:6:34","nodeType":"YulIdentifier","src":"15717:6:34"},{"kind":"number","nativeSrc":"15725:42:34","nodeType":"YulLiteral","src":"15725:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"15713:3:34","nodeType":"YulIdentifier","src":"15713:3:34"},"nativeSrc":"15713:55:34","nodeType":"YulFunctionCall","src":"15713:55:34"}],"functionName":{"name":"mstore","nativeSrc":"15685:6:34","nodeType":"YulIdentifier","src":"15685:6:34"},"nativeSrc":"15685:84:34","nodeType":"YulFunctionCall","src":"15685:84:34"},"nativeSrc":"15685:84:34","nodeType":"YulExpressionStatement","src":"15685:84:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15789:9:34","nodeType":"YulIdentifier","src":"15789:9:34"},{"kind":"number","nativeSrc":"15800:3:34","nodeType":"YulLiteral","src":"15800:3:34","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"15785:3:34","nodeType":"YulIdentifier","src":"15785:3:34"},"nativeSrc":"15785:19:34","nodeType":"YulFunctionCall","src":"15785:19:34"},{"name":"value7","nativeSrc":"15806:6:34","nodeType":"YulIdentifier","src":"15806:6:34"}],"functionName":{"name":"mstore","nativeSrc":"15778:6:34","nodeType":"YulIdentifier","src":"15778:6:34"},"nativeSrc":"15778:35:34","nodeType":"YulFunctionCall","src":"15778:35:34"},"nativeSrc":"15778:35:34","nodeType":"YulExpressionStatement","src":"15778:35:34"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes32_t_address_t_uint256__to_t_bytes32_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes32_t_address_t_uint256__fromStack_reversed","nativeSrc":"15091:728:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15301:9:34","nodeType":"YulTypedName","src":"15301:9:34","type":""},{"name":"value7","nativeSrc":"15312:6:34","nodeType":"YulTypedName","src":"15312:6:34","type":""},{"name":"value6","nativeSrc":"15320:6:34","nodeType":"YulTypedName","src":"15320:6:34","type":""},{"name":"value5","nativeSrc":"15328:6:34","nodeType":"YulTypedName","src":"15328:6:34","type":""},{"name":"value4","nativeSrc":"15336:6:34","nodeType":"YulTypedName","src":"15336:6:34","type":""},{"name":"value3","nativeSrc":"15344:6:34","nodeType":"YulTypedName","src":"15344:6:34","type":""},{"name":"value2","nativeSrc":"15352:6:34","nodeType":"YulTypedName","src":"15352:6:34","type":""},{"name":"value1","nativeSrc":"15360:6:34","nodeType":"YulTypedName","src":"15360:6:34","type":""},{"name":"value0","nativeSrc":"15368:6:34","nodeType":"YulTypedName","src":"15368:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"15379:4:34","nodeType":"YulTypedName","src":"15379:4:34","type":""}],"src":"15091:728:34"},{"body":{"nativeSrc":"15856:152:34","nodeType":"YulBlock","src":"15856:152:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15873:1:34","nodeType":"YulLiteral","src":"15873:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"15876:77:34","nodeType":"YulLiteral","src":"15876:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"15866:6:34","nodeType":"YulIdentifier","src":"15866:6:34"},"nativeSrc":"15866:88:34","nodeType":"YulFunctionCall","src":"15866:88:34"},"nativeSrc":"15866:88:34","nodeType":"YulExpressionStatement","src":"15866:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15970:1:34","nodeType":"YulLiteral","src":"15970:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"15973:4:34","nodeType":"YulLiteral","src":"15973:4:34","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"15963:6:34","nodeType":"YulIdentifier","src":"15963:6:34"},"nativeSrc":"15963:15:34","nodeType":"YulFunctionCall","src":"15963:15:34"},"nativeSrc":"15963:15:34","nodeType":"YulExpressionStatement","src":"15963:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15994:1:34","nodeType":"YulLiteral","src":"15994:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"15997:4:34","nodeType":"YulLiteral","src":"15997:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15987:6:34","nodeType":"YulIdentifier","src":"15987:6:34"},"nativeSrc":"15987:15:34","nodeType":"YulFunctionCall","src":"15987:15:34"},"nativeSrc":"15987:15:34","nodeType":"YulExpressionStatement","src":"15987:15:34"}]},"name":"panic_error_0x21","nativeSrc":"15824:184:34","nodeType":"YulFunctionDefinition","src":"15824:184:34"},{"body":{"nativeSrc":"16187:182:34","nodeType":"YulBlock","src":"16187:182:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16204:9:34","nodeType":"YulIdentifier","src":"16204:9:34"},{"kind":"number","nativeSrc":"16215:2:34","nodeType":"YulLiteral","src":"16215:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16197:6:34","nodeType":"YulIdentifier","src":"16197:6:34"},"nativeSrc":"16197:21:34","nodeType":"YulFunctionCall","src":"16197:21:34"},"nativeSrc":"16197:21:34","nodeType":"YulExpressionStatement","src":"16197:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16238:9:34","nodeType":"YulIdentifier","src":"16238:9:34"},{"kind":"number","nativeSrc":"16249:2:34","nodeType":"YulLiteral","src":"16249:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16234:3:34","nodeType":"YulIdentifier","src":"16234:3:34"},"nativeSrc":"16234:18:34","nodeType":"YulFunctionCall","src":"16234:18:34"},{"kind":"number","nativeSrc":"16254:2:34","nodeType":"YulLiteral","src":"16254:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"16227:6:34","nodeType":"YulIdentifier","src":"16227:6:34"},"nativeSrc":"16227:30:34","nodeType":"YulFunctionCall","src":"16227:30:34"},"nativeSrc":"16227:30:34","nodeType":"YulExpressionStatement","src":"16227:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16277:9:34","nodeType":"YulIdentifier","src":"16277:9:34"},{"kind":"number","nativeSrc":"16288:2:34","nodeType":"YulLiteral","src":"16288:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16273:3:34","nodeType":"YulIdentifier","src":"16273:3:34"},"nativeSrc":"16273:18:34","nodeType":"YulFunctionCall","src":"16273:18:34"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"16293:34:34","nodeType":"YulLiteral","src":"16293:34:34","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"16266:6:34","nodeType":"YulIdentifier","src":"16266:6:34"},"nativeSrc":"16266:62:34","nodeType":"YulFunctionCall","src":"16266:62:34"},"nativeSrc":"16266:62:34","nodeType":"YulExpressionStatement","src":"16266:62:34"},{"nativeSrc":"16337:26:34","nodeType":"YulAssignment","src":"16337:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"16349:9:34","nodeType":"YulIdentifier","src":"16349:9:34"},{"kind":"number","nativeSrc":"16360:2:34","nodeType":"YulLiteral","src":"16360:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16345:3:34","nodeType":"YulIdentifier","src":"16345:3:34"},"nativeSrc":"16345:18:34","nodeType":"YulFunctionCall","src":"16345:18:34"},"variableNames":[{"name":"tail","nativeSrc":"16337:4:34","nodeType":"YulIdentifier","src":"16337:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"16013:356:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16164:9:34","nodeType":"YulTypedName","src":"16164:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16178:4:34","nodeType":"YulTypedName","src":"16178:4:34","type":""}],"src":"16013:356:34"},{"body":{"nativeSrc":"16429:382:34","nodeType":"YulBlock","src":"16429:382:34","statements":[{"nativeSrc":"16439:22:34","nodeType":"YulAssignment","src":"16439:22:34","value":{"arguments":[{"kind":"number","nativeSrc":"16453:1:34","nodeType":"YulLiteral","src":"16453:1:34","type":"","value":"1"},{"name":"data","nativeSrc":"16456:4:34","nodeType":"YulIdentifier","src":"16456:4:34"}],"functionName":{"name":"shr","nativeSrc":"16449:3:34","nodeType":"YulIdentifier","src":"16449:3:34"},"nativeSrc":"16449:12:34","nodeType":"YulFunctionCall","src":"16449:12:34"},"variableNames":[{"name":"length","nativeSrc":"16439:6:34","nodeType":"YulIdentifier","src":"16439:6:34"}]},{"nativeSrc":"16470:38:34","nodeType":"YulVariableDeclaration","src":"16470:38:34","value":{"arguments":[{"name":"data","nativeSrc":"16500:4:34","nodeType":"YulIdentifier","src":"16500:4:34"},{"kind":"number","nativeSrc":"16506:1:34","nodeType":"YulLiteral","src":"16506:1:34","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"16496:3:34","nodeType":"YulIdentifier","src":"16496:3:34"},"nativeSrc":"16496:12:34","nodeType":"YulFunctionCall","src":"16496:12:34"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"16474:18:34","nodeType":"YulTypedName","src":"16474:18:34","type":""}]},{"body":{"nativeSrc":"16547:31:34","nodeType":"YulBlock","src":"16547:31:34","statements":[{"nativeSrc":"16549:27:34","nodeType":"YulAssignment","src":"16549:27:34","value":{"arguments":[{"name":"length","nativeSrc":"16563:6:34","nodeType":"YulIdentifier","src":"16563:6:34"},{"kind":"number","nativeSrc":"16571:4:34","nodeType":"YulLiteral","src":"16571:4:34","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"16559:3:34","nodeType":"YulIdentifier","src":"16559:3:34"},"nativeSrc":"16559:17:34","nodeType":"YulFunctionCall","src":"16559:17:34"},"variableNames":[{"name":"length","nativeSrc":"16549:6:34","nodeType":"YulIdentifier","src":"16549:6:34"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"16527:18:34","nodeType":"YulIdentifier","src":"16527:18:34"}],"functionName":{"name":"iszero","nativeSrc":"16520:6:34","nodeType":"YulIdentifier","src":"16520:6:34"},"nativeSrc":"16520:26:34","nodeType":"YulFunctionCall","src":"16520:26:34"},"nativeSrc":"16517:61:34","nodeType":"YulIf","src":"16517:61:34"},{"body":{"nativeSrc":"16637:168:34","nodeType":"YulBlock","src":"16637:168:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16658:1:34","nodeType":"YulLiteral","src":"16658:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"16661:77:34","nodeType":"YulLiteral","src":"16661:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"16651:6:34","nodeType":"YulIdentifier","src":"16651:6:34"},"nativeSrc":"16651:88:34","nodeType":"YulFunctionCall","src":"16651:88:34"},"nativeSrc":"16651:88:34","nodeType":"YulExpressionStatement","src":"16651:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16759:1:34","nodeType":"YulLiteral","src":"16759:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"16762:4:34","nodeType":"YulLiteral","src":"16762:4:34","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"16752:6:34","nodeType":"YulIdentifier","src":"16752:6:34"},"nativeSrc":"16752:15:34","nodeType":"YulFunctionCall","src":"16752:15:34"},"nativeSrc":"16752:15:34","nodeType":"YulExpressionStatement","src":"16752:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16787:1:34","nodeType":"YulLiteral","src":"16787:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"16790:4:34","nodeType":"YulLiteral","src":"16790:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"16780:6:34","nodeType":"YulIdentifier","src":"16780:6:34"},"nativeSrc":"16780:15:34","nodeType":"YulFunctionCall","src":"16780:15:34"},"nativeSrc":"16780:15:34","nodeType":"YulExpressionStatement","src":"16780:15:34"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"16593:18:34","nodeType":"YulIdentifier","src":"16593:18:34"},{"arguments":[{"name":"length","nativeSrc":"16616:6:34","nodeType":"YulIdentifier","src":"16616:6:34"},{"kind":"number","nativeSrc":"16624:2:34","nodeType":"YulLiteral","src":"16624:2:34","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"16613:2:34","nodeType":"YulIdentifier","src":"16613:2:34"},"nativeSrc":"16613:14:34","nodeType":"YulFunctionCall","src":"16613:14:34"}],"functionName":{"name":"eq","nativeSrc":"16590:2:34","nodeType":"YulIdentifier","src":"16590:2:34"},"nativeSrc":"16590:38:34","nodeType":"YulFunctionCall","src":"16590:38:34"},"nativeSrc":"16587:218:34","nodeType":"YulIf","src":"16587:218:34"}]},"name":"extract_byte_array_length","nativeSrc":"16374:437:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"16409:4:34","nodeType":"YulTypedName","src":"16409:4:34","type":""}],"returnVariables":[{"name":"length","nativeSrc":"16418:6:34","nodeType":"YulTypedName","src":"16418:6:34","type":""}],"src":"16374:437:34"},{"body":{"nativeSrc":"16963:142:34","nodeType":"YulBlock","src":"16963:142:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"16980:9:34","nodeType":"YulIdentifier","src":"16980:9:34"},{"name":"value0","nativeSrc":"16991:6:34","nodeType":"YulIdentifier","src":"16991:6:34"}],"functionName":{"name":"mstore","nativeSrc":"16973:6:34","nodeType":"YulIdentifier","src":"16973:6:34"},"nativeSrc":"16973:25:34","nodeType":"YulFunctionCall","src":"16973:25:34"},"nativeSrc":"16973:25:34","nodeType":"YulExpressionStatement","src":"16973:25:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17018:9:34","nodeType":"YulIdentifier","src":"17018:9:34"},{"kind":"number","nativeSrc":"17029:2:34","nodeType":"YulLiteral","src":"17029:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17014:3:34","nodeType":"YulIdentifier","src":"17014:3:34"},"nativeSrc":"17014:18:34","nodeType":"YulFunctionCall","src":"17014:18:34"},{"kind":"number","nativeSrc":"17034:2:34","nodeType":"YulLiteral","src":"17034:2:34","type":"","value":"64"}],"functionName":{"name":"mstore","nativeSrc":"17007:6:34","nodeType":"YulIdentifier","src":"17007:6:34"},"nativeSrc":"17007:30:34","nodeType":"YulFunctionCall","src":"17007:30:34"},"nativeSrc":"17007:30:34","nodeType":"YulExpressionStatement","src":"17007:30:34"},{"nativeSrc":"17046:53:34","nodeType":"YulAssignment","src":"17046:53:34","value":{"arguments":[{"name":"value1","nativeSrc":"17072:6:34","nodeType":"YulIdentifier","src":"17072:6:34"},{"arguments":[{"name":"headStart","nativeSrc":"17084:9:34","nodeType":"YulIdentifier","src":"17084:9:34"},{"kind":"number","nativeSrc":"17095:2:34","nodeType":"YulLiteral","src":"17095:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17080:3:34","nodeType":"YulIdentifier","src":"17080:3:34"},"nativeSrc":"17080:18:34","nodeType":"YulFunctionCall","src":"17080:18:34"}],"functionName":{"name":"abi_encode_string","nativeSrc":"17054:17:34","nodeType":"YulIdentifier","src":"17054:17:34"},"nativeSrc":"17054:45:34","nodeType":"YulFunctionCall","src":"17054:45:34"},"variableNames":[{"name":"tail","nativeSrc":"17046:4:34","nodeType":"YulIdentifier","src":"17046:4:34"}]}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"16816:289:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16924:9:34","nodeType":"YulTypedName","src":"16924:9:34","type":""},{"name":"value1","nativeSrc":"16935:6:34","nodeType":"YulTypedName","src":"16935:6:34","type":""},{"name":"value0","nativeSrc":"16943:6:34","nodeType":"YulTypedName","src":"16943:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16954:4:34","nodeType":"YulTypedName","src":"16954:4:34","type":""}],"src":"16816:289:34"},{"body":{"nativeSrc":"17191:103:34","nodeType":"YulBlock","src":"17191:103:34","statements":[{"body":{"nativeSrc":"17237:16:34","nodeType":"YulBlock","src":"17237:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17246:1:34","nodeType":"YulLiteral","src":"17246:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"17249:1:34","nodeType":"YulLiteral","src":"17249:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17239:6:34","nodeType":"YulIdentifier","src":"17239:6:34"},"nativeSrc":"17239:12:34","nodeType":"YulFunctionCall","src":"17239:12:34"},"nativeSrc":"17239:12:34","nodeType":"YulExpressionStatement","src":"17239:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17212:7:34","nodeType":"YulIdentifier","src":"17212:7:34"},{"name":"headStart","nativeSrc":"17221:9:34","nodeType":"YulIdentifier","src":"17221:9:34"}],"functionName":{"name":"sub","nativeSrc":"17208:3:34","nodeType":"YulIdentifier","src":"17208:3:34"},"nativeSrc":"17208:23:34","nodeType":"YulFunctionCall","src":"17208:23:34"},{"kind":"number","nativeSrc":"17233:2:34","nodeType":"YulLiteral","src":"17233:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17204:3:34","nodeType":"YulIdentifier","src":"17204:3:34"},"nativeSrc":"17204:32:34","nodeType":"YulFunctionCall","src":"17204:32:34"},"nativeSrc":"17201:52:34","nodeType":"YulIf","src":"17201:52:34"},{"nativeSrc":"17262:26:34","nodeType":"YulAssignment","src":"17262:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"17278:9:34","nodeType":"YulIdentifier","src":"17278:9:34"}],"functionName":{"name":"mload","nativeSrc":"17272:5:34","nodeType":"YulIdentifier","src":"17272:5:34"},"nativeSrc":"17272:16:34","nodeType":"YulFunctionCall","src":"17272:16:34"},"variableNames":[{"name":"value0","nativeSrc":"17262:6:34","nodeType":"YulIdentifier","src":"17262:6:34"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"17110:184:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17157:9:34","nodeType":"YulTypedName","src":"17157:9:34","type":""},{"name":"dataEnd","nativeSrc":"17168:7:34","nodeType":"YulTypedName","src":"17168:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17180:6:34","nodeType":"YulTypedName","src":"17180:6:34","type":""}],"src":"17110:184:34"},{"body":{"nativeSrc":"17480:217:34","nodeType":"YulBlock","src":"17480:217:34","statements":[{"nativeSrc":"17490:27:34","nodeType":"YulAssignment","src":"17490:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"17502:9:34","nodeType":"YulIdentifier","src":"17502:9:34"},{"kind":"number","nativeSrc":"17513:3:34","nodeType":"YulLiteral","src":"17513:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17498:3:34","nodeType":"YulIdentifier","src":"17498:3:34"},"nativeSrc":"17498:19:34","nodeType":"YulFunctionCall","src":"17498:19:34"},"variableNames":[{"name":"tail","nativeSrc":"17490:4:34","nodeType":"YulIdentifier","src":"17490:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17533:9:34","nodeType":"YulIdentifier","src":"17533:9:34"},{"name":"value0","nativeSrc":"17544:6:34","nodeType":"YulIdentifier","src":"17544:6:34"}],"functionName":{"name":"mstore","nativeSrc":"17526:6:34","nodeType":"YulIdentifier","src":"17526:6:34"},"nativeSrc":"17526:25:34","nodeType":"YulFunctionCall","src":"17526:25:34"},"nativeSrc":"17526:25:34","nodeType":"YulExpressionStatement","src":"17526:25:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17571:9:34","nodeType":"YulIdentifier","src":"17571:9:34"},{"kind":"number","nativeSrc":"17582:2:34","nodeType":"YulLiteral","src":"17582:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17567:3:34","nodeType":"YulIdentifier","src":"17567:3:34"},"nativeSrc":"17567:18:34","nodeType":"YulFunctionCall","src":"17567:18:34"},{"arguments":[{"name":"value1","nativeSrc":"17591:6:34","nodeType":"YulIdentifier","src":"17591:6:34"},{"kind":"number","nativeSrc":"17599:4:34","nodeType":"YulLiteral","src":"17599:4:34","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"17587:3:34","nodeType":"YulIdentifier","src":"17587:3:34"},"nativeSrc":"17587:17:34","nodeType":"YulFunctionCall","src":"17587:17:34"}],"functionName":{"name":"mstore","nativeSrc":"17560:6:34","nodeType":"YulIdentifier","src":"17560:6:34"},"nativeSrc":"17560:45:34","nodeType":"YulFunctionCall","src":"17560:45:34"},"nativeSrc":"17560:45:34","nodeType":"YulExpressionStatement","src":"17560:45:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17625:9:34","nodeType":"YulIdentifier","src":"17625:9:34"},{"kind":"number","nativeSrc":"17636:2:34","nodeType":"YulLiteral","src":"17636:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17621:3:34","nodeType":"YulIdentifier","src":"17621:3:34"},"nativeSrc":"17621:18:34","nodeType":"YulFunctionCall","src":"17621:18:34"},{"name":"value2","nativeSrc":"17641:6:34","nodeType":"YulIdentifier","src":"17641:6:34"}],"functionName":{"name":"mstore","nativeSrc":"17614:6:34","nodeType":"YulIdentifier","src":"17614:6:34"},"nativeSrc":"17614:34:34","nodeType":"YulFunctionCall","src":"17614:34:34"},"nativeSrc":"17614:34:34","nodeType":"YulExpressionStatement","src":"17614:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17668:9:34","nodeType":"YulIdentifier","src":"17668:9:34"},{"kind":"number","nativeSrc":"17679:2:34","nodeType":"YulLiteral","src":"17679:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17664:3:34","nodeType":"YulIdentifier","src":"17664:3:34"},"nativeSrc":"17664:18:34","nodeType":"YulFunctionCall","src":"17664:18:34"},{"name":"value3","nativeSrc":"17684:6:34","nodeType":"YulIdentifier","src":"17684:6:34"}],"functionName":{"name":"mstore","nativeSrc":"17657:6:34","nodeType":"YulIdentifier","src":"17657:6:34"},"nativeSrc":"17657:34:34","nodeType":"YulFunctionCall","src":"17657:34:34"},"nativeSrc":"17657:34:34","nodeType":"YulExpressionStatement","src":"17657:34:34"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nativeSrc":"17299:398:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17425:9:34","nodeType":"YulTypedName","src":"17425:9:34","type":""},{"name":"value3","nativeSrc":"17436:6:34","nodeType":"YulTypedName","src":"17436:6:34","type":""},{"name":"value2","nativeSrc":"17444:6:34","nodeType":"YulTypedName","src":"17444:6:34","type":""},{"name":"value1","nativeSrc":"17452:6:34","nodeType":"YulTypedName","src":"17452:6:34","type":""},{"name":"value0","nativeSrc":"17460:6:34","nodeType":"YulTypedName","src":"17460:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17471:4:34","nodeType":"YulTypedName","src":"17471:4:34","type":""}],"src":"17299:398:34"},{"body":{"nativeSrc":"17915:299:34","nodeType":"YulBlock","src":"17915:299:34","statements":[{"nativeSrc":"17925:27:34","nodeType":"YulAssignment","src":"17925:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"17937:9:34","nodeType":"YulIdentifier","src":"17937:9:34"},{"kind":"number","nativeSrc":"17948:3:34","nodeType":"YulLiteral","src":"17948:3:34","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"17933:3:34","nodeType":"YulIdentifier","src":"17933:3:34"},"nativeSrc":"17933:19:34","nodeType":"YulFunctionCall","src":"17933:19:34"},"variableNames":[{"name":"tail","nativeSrc":"17925:4:34","nodeType":"YulIdentifier","src":"17925:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"17968:9:34","nodeType":"YulIdentifier","src":"17968:9:34"},{"name":"value0","nativeSrc":"17979:6:34","nodeType":"YulIdentifier","src":"17979:6:34"}],"functionName":{"name":"mstore","nativeSrc":"17961:6:34","nodeType":"YulIdentifier","src":"17961:6:34"},"nativeSrc":"17961:25:34","nodeType":"YulFunctionCall","src":"17961:25:34"},"nativeSrc":"17961:25:34","nodeType":"YulExpressionStatement","src":"17961:25:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18006:9:34","nodeType":"YulIdentifier","src":"18006:9:34"},{"kind":"number","nativeSrc":"18017:2:34","nodeType":"YulLiteral","src":"18017:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18002:3:34","nodeType":"YulIdentifier","src":"18002:3:34"},"nativeSrc":"18002:18:34","nodeType":"YulFunctionCall","src":"18002:18:34"},{"name":"value1","nativeSrc":"18022:6:34","nodeType":"YulIdentifier","src":"18022:6:34"}],"functionName":{"name":"mstore","nativeSrc":"17995:6:34","nodeType":"YulIdentifier","src":"17995:6:34"},"nativeSrc":"17995:34:34","nodeType":"YulFunctionCall","src":"17995:34:34"},"nativeSrc":"17995:34:34","nodeType":"YulExpressionStatement","src":"17995:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18049:9:34","nodeType":"YulIdentifier","src":"18049:9:34"},{"kind":"number","nativeSrc":"18060:2:34","nodeType":"YulLiteral","src":"18060:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18045:3:34","nodeType":"YulIdentifier","src":"18045:3:34"},"nativeSrc":"18045:18:34","nodeType":"YulFunctionCall","src":"18045:18:34"},{"name":"value2","nativeSrc":"18065:6:34","nodeType":"YulIdentifier","src":"18065:6:34"}],"functionName":{"name":"mstore","nativeSrc":"18038:6:34","nodeType":"YulIdentifier","src":"18038:6:34"},"nativeSrc":"18038:34:34","nodeType":"YulFunctionCall","src":"18038:34:34"},"nativeSrc":"18038:34:34","nodeType":"YulExpressionStatement","src":"18038:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18092:9:34","nodeType":"YulIdentifier","src":"18092:9:34"},{"kind":"number","nativeSrc":"18103:2:34","nodeType":"YulLiteral","src":"18103:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"18088:3:34","nodeType":"YulIdentifier","src":"18088:3:34"},"nativeSrc":"18088:18:34","nodeType":"YulFunctionCall","src":"18088:18:34"},{"name":"value3","nativeSrc":"18108:6:34","nodeType":"YulIdentifier","src":"18108:6:34"}],"functionName":{"name":"mstore","nativeSrc":"18081:6:34","nodeType":"YulIdentifier","src":"18081:6:34"},"nativeSrc":"18081:34:34","nodeType":"YulFunctionCall","src":"18081:34:34"},"nativeSrc":"18081:34:34","nodeType":"YulExpressionStatement","src":"18081:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18135:9:34","nodeType":"YulIdentifier","src":"18135:9:34"},{"kind":"number","nativeSrc":"18146:3:34","nodeType":"YulLiteral","src":"18146:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"18131:3:34","nodeType":"YulIdentifier","src":"18131:3:34"},"nativeSrc":"18131:19:34","nodeType":"YulFunctionCall","src":"18131:19:34"},{"arguments":[{"name":"value4","nativeSrc":"18156:6:34","nodeType":"YulIdentifier","src":"18156:6:34"},{"kind":"number","nativeSrc":"18164:42:34","nodeType":"YulLiteral","src":"18164:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"18152:3:34","nodeType":"YulIdentifier","src":"18152:3:34"},"nativeSrc":"18152:55:34","nodeType":"YulFunctionCall","src":"18152:55:34"}],"functionName":{"name":"mstore","nativeSrc":"18124:6:34","nodeType":"YulIdentifier","src":"18124:6:34"},"nativeSrc":"18124:84:34","nodeType":"YulFunctionCall","src":"18124:84:34"},"nativeSrc":"18124:84:34","nodeType":"YulExpressionStatement","src":"18124:84:34"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed","nativeSrc":"17702:512:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17852:9:34","nodeType":"YulTypedName","src":"17852:9:34","type":""},{"name":"value4","nativeSrc":"17863:6:34","nodeType":"YulTypedName","src":"17863:6:34","type":""},{"name":"value3","nativeSrc":"17871:6:34","nodeType":"YulTypedName","src":"17871:6:34","type":""},{"name":"value2","nativeSrc":"17879:6:34","nodeType":"YulTypedName","src":"17879:6:34","type":""},{"name":"value1","nativeSrc":"17887:6:34","nodeType":"YulTypedName","src":"17887:6:34","type":""},{"name":"value0","nativeSrc":"17895:6:34","nodeType":"YulTypedName","src":"17895:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17906:4:34","nodeType":"YulTypedName","src":"17906:4:34","type":""}],"src":"17702:512:34"}]},"contents":"{\n    { }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffff00000000000000000000000000000000000000000000000000000000))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, shl(5, length)), 32), dataEnd) { revert(0, 0) }\n        value0 := add(_2, 32)\n        value1 := length\n    }\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_decode_struct_Order_calldata(offset, end) -> value\n    {\n        if slt(sub(end, offset), 544) { revert(0, 0) }\n        value := offset\n    }\n    function abi_decode_tuple_t_addresst_uint256t_struct$_Order_$6514_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 608) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n        value2 := abi_decode_struct_Order_calldata(add(headStart, 64), dataEnd)\n    }\n    function abi_decode_tuple_t_addresst_struct$_Order_$6514_calldata_ptr(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 576) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := abi_decode_struct_Order_calldata(add(headStart, 32), dataEnd)\n    }\n    function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, 32)\n        mstore(headStart, 32)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_decode_bytes4(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_bytes4(headStart)\n    }\n    function abi_encode_tuple_t_contract$_IAdapter_$6490__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\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        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, 0xff00000000000000000000000000000000000000000000000000000000000000))\n        let _1 := 32\n        mstore(add(headStart, 32), 224)\n        let tail_1 := abi_encode_string(value1, add(headStart, 224))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        let tail_2 := abi_encode_string(value2, tail_1)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 160), value5)\n        mstore(add(headStart, 192), sub(tail_2, headStart))\n        let pos := tail_2\n        let length := mload(value6)\n        mstore(tail_2, length)\n        pos := add(tail_2, 32)\n        let srcPtr := add(value6, 32)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := div(x, y)\n    }\n    function mod_t_uint256(x, y) -> r\n    {\n        if iszero(y) { panic_error_0x12() }\n        r := mod(x, y)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := mload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_uint256_t_uint256_t_address_t_uint256_t_uint256_t_address_t_address_t_uint256__to_t_uint256_t_uint256_t_address_t_uint256_t_uint256_t_address_t_address_t_uint256__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 256)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(add(headStart, 64), and(value2, _1))\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), and(value5, _1))\n        mstore(add(headStart, 192), and(value6, _1))\n        mstore(add(headStart, 224), value7)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_uint8(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_uint8__to_t_bytes32_t_bytes32_t_uint8__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n    {\n        mstore(pos, value0)\n        mstore(add(pos, 32), value1)\n        mstore(add(pos, 64), and(shl(248, value2), 0xff00000000000000000000000000000000000000000000000000000000000000))\n        end := add(pos, 65)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function checked_add_t_uint256(x, y) -> sum\n    {\n        sum := add(x, y)\n        if gt(x, sum) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_struct$_Party_$6436_memory_ptr__to_t_struct$_Party_$6436_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(mload(value0), _1))\n        mstore(add(headStart, 0x20), and(mload(add(value0, 0x20)), _1))\n        mstore(add(headStart, 0x40), and(mload(add(value0, 0x40)), 0xffffffff00000000000000000000000000000000000000000000000000000000))\n        mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n        mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_struct_Party_calldata(value, pos)\n    {\n        let value_1 := calldataload(value)\n        validator_revert_address(value_1)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(pos, and(value_1, _1))\n        let value_2 := calldataload(add(value, 0x20))\n        validator_revert_address(value_2)\n        mstore(add(pos, 0x20), and(value_2, _1))\n        mstore(add(pos, 0x40), and(abi_decode_bytes4(add(value, 0x40)), 0xffffffff00000000000000000000000000000000000000000000000000000000))\n        mstore(add(pos, 0x60), calldataload(add(value, 0x60)))\n        mstore(add(pos, 0x80), calldataload(add(value, 0x80)))\n    }\n    function abi_encode_tuple_t_struct$_Party_$6436_calldata_ptr__to_t_struct$_Party_$6436_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        abi_encode_struct_Party_calldata(value0, headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"Ownable2Step: caller is not the \")\n        mstore(add(headStart, 96), \"new owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_address__to_t_address_t_address_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, _1))\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_encode_tuple_packed_t_stringliteral_2acab4a02365f399065e9ce76efb2e022c133c96451f5e343829a0e5cd04bfa7_t_stringliteral_224ed05dccb4f5c1e21e6e85fb29dd6c83074e33458fdfefb184d03fe8742f4f__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n    {\n        mstore(pos, \"Order(uint256 nonce,uint256 expi\")\n        mstore(add(pos, 32), \"ry,uint256 protocolFee,Party sig\")\n        mstore(add(pos, 64), \"ner,Party sender,address affilia\")\n        mstore(add(pos, 96), \"teWallet,uint256 affiliateAmount\")\n        mstore(add(pos, 128), \")\")\n        mstore(add(pos, 129), \"Party(address wallet,address tok\")\n        mstore(add(pos, 161), \"en,bytes4 kind,uint256 id,uint25\")\n        mstore(add(pos, 193), \"6 amount)\")\n        end := add(pos, 202)\n    }\n    function abi_encode_tuple_t_bytes32_t_struct$_Party_$6436_calldata_ptr__to_t_bytes32_t_struct$_Party_$6436_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 192)\n        mstore(headStart, value0)\n        abi_encode_struct_Party_calldata(value1, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes32_t_address_t_uint256__to_t_bytes32_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes32_t_address_t_uint256__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 256)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), value4)\n        mstore(add(headStart, 160), value5)\n        mstore(add(headStart, 192), and(value6, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 224), value7)\n    }\n    function panic_error_0x21()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), 64)\n        tail := abi_encode_string(value1, add(headStart, 64))\n    }\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 128)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), and(value1, 0xff))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n    }\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 160)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), and(value4, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n}","id":34,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"3523":[{"length":32,"start":10781}],"3525":[{"length":32,"start":10739}],"3527":[{"length":32,"start":10697}],"3529":[{"length":32,"start":10862}],"3531":[{"length":32,"start":10902}],"3534":[{"length":32,"start":6690}],"3537":[{"length":32,"start":6733}],"4852":[{"length":32,"start":578}],"4880":[{"length":32,"start":429},{"length":32,"start":3650},{"length":32,"start":7591}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101a35760003560e01c80637ce78525116100ee578063b0e21e8a11610097578063b918161111610071578063b918161114610454578063cbf7c6c31461048a578063e30c3978146104aa578063f2fde38b146104c857600080fd5b8063b0e21e8a14610430578063b6549f7514610439578063b6a5d7de1461044157600080fd5b80639e93ad8e116100c85780639e93ad8e146103cb578063acb8cc49146103d4578063b0dd49431461041057600080fd5b80637ce785251461037f57806384b0196e146103925780638da5cb5b146103ad57600080fd5b806349b8a93211610150578063787dce3d1161012a578063787dce3d1461031b578063796f077b1461032e57806379ba50971461037757600080fd5b806349b8a932146102985780636e038752146102b8578063715018a61461031357600080fd5b80633644e515116101815780633644e5151461023d5780633c64191014610272578063485421051461028557600080fd5b806306a6ea74146101a85780631647795e146102055780632e34082314610228575b600080fd5b6101cf7f000000000000000000000000000000000000000000000000000000000000000081565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b610218610213366004612c3e565b6104db565b60405190151581526020016101fc565b61023b610236366004612c6a565b610540565b005b6102647f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101fc565b61023b610280366004612cdf565b6105ad565b61023b610293366004612d11565b6105e9565b6102ab6102a6366004612d51565b610a2c565b6040516101fc9190612d88565b6102ee6102c6366004612dfc565b60096020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101fc565b61023b611809565b61023b610329366004612cdf565b61181d565b61036a6040518060400160405280600481526020017f535741500000000000000000000000000000000000000000000000000000000081525081565b6040516101fc9190612e85565b61023b61189b565b61023b61038d366004612e98565b611950565b61039a611a14565b6040516101fc9796959493929190612eb5565b60005473ffffffffffffffffffffffffffffffffffffffff166102ee565b61026461271081565b61036a6040518060400160405280600381526020017f342e32000000000000000000000000000000000000000000000000000000000081525081565b61026461041e366004612e98565b60066020526000908152604090205481565b61026460075481565b61023b611ab9565b61023b61044f366004612e98565b611b36565b6102ee610462366004612e98565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6008546102ee9073ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff166102ee565b61023b6104d6366004612e98565b611bfe565b6000806104ea61010084612fd5565b905060006104fa61010085612fe9565b73ffffffffffffffffffffffffffffffffffffffff8616600090815260046020908152604080832095835294905292909220546001921c82169091149150505b92915050565b60005b818110156105a857600083838381811061055f5761055f612ffd565b9050602002013590506105723382611cae565b604051339082907f8dd3c361eb2366ff27c2db0eb07b9261f1d052570742ab8c9a0c326f37aa576d90600090a350600101610543565b505050565b336000818152600660205260408082208490555183917f863123978d9b13946753a916c935c0688a01802440d3ffc668d04d2720c4e11091a350565b6105f281611d84565b6000610605610100830160e08401612e98565b73ffffffffffffffffffffffffffffffffffffffff161415801561064f575033610636610100830160e08401612e98565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610686576040517fa7202ef600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106cf3361069a6060840160408501612e98565b6101608401356101408501356106b861012087016101008801612e98565b6106ca61014088016101208901612dfc565b611fed565b61070d6106e26060830160408401612e98565b8460c084013560a08501356106fd6080870160608801612e98565b6106ca60a0880160808901612dfc565b60006107216101a083016101808401612e98565b73ffffffffffffffffffffffffffffffffffffffff161461077057610770336107526101a084016101808501612e98565b6101a08401356101408501356106b861012087016101008801612e98565b600754600090612710906107899061016085013561302c565b6107939190612fd5565b905080156107e5576008546107e590339073ffffffffffffffffffffffffffffffffffffffff16836101408601356107d361012088016101008901612e98565b6106ca61014089016101208a01612dfc565b6107fd6107f86080840160608501612e98565b6121be565b15610933576000806108156080850160608601612e98565b6040517f2a55205a00000000000000000000000000000000000000000000000000000000815260a08601356004820152610160860135602482015273ffffffffffffffffffffffffffffffffffffffff9190911690632a55205a906044016040805180830381865afa15801561088f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b39190613043565b909250905080156109305784811115610900576040517f9c08743a000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b61093033838361014088013561091e6101208a016101008b01612e98565b6106ca6101408b016101208c01612dfc565b50505b336109446060840160408501612e98565b73ffffffffffffffffffffffffffffffffffffffff1683357f182e847dc18073123e8aa17e204b9e3874caf71387e52fe3083ffb98716d3d6b60c086013560a08701356109976080890160608a01612e98565b6101608901356101408a01356109b56101208c016101008d01612e98565b6109c76101a08d016101808e01612e98565b60408051978852602088019690965273ffffffffffffffffffffffffffffffffffffffff9485169587019590955260608601929092526080850152811660a08401521660c08201526101a087013560e08201526101000160405180910390a450505050565b60408051600f808252610200820190925260609160009190602082016101e080368337019050509050600080610a686060860160408701612e98565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600560205260409020549192501615610ac15773ffffffffffffffffffffffffffffffffffffffff908116600090815260056020526040902054165b610b4781610ace87612296565b6101e088018035906102008a013590610aeb906101c08c01613071565b604051602001610b3393929190928352602083019190915260f81b7fff0000000000000000000000000000000000000000000000000000000000000016604082015260410190565b604051602081830303815290604052612537565b610b9a577f556e617574686f72697a656400000000000000000000000000000000000000008383610b7781613094565b945081518110610b8957610b89612ffd565b602002602001018181525050610c4f565b610ba58186356104db565b15610bd6577f4e6f6e6365416c726561647955736564000000000000000000000000000000008383610b7781613094565b73ffffffffffffffffffffffffffffffffffffffff811660009081526006602052604090205485351015610c4f577f4e6f6e6365546f6f4c6f770000000000000000000000000000000000000000008383610c3081613094565b945081518110610c4257610c42612ffd565b6020026020010181815250505b4285602001351015610ca6577f4f726465724578706972656400000000000000000000000000000000000000008383610c8781613094565b945081518110610c9957610c99612ffd565b6020026020010181815250505b6000610cb9610100870160e08801612e98565b73ffffffffffffffffffffffffffffffffffffffff1614158015610d19575073ffffffffffffffffffffffffffffffffffffffff8616610d00610100870160e08801612e98565b73ffffffffffffffffffffffffffffffffffffffff1614155b15610d69577f53656e646572496e76616c6964000000000000000000000000000000000000008383610d4a81613094565b945081518110610d5c57610d5c612ffd565b6020026020010181815250505b6000600981610d8061014089016101208a01612dfc565b7fffffffff0000000000000000000000000000000000000000000000000000000016815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16905080610e1f577f53656e646572546f6b656e4b696e64556e6b6e6f776e000000000000000000008484610dfc81613094565b955081518110610e0e57610e0e612ffd565b602002602001018181525050611491565b7fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000016610e7461014088016101208901612dfc565b7fffffffff000000000000000000000000000000000000000000000000000000001614610ec7577f53656e646572546f6b656e496e76616c696400000000000000000000000000008484610dfc81613094565b60075460009061271090610ee0906101608a013561302c565b610eea9190612fd5565b905060006101a0880135610f03836101608b01356130cc565b610f0d91906130cc565b9050610f226107f860808a0160608b01612e98565b15610fe9576000610f3960808a0160608b01612e98565b6040517f2a55205a00000000000000000000000000000000000000000000000000000000815260a08b013560048201526101608b0135602482015273ffffffffffffffffffffffffffffffffffffffff9190911690632a55205a906044016040805180830381865afa158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190613043565b9150610fe5905081836130cc565b9150505b6040805160a0810190915273ffffffffffffffffffffffffffffffffffffffff8a168152600090602081016110266101208c016101008d01612e98565b73ffffffffffffffffffffffffffffffffffffffff1681526020016110536101408c016101208d01612dfc565b7fffffffff000000000000000000000000000000000000000000000000000000001681526101408b01356020820152604001839052905073ffffffffffffffffffffffffffffffffffffffff8a161561130257604080517f3170f63d000000000000000000000000000000000000000000000000000000008152825173ffffffffffffffffffffffffffffffffffffffff9081166004830152602084015181166024830152918301517fffffffff00000000000000000000000000000000000000000000000000000000166044820152606083015160648201526080830151608482015290851690633170f63d9060a401602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906130df565b6111d4577f53656e646572416c6c6f77616e63654c6f77000000000000000000000000000087876111b581613094565b9850815181106111c7576111c7612ffd565b6020026020010181815250505b604080517fd1190df9000000000000000000000000000000000000000000000000000000008152825173ffffffffffffffffffffffffffffffffffffffff9081166004830152602084015181166024830152918301517fffffffff0000000000000000000000000000000000000000000000000000000016604482015260608301516064820152608083015160848201529085169063d1190df99060a401602060405180830381865afa15801561128f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b391906130df565b611302577f53656e64657242616c616e63654c6f770000000000000000000000000000000087876112e381613094565b9850815181106112f5576112f5612ffd565b6020026020010181815250505b604080517f40944de9000000000000000000000000000000000000000000000000000000008152825173ffffffffffffffffffffffffffffffffffffffff9081166004830152602084015181166024830152918301517fffffffff000000000000000000000000000000000000000000000000000000001660448201526060830151606482015260808301516084820152908516906340944de99060a401602060405180830381865afa1580156113bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e191906130df565b611430577f416d6f756e744f724944496e76616c6964000000000000000000000000000000878761141181613094565b98508151811061142357611423612ffd565b6020026020010181815250505b6101a08901356101608a0135101561148d577f416666696c69617465416d6f756e74496e76616c696400000000000000000000878761146e81613094565b98508151811061148057611480612ffd565b6020026020010181815250505b5050505b60006009816114a660a08a0160808b01612dfc565b7fffffffff0000000000000000000000000000000000000000000000000000000016815260208101919091526040016000205473ffffffffffffffffffffffffffffffffffffffff16905080611545577f5369676e6572546f6b656e4b696e64556e6b6e6f776e00000000000000000000858561152281613094565b96508151811061153457611534612ffd565b6020026020010181815250506117f1565b604080517f3170f63d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831691633170f63d91611599918b0190600401613183565b602060405180830381865afa1580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115da91906130df565b611629577f5369676e6572416c6c6f77616e63654c6f770000000000000000000000000000858561160a81613094565b96508151811061161c5761161c612ffd565b6020026020010181815250505b604080517fd1190df900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169163d1190df99161167d918b0190600401613183565b602060405180830381865afa15801561169a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116be91906130df565b61170d577f5369676e657242616c616e63654c6f770000000000000000000000000000000085856116ee81613094565b96508151811061170057611700612ffd565b6020026020010181815250505b604080517f40944de900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316916340944de991611761918b0190600401613183565b602060405180830381865afa15801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a291906130df565b6117f1577f416d6f756e744f724944496e76616c696400000000000000000000000000000085856117d281613094565b9650815181106117e4576117e4612ffd565b6020026020010181815250505b845184146117fd578385525b50929695505050505050565b6118116125b4565b61181b6000612635565b565b6118256125b4565b6127108110611860576040517f52dadcf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60078190556040518181527fdc0410a296e1e33943a772020d333d5f99319d7fcad932a484c53889f7aaa2b19060200160405180910390a150565b600154339073ffffffffffffffffffffffffffffffffffffffff168114611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084016108f7565b61194d81612635565b50565b6119586125b4565b73ffffffffffffffffffffffffffffffffffffffff81166119a5576040517f6b8df36300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f8b2a800ce9e2e7ccdf4741ae0e41b1f16983192291080ae3b78ac4296ddf598a90600090a250565b600060608082808083611a487f00000000000000000000000000000000000000000000000000000000000000006002612666565b611a737f00000000000000000000000000000000000000000000000000000000000000006003612666565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b3360008181526005602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000008116909155905173ffffffffffffffffffffffffffffffffffffffff909116929183917fd7426110292f20fe59e73ccf52124e0f5440a756507c91c7b0a6c50e1eb1a23a9190a350565b73ffffffffffffffffffffffffffffffffffffffff8116611b83576040517fcd4b78cf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360008181526005602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155905190917f30468de898bda644e26bab66e5a2241a3aa6aaf527257f5ca54e0f65204ba14a91a350565b611c066125b4565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155611c6960005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000611cbc61010083612fd5565b90506000611ccc61010084612fe9565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460209081526040808320868452909152902054909150600181831c81169003611d42576040517f91cab504000000000000000000000000000000000000000000000000000000008152600481018590526024016108f7565b73ffffffffffffffffffffffffffffffffffffffff909416600090815260046020908152604080832094835293905291909120600190911b9290921790915550565b7fffffffff000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000016611dd961014083016101208401612dfc565b7fffffffff000000000000000000000000000000000000000000000000000000001614611e32576040517fd0bd721a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101a08101356101608201351015611e76576040517f3b71bbca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611e886060830160408401612e98565b73ffffffffffffffffffffffffffffffffffffffff8082166000908152600560205260409020549192501615611ee15773ffffffffffffffffffffffffffffffffffffffff908116600090815260056020526040902054165b611f0b81611eee84612296565b6101e0850180359061020087013590610aeb906101c08901613071565b611f41576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f4c818335611cae565b73ffffffffffffffffffffffffffffffffffffffff811660009081526006602052604090205482351015611fac576040517fd24d82a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42826020013511611fe9576040517fc56873ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b7fffffffff00000000000000000000000000000000000000000000000000000000811660009081526009602052604090205473ffffffffffffffffffffffffffffffffffffffff168061206c576040517f33c8207c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff89811660248301528881166044830152606482018890526084820187905285811660a4808401919091528351808403909101815260c490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f47338bc300000000000000000000000000000000000000000000000000000000179052915160009284169161211991613191565b600060405180830381855af49150503d8060008114612154576040519150601f19603f3d011682016040523d82523d6000602084013e612159565b606091505b50509050806121b4576040517f523c3aaa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808a166004830152881660248201526044016108f7565b5050505050505050565b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f2a55205a00000000000000000000000000000000000000000000000000000000600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906301ffc9a790602401602060405180830381865afa925050508015612285575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612282918101906130df565b60015b61053a57506000919050565b919050565b600061053a6040516020016123d8907f4f726465722875696e74323536206e6f6e63652c75696e74323536206578706981527f72792c75696e743235362070726f746f636f6c4665652c50617274792073696760208201527f6e65722c50617274792073656e6465722c6164647265737320616666696c696160408201527f746557616c6c65742c75696e7432353620616666696c69617465416d6f756e7460608201527f290000000000000000000000000000000000000000000000000000000000000060808201527f506172747928616464726573732077616c6c65742c6164647265737320746f6b60818201527f656e2c627974657334206b696e642c75696e743235362069642c75696e74323560a18201527f3620616d6f756e7429000000000000000000000000000000000000000000000060c182015260ca0190565b60405160208183030381529060405280519060200120836000013584602001356007547f224ed05dccb4f5c1e21e6e85fb29dd6c83074e33458fdfefb184d03fe8742f4f876040016040516020016124319291906131ad565b604051602081830303815290604052805190602001207f224ed05dccb4f5c1e21e6e85fb29dd6c83074e33458fdfefb184d03fe8742f4f8860e00160405160200161247d9291906131ad565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101206124c56101a08a016101808b01612e98565b6040805160208101989098528701959095526060860193909352608085019190915260a084015260c083015273ffffffffffffffffffffffffffffffffffffffff1660e08201526101a08401356101008201526101200160405160208183030381529060405280519060200120612711565b60008060006125468585612759565b9092509050600081600481111561255f5761255f6131c1565b14801561259757508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806125a857506125a886868661279e565b925050505b9392505050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461181b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108f7565b600180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561194d816128fb565b606060ff83146126805761267983612970565b905061053a565b81805461268c906131f0565b80601f01602080910402602001604051908101604052809291908181526020018280546126b8906131f0565b80156127055780601f106126da57610100808354040283529160200191612705565b820191906000526020600020905b8154815290600101906020018083116126e857829003601f168201915b5050505050905061053a565b600061053a61271e6129af565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080825160410361278f5760208301516040840151606085015160001a61278387828585612aec565b94509450505050612797565b506000905060025b9250929050565b60008060008573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b86866040516024016127d592919061323d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161285e9190613191565b600060405180830381855afa9150503d8060008114612899576040519150601f19603f3d011682016040523d82523d6000602084013e61289e565b606091505b50915091508180156128b257506020815110155b80156125a8575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906128f0908301602090810190840161325e565b149695505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060600061297d83612bdb565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015612a1557507f000000000000000000000000000000000000000000000000000000000000000046145b15612a3f57507f000000000000000000000000000000000000000000000000000000000000000090565b612ae7604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612b235750600090506003612bd2565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612b77573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612bcb57600060019250925050612bd2565b9150600090505b94509492505050565b600060ff8216601f81111561053a576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116811461194d57600080fd5b60008060408385031215612c5157600080fd5b8235612c5c81612c1c565b946020939093013593505050565b60008060208385031215612c7d57600080fd5b823567ffffffffffffffff80821115612c9557600080fd5b818501915085601f830112612ca957600080fd5b813581811115612cb857600080fd5b8660208260051b8501011115612ccd57600080fd5b60209290920196919550909350505050565b600060208284031215612cf157600080fd5b5035919050565b60006102208284031215612d0b57600080fd5b50919050565b60008060006102608486031215612d2757600080fd5b8335612d3281612c1c565b925060208401359150612d488560408601612cf8565b90509250925092565b6000806102408385031215612d6557600080fd5b8235612d7081612c1c565b9150612d7f8460208501612cf8565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612dc057835183529284019291840191600101612da4565b50909695505050505050565b80357fffffffff000000000000000000000000000000000000000000000000000000008116811461229157600080fd5b600060208284031215612e0e57600080fd5b6125ad82612dcc565b60005b83811015612e32578181015183820152602001612e1a565b50506000910152565b60008151808452612e53816020860160208601612e17565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006125ad6020830184612e3b565b600060208284031215612eaa57600080fd5b81356125ad81612c1c565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e06020840152612ef260e084018a612e3b565b8381036040850152612f04818a612e3b565b6060850189905273ffffffffffffffffffffffffffffffffffffffff8816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b81811015612f6557835183529284019291840191600101612f49565b50909c9b505050505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082612fe457612fe4612f77565b500490565b600082612ff857612ff8612f77565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b808202811582820484141761053a5761053a612fa6565b6000806040838503121561305657600080fd5b825161306181612c1c565b6020939093015192949293505050565b60006020828403121561308357600080fd5b813560ff811681146125ad57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130c5576130c5612fa6565b5060010190565b8082018082111561053a5761053a612fa6565b6000602082840312156130f157600080fd5b815180151581146125ad57600080fd5b803561310c81612c1c565b73ffffffffffffffffffffffffffffffffffffffff908116835260208201359061313582612c1c565b1660208301527fffffffff0000000000000000000000000000000000000000000000000000000061316860408301612dcc565b16604083015260608181013590830152608090810135910152565b60a0810161053a8284613101565b600082516131a3818460208701612e17565b9190910192915050565b82815260c081016125ad6020830184613101565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600181811c9082168061320457607f821691505b602082108103612d0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b8281526040602082015260006132566040830184612e3b565b949350505050565b60006020828403121561327057600080fd5b505191905056fea2646970667358221220453155cc4b905ac166718dc20161a38d4b9a47bf6bdbe62594925918e5176b4164736f6c63430008170033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A3 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7CE78525 GT PUSH2 0xEE JUMPI DUP1 PUSH4 0xB0E21E8A GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xB9181611 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xB9181611 EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0xCBF7C6C3 EQ PUSH2 0x48A JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x4AA JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB0E21E8A EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0xB6549F75 EQ PUSH2 0x439 JUMPI DUP1 PUSH4 0xB6A5D7DE EQ PUSH2 0x441 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x9E93AD8E GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x9E93AD8E EQ PUSH2 0x3CB JUMPI DUP1 PUSH4 0xACB8CC49 EQ PUSH2 0x3D4 JUMPI DUP1 PUSH4 0xB0DD4943 EQ PUSH2 0x410 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x7CE78525 EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0x84B0196E EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x49B8A932 GT PUSH2 0x150 JUMPI DUP1 PUSH4 0x787DCE3D GT PUSH2 0x12A JUMPI DUP1 PUSH4 0x787DCE3D EQ PUSH2 0x31B JUMPI DUP1 PUSH4 0x796F077B EQ PUSH2 0x32E JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x377 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x49B8A932 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x6E038752 EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x313 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3644E515 GT PUSH2 0x181 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x23D JUMPI DUP1 PUSH4 0x3C641910 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x48542105 EQ PUSH2 0x285 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6A6EA74 EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0x1647795E EQ PUSH2 0x205 JUMPI DUP1 PUSH4 0x2E340823 EQ PUSH2 0x228 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1CF PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x218 PUSH2 0x213 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C3E JUMP JUMPDEST PUSH2 0x4DB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FC JUMP JUMPDEST PUSH2 0x23B PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C6A JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x264 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FC JUMP JUMPDEST PUSH2 0x23B PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDF JUMP JUMPDEST PUSH2 0x5AD JUMP JUMPDEST PUSH2 0x23B PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D11 JUMP JUMPDEST PUSH2 0x5E9 JUMP JUMPDEST PUSH2 0x2AB PUSH2 0x2A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D51 JUMP JUMPDEST PUSH2 0xA2C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x2D88 JUMP JUMPDEST PUSH2 0x2EE PUSH2 0x2C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DFC JUMP JUMPDEST PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1FC JUMP JUMPDEST PUSH2 0x23B PUSH2 0x1809 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x329 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDF JUMP JUMPDEST PUSH2 0x181D JUMP JUMPDEST PUSH2 0x36A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5357415000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x2E85 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x189B JUMP JUMPDEST PUSH2 0x23B PUSH2 0x38D CALLDATASIZE PUSH1 0x4 PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1950 JUMP JUMPDEST PUSH2 0x39A PUSH2 0x1A14 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FC SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2EB5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2EE JUMP JUMPDEST PUSH2 0x264 PUSH2 0x2710 DUP2 JUMP JUMPDEST PUSH2 0x36A PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x342E320000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x264 PUSH2 0x41E CALLDATASIZE PUSH1 0x4 PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x264 PUSH1 0x7 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x1AB9 JUMP JUMPDEST PUSH2 0x23B PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1B36 JUMP JUMPDEST PUSH2 0x2EE PUSH2 0x462 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x2EE SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2EE JUMP JUMPDEST PUSH2 0x23B PUSH2 0x4D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1BFE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4EA PUSH2 0x100 DUP5 PUSH2 0x2FD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4FA PUSH2 0x100 DUP6 PUSH2 0x2FE9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP6 DUP4 MSTORE SWAP5 SWAP1 MSTORE SWAP3 SWAP1 SWAP3 KECCAK256 SLOAD PUSH1 0x1 SWAP3 SHR DUP3 AND SWAP1 SWAP2 EQ SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5A8 JUMPI PUSH1 0x0 DUP4 DUP4 DUP4 DUP2 DUP2 LT PUSH2 0x55F JUMPI PUSH2 0x55F PUSH2 0x2FFD JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD SWAP1 POP PUSH2 0x572 CALLER DUP3 PUSH2 0x1CAE JUMP JUMPDEST PUSH1 0x40 MLOAD CALLER SWAP1 DUP3 SWAP1 PUSH32 0x8DD3C361EB2366FF27C2DB0EB07B9261F1D052570742AB8C9A0C326F37AA576D SWAP1 PUSH1 0x0 SWAP1 LOG3 POP PUSH1 0x1 ADD PUSH2 0x543 JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP5 SWAP1 SSTORE MLOAD DUP4 SWAP2 PUSH32 0x863123978D9B13946753A916C935C0688A01802440D3FFC668D04D2720C4E110 SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x5F2 DUP2 PUSH2 0x1D84 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x605 PUSH2 0x100 DUP4 ADD PUSH1 0xE0 DUP5 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x64F JUMPI POP CALLER PUSH2 0x636 PUSH2 0x100 DUP4 ADD PUSH1 0xE0 DUP5 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x686 JUMPI PUSH1 0x40 MLOAD PUSH32 0xA7202EF600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6CF CALLER PUSH2 0x69A PUSH1 0x60 DUP5 ADD PUSH1 0x40 DUP6 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x160 DUP5 ADD CALLDATALOAD PUSH2 0x140 DUP6 ADD CALLDATALOAD PUSH2 0x6B8 PUSH2 0x120 DUP8 ADD PUSH2 0x100 DUP9 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x6CA PUSH2 0x140 DUP9 ADD PUSH2 0x120 DUP10 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH2 0x1FED JUMP JUMPDEST PUSH2 0x70D PUSH2 0x6E2 PUSH1 0x60 DUP4 ADD PUSH1 0x40 DUP5 ADD PUSH2 0x2E98 JUMP JUMPDEST DUP5 PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP6 ADD CALLDATALOAD PUSH2 0x6FD PUSH1 0x80 DUP8 ADD PUSH1 0x60 DUP9 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x6CA PUSH1 0xA0 DUP9 ADD PUSH1 0x80 DUP10 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH1 0x0 PUSH2 0x721 PUSH2 0x1A0 DUP4 ADD PUSH2 0x180 DUP5 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x770 JUMPI PUSH2 0x770 CALLER PUSH2 0x752 PUSH2 0x1A0 DUP5 ADD PUSH2 0x180 DUP6 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1A0 DUP5 ADD CALLDATALOAD PUSH2 0x140 DUP6 ADD CALLDATALOAD PUSH2 0x6B8 PUSH2 0x120 DUP8 ADD PUSH2 0x100 DUP9 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x789 SWAP1 PUSH2 0x160 DUP6 ADD CALLDATALOAD PUSH2 0x302C JUMP JUMPDEST PUSH2 0x793 SWAP2 SWAP1 PUSH2 0x2FD5 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x8 SLOAD PUSH2 0x7E5 SWAP1 CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x140 DUP7 ADD CALLDATALOAD PUSH2 0x7D3 PUSH2 0x120 DUP9 ADD PUSH2 0x100 DUP10 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x6CA PUSH2 0x140 DUP10 ADD PUSH2 0x120 DUP11 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH2 0x7FD PUSH2 0x7F8 PUSH1 0x80 DUP5 ADD PUSH1 0x60 DUP6 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x21BE JUMP JUMPDEST ISZERO PUSH2 0x933 JUMPI PUSH1 0x0 DUP1 PUSH2 0x815 PUSH1 0x80 DUP6 ADD PUSH1 0x60 DUP7 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x2A55205A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA0 DUP7 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH2 0x160 DUP7 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x2A55205A SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x88F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8B3 SWAP2 SWAP1 PUSH2 0x3043 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP DUP1 ISZERO PUSH2 0x930 JUMPI DUP5 DUP2 GT ISZERO PUSH2 0x900 JUMPI PUSH1 0x40 MLOAD PUSH32 0x9C08743A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x930 CALLER DUP4 DUP4 PUSH2 0x140 DUP9 ADD CALLDATALOAD PUSH2 0x91E PUSH2 0x120 DUP11 ADD PUSH2 0x100 DUP12 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x6CA PUSH2 0x140 DUP12 ADD PUSH2 0x120 DUP13 ADD PUSH2 0x2DFC JUMP JUMPDEST POP POP JUMPDEST CALLER PUSH2 0x944 PUSH1 0x60 DUP5 ADD PUSH1 0x40 DUP6 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 CALLDATALOAD PUSH32 0x182E847DC18073123E8AA17E204B9E3874CAF71387E52FE3083FFB98716D3D6B PUSH1 0xC0 DUP7 ADD CALLDATALOAD PUSH1 0xA0 DUP8 ADD CALLDATALOAD PUSH2 0x997 PUSH1 0x80 DUP10 ADD PUSH1 0x60 DUP11 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x160 DUP10 ADD CALLDATALOAD PUSH2 0x140 DUP11 ADD CALLDATALOAD PUSH2 0x9B5 PUSH2 0x120 DUP13 ADD PUSH2 0x100 DUP14 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x9C7 PUSH2 0x1A0 DUP14 ADD PUSH2 0x180 DUP15 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP8 DUP9 MSTORE PUSH1 0x20 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP5 DUP6 AND SWAP6 DUP8 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x60 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x80 DUP6 ADD MSTORE DUP2 AND PUSH1 0xA0 DUP5 ADD MSTORE AND PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x1A0 DUP8 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF DUP1 DUP3 MSTORE PUSH2 0x200 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD PUSH2 0x1E0 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0xA68 PUSH1 0x60 DUP7 ADD PUSH1 0x40 DUP8 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP AND ISZERO PUSH2 0xAC1 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND JUMPDEST PUSH2 0xB47 DUP2 PUSH2 0xACE DUP8 PUSH2 0x2296 JUMP JUMPDEST PUSH2 0x1E0 DUP9 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x200 DUP11 ADD CALLDATALOAD SWAP1 PUSH2 0xAEB SWAP1 PUSH2 0x1C0 DUP13 ADD PUSH2 0x3071 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB33 SWAP4 SWAP3 SWAP2 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xF8 SHL PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x41 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x2537 JUMP JUMPDEST PUSH2 0xB9A JUMPI PUSH32 0x556E617574686F72697A65640000000000000000000000000000000000000000 DUP4 DUP4 PUSH2 0xB77 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xB89 JUMPI PUSH2 0xB89 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH2 0xC4F JUMP JUMPDEST PUSH2 0xBA5 DUP2 DUP7 CALLDATALOAD PUSH2 0x4DB JUMP JUMPDEST ISZERO PUSH2 0xBD6 JUMPI PUSH32 0x4E6F6E6365416C72656164795573656400000000000000000000000000000000 DUP4 DUP4 PUSH2 0xB77 DUP2 PUSH2 0x3094 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP6 CALLDATALOAD LT ISZERO PUSH2 0xC4F JUMPI PUSH32 0x4E6F6E6365546F6F4C6F77000000000000000000000000000000000000000000 DUP4 DUP4 PUSH2 0xC30 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xC42 JUMPI PUSH2 0xC42 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST TIMESTAMP DUP6 PUSH1 0x20 ADD CALLDATALOAD LT ISZERO PUSH2 0xCA6 JUMPI PUSH32 0x4F72646572457870697265640000000000000000000000000000000000000000 DUP4 DUP4 PUSH2 0xC87 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xC99 JUMPI PUSH2 0xC99 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x0 PUSH2 0xCB9 PUSH2 0x100 DUP8 ADD PUSH1 0xE0 DUP9 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xD19 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND PUSH2 0xD00 PUSH2 0x100 DUP8 ADD PUSH1 0xE0 DUP9 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0xD69 JUMPI PUSH32 0x53656E646572496E76616C696400000000000000000000000000000000000000 DUP4 DUP4 PUSH2 0xD4A DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0xD5C JUMPI PUSH2 0xD5C PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x0 PUSH1 0x9 DUP2 PUSH2 0xD80 PUSH2 0x140 DUP10 ADD PUSH2 0x120 DUP11 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH2 0xE1F JUMPI PUSH32 0x53656E646572546F6B656E4B696E64556E6B6E6F776E00000000000000000000 DUP5 DUP5 PUSH2 0xDFC DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP6 POP DUP2 MLOAD DUP2 LT PUSH2 0xE0E JUMPI PUSH2 0xE0E PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH2 0x1491 JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH32 0x0 AND PUSH2 0xE74 PUSH2 0x140 DUP9 ADD PUSH2 0x120 DUP10 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND EQ PUSH2 0xEC7 JUMPI PUSH32 0x53656E646572546F6B656E496E76616C69640000000000000000000000000000 DUP5 DUP5 PUSH2 0xDFC DUP2 PUSH2 0x3094 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0xEE0 SWAP1 PUSH2 0x160 DUP11 ADD CALLDATALOAD PUSH2 0x302C JUMP JUMPDEST PUSH2 0xEEA SWAP2 SWAP1 PUSH2 0x2FD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A0 DUP9 ADD CALLDATALOAD PUSH2 0xF03 DUP4 PUSH2 0x160 DUP12 ADD CALLDATALOAD PUSH2 0x30CC JUMP JUMPDEST PUSH2 0xF0D SWAP2 SWAP1 PUSH2 0x30CC JUMP JUMPDEST SWAP1 POP PUSH2 0xF22 PUSH2 0x7F8 PUSH1 0x80 DUP11 ADD PUSH1 0x60 DUP12 ADD PUSH2 0x2E98 JUMP JUMPDEST ISZERO PUSH2 0xFE9 JUMPI PUSH1 0x0 PUSH2 0xF39 PUSH1 0x80 DUP11 ADD PUSH1 0x60 DUP12 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x2A55205A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0xA0 DUP12 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH2 0x160 DUP12 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x2A55205A SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFB3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFD7 SWAP2 SWAP1 PUSH2 0x3043 JUMP JUMPDEST SWAP2 POP PUSH2 0xFE5 SWAP1 POP DUP2 DUP4 PUSH2 0x30CC JUMP JUMPDEST SWAP2 POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x20 DUP2 ADD PUSH2 0x1026 PUSH2 0x120 DUP13 ADD PUSH2 0x100 DUP14 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1053 PUSH2 0x140 DUP13 ADD PUSH2 0x120 DUP14 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 MSTORE PUSH2 0x140 DUP12 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD DUP4 SWAP1 MSTORE SWAP1 POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP11 AND ISZERO PUSH2 0x1302 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH32 0x3170F63D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP3 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 DUP4 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x84 DUP3 ADD MSTORE SWAP1 DUP6 AND SWAP1 PUSH4 0x3170F63D SWAP1 PUSH1 0xA4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x11D4 JUMPI PUSH32 0x53656E646572416C6C6F77616E63654C6F770000000000000000000000000000 DUP8 DUP8 PUSH2 0x11B5 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP9 POP DUP2 MLOAD DUP2 LT PUSH2 0x11C7 JUMPI PUSH2 0x11C7 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xD1190DF900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP3 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 DUP4 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x84 DUP3 ADD MSTORE SWAP1 DUP6 AND SWAP1 PUSH4 0xD1190DF9 SWAP1 PUSH1 0xA4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x128F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12B3 SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x1302 JUMPI PUSH32 0x53656E64657242616C616E63654C6F7700000000000000000000000000000000 DUP8 DUP8 PUSH2 0x12E3 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP9 POP DUP2 MLOAD DUP2 LT PUSH2 0x12F5 JUMPI PUSH2 0x12F5 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x40944DE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE DUP3 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP2 DUP4 ADD MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x84 DUP3 ADD MSTORE SWAP1 DUP6 AND SWAP1 PUSH4 0x40944DE9 SWAP1 PUSH1 0xA4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13BD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13E1 SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x1430 JUMPI PUSH32 0x416D6F756E744F724944496E76616C6964000000000000000000000000000000 DUP8 DUP8 PUSH2 0x1411 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP9 POP DUP2 MLOAD DUP2 LT PUSH2 0x1423 JUMPI PUSH2 0x1423 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH2 0x1A0 DUP10 ADD CALLDATALOAD PUSH2 0x160 DUP11 ADD CALLDATALOAD LT ISZERO PUSH2 0x148D JUMPI PUSH32 0x416666696C69617465416D6F756E74496E76616C696400000000000000000000 DUP8 DUP8 PUSH2 0x146E DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP9 POP DUP2 MLOAD DUP2 LT PUSH2 0x1480 JUMPI PUSH2 0x1480 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST POP POP POP JUMPDEST PUSH1 0x0 PUSH1 0x9 DUP2 PUSH2 0x14A6 PUSH1 0xA0 DUP11 ADD PUSH1 0x80 DUP12 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP1 PUSH2 0x1545 JUMPI PUSH32 0x5369676E6572546F6B656E4B696E64556E6B6E6F776E00000000000000000000 DUP6 DUP6 PUSH2 0x1522 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP7 POP DUP2 MLOAD DUP2 LT PUSH2 0x1534 JUMPI PUSH2 0x1534 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH2 0x17F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x3170F63D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x3170F63D SWAP2 PUSH2 0x1599 SWAP2 DUP12 ADD SWAP1 PUSH1 0x4 ADD PUSH2 0x3183 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15DA SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x1629 JUMPI PUSH32 0x5369676E6572416C6C6F77616E63654C6F770000000000000000000000000000 DUP6 DUP6 PUSH2 0x160A DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP7 POP DUP2 MLOAD DUP2 LT PUSH2 0x161C JUMPI PUSH2 0x161C PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xD1190DF900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0xD1190DF9 SWAP2 PUSH2 0x167D SWAP2 DUP12 ADD SWAP1 PUSH1 0x4 ADD PUSH2 0x3183 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x169A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16BE SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x170D JUMPI PUSH32 0x5369676E657242616C616E63654C6F7700000000000000000000000000000000 DUP6 DUP6 PUSH2 0x16EE DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP7 POP DUP2 MLOAD DUP2 LT PUSH2 0x1700 JUMPI PUSH2 0x1700 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0x40944DE900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP2 PUSH4 0x40944DE9 SWAP2 PUSH2 0x1761 SWAP2 DUP12 ADD SWAP1 PUSH1 0x4 ADD PUSH2 0x3183 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x177E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17A2 SWAP2 SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH2 0x17F1 JUMPI PUSH32 0x416D6F756E744F724944496E76616C6964000000000000000000000000000000 DUP6 DUP6 PUSH2 0x17D2 DUP2 PUSH2 0x3094 JUMP JUMPDEST SWAP7 POP DUP2 MLOAD DUP2 LT PUSH2 0x17E4 JUMPI PUSH2 0x17E4 PUSH2 0x2FFD JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP JUMPDEST DUP5 MLOAD DUP5 EQ PUSH2 0x17FD JUMPI DUP4 DUP6 MSTORE JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1811 PUSH2 0x25B4 JUMP JUMPDEST PUSH2 0x181B PUSH1 0x0 PUSH2 0x2635 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x1825 PUSH2 0x25B4 JUMP JUMPDEST PUSH2 0x2710 DUP2 LT PUSH2 0x1860 JUMPI PUSH1 0x40 MLOAD PUSH32 0x52DADCF900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xDC0410A296E1E33943A772020D333D5F99319D7FCAD932A484C53889F7AAA2B1 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD CALLER SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 EQ PUSH2 0x1944 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E6577206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x8F7 JUMP JUMPDEST PUSH2 0x194D DUP2 PUSH2 0x2635 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1958 PUSH2 0x25B4 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x19A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6B8DF36300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x8B2A800CE9E2E7CCDF4741AE0E41B1F16983192291080AE3B78AC4296DDF598A SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 DUP3 DUP1 DUP1 DUP4 PUSH2 0x1A48 PUSH32 0x0 PUSH1 0x2 PUSH2 0x2666 JUMP JUMPDEST PUSH2 0x1A73 PUSH32 0x0 PUSH1 0x3 PUSH2 0x2666 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH32 0xF00000000000000000000000000000000000000000000000000000000000000 SWAP12 SWAP4 SWAP11 POP SWAP2 SWAP9 POP CHAINID SWAP8 POP ADDRESS SWAP7 POP SWAP5 POP SWAP3 POP SWAP1 POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP2 AND SWAP1 SWAP2 SSTORE SWAP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND SWAP3 SWAP2 DUP4 SWAP2 PUSH32 0xD7426110292F20FE59E73CCF52124E0F5440A756507C91C7B0A6C50E1EB1A23A SWAP2 SWAP1 LOG3 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x1B83 JUMPI PUSH1 0x40 MLOAD PUSH32 0xCD4B78CF00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD SWAP1 SWAP2 PUSH32 0x30468DE898BDA644E26BAB66E5A2241A3AA6AAF527257F5CA54E0F65204BA14A SWAP2 LOG3 POP JUMP JUMPDEST PUSH2 0x1C06 PUSH2 0x25B4 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x1C69 PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CBC PUSH2 0x100 DUP4 PUSH2 0x2FD5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1CCC PUSH2 0x100 DUP5 PUSH2 0x2FE9 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 DUP2 DUP4 SHR DUP2 AND SWAP1 SUB PUSH2 0x1D42 JUMPI PUSH1 0x40 MLOAD PUSH32 0x91CAB50400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x8F7 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP4 MSTORE SWAP4 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 SWAP1 SWAP2 SHL SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH32 0x0 AND PUSH2 0x1DD9 PUSH2 0x140 DUP4 ADD PUSH2 0x120 DUP5 ADD PUSH2 0x2DFC JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND EQ PUSH2 0x1E32 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD0BD721A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A0 DUP2 ADD CALLDATALOAD PUSH2 0x160 DUP3 ADD CALLDATALOAD LT ISZERO PUSH2 0x1E76 JUMPI PUSH1 0x40 MLOAD PUSH32 0x3B71BBCA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E88 PUSH1 0x60 DUP4 ADD PUSH1 0x40 DUP5 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP AND ISZERO PUSH2 0x1EE1 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND JUMPDEST PUSH2 0x1F0B DUP2 PUSH2 0x1EEE DUP5 PUSH2 0x2296 JUMP JUMPDEST PUSH2 0x1E0 DUP6 ADD DUP1 CALLDATALOAD SWAP1 PUSH2 0x200 DUP8 ADD CALLDATALOAD SWAP1 PUSH2 0xAEB SWAP1 PUSH2 0x1C0 DUP10 ADD PUSH2 0x3071 JUMP JUMPDEST PUSH2 0x1F41 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F4C DUP2 DUP4 CALLDATALOAD PUSH2 0x1CAE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP3 CALLDATALOAD LT ISZERO PUSH2 0x1FAC JUMPI PUSH1 0x40 MLOAD PUSH32 0xD24D82A400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP DUP3 PUSH1 0x20 ADD CALLDATALOAD GT PUSH2 0x1FE9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC56873BA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 PUSH2 0x206C JUMPI PUSH1 0x40 MLOAD PUSH32 0x33C8207C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP9 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP3 ADD DUP9 SWAP1 MSTORE PUSH1 0x84 DUP3 ADD DUP8 SWAP1 MSTORE DUP6 DUP2 AND PUSH1 0xA4 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC4 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x47338BC300000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP5 AND SWAP2 PUSH2 0x2119 SWAP2 PUSH2 0x3191 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2154 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2159 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x21B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x523C3AAA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP11 AND PUSH1 0x4 DUP4 ADD MSTORE DUP9 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x8F7 JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH32 0x2A55205A00000000000000000000000000000000000000000000000000000000 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND SWAP1 PUSH4 0x1FFC9A7 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2285 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x2282 SWAP2 DUP2 ADD SWAP1 PUSH2 0x30DF JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x53A JUMPI POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53A PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x23D8 SWAP1 PUSH32 0x4F726465722875696E74323536206E6F6E63652C75696E743235362065787069 DUP2 MSTORE PUSH32 0x72792C75696E743235362070726F746F636F6C4665652C506172747920736967 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6E65722C50617274792073656E6465722C6164647265737320616666696C6961 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x746557616C6C65742C75696E7432353620616666696C69617465416D6F756E74 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x2900000000000000000000000000000000000000000000000000000000000000 PUSH1 0x80 DUP3 ADD MSTORE PUSH32 0x506172747928616464726573732077616C6C65742C6164647265737320746F6B PUSH1 0x81 DUP3 ADD MSTORE PUSH32 0x656E2C627974657334206B696E642C75696E743235362069642C75696E743235 PUSH1 0xA1 DUP3 ADD MSTORE PUSH32 0x3620616D6F756E74290000000000000000000000000000000000000000000000 PUSH1 0xC1 DUP3 ADD MSTORE PUSH1 0xCA ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 PUSH1 0x0 ADD CALLDATALOAD DUP5 PUSH1 0x20 ADD CALLDATALOAD PUSH1 0x7 SLOAD PUSH32 0x224ED05DCCB4F5C1E21E6E85FB29DD6C83074E33458FDFEFB184D03FE8742F4F DUP8 PUSH1 0x40 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2431 SWAP3 SWAP2 SWAP1 PUSH2 0x31AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH32 0x224ED05DCCB4F5C1E21E6E85FB29DD6C83074E33458FDFEFB184D03FE8742F4F DUP9 PUSH1 0xE0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x247D SWAP3 SWAP2 SWAP1 PUSH2 0x31AD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH2 0x24C5 PUSH2 0x1A0 DUP11 ADD PUSH2 0x180 DUP12 ADD PUSH2 0x2E98 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP9 SWAP1 SWAP9 MSTORE DUP8 ADD SWAP6 SWAP1 SWAP6 MSTORE PUSH1 0x60 DUP7 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x80 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x1A0 DUP5 ADD CALLDATALOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH2 0x120 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x2711 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2546 DUP6 DUP6 PUSH2 0x2759 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x255F JUMPI PUSH2 0x255F PUSH2 0x31C1 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0x2597 JUMPI POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST DUP1 PUSH2 0x25A8 JUMPI POP PUSH2 0x25A8 DUP7 DUP7 DUP7 PUSH2 0x279E JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x181B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x8F7 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND SWAP1 SSTORE PUSH2 0x194D DUP2 PUSH2 0x28FB JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFF DUP4 EQ PUSH2 0x2680 JUMPI PUSH2 0x2679 DUP4 PUSH2 0x2970 JUMP JUMPDEST SWAP1 POP PUSH2 0x53A JUMP JUMPDEST DUP2 DUP1 SLOAD PUSH2 0x268C SWAP1 PUSH2 0x31F0 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 0x26B8 SWAP1 PUSH2 0x31F0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2705 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x26DA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2705 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 0x26E8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP PUSH2 0x53A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53A PUSH2 0x271E PUSH2 0x29AF JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x1901000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 MLOAD PUSH1 0x41 SUB PUSH2 0x278F JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x2783 DUP8 DUP3 DUP6 DUP6 PUSH2 0x2AEC JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x2797 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x27D5 SWAP3 SWAP2 SWAP1 PUSH2 0x323D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 MSTORE SWAP1 MLOAD PUSH2 0x285E SWAP2 SWAP1 PUSH2 0x3191 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2899 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x289E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x28B2 JUMPI POP PUSH1 0x20 DUP2 MLOAD LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x25A8 JUMPI POP DUP1 MLOAD PUSH32 0x1626BA7E00000000000000000000000000000000000000000000000000000000 SWAP1 PUSH2 0x28F0 SWAP1 DUP4 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP1 DUP5 ADD PUSH2 0x325E JUMP JUMPDEST EQ SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x297D DUP4 PUSH2 0x2BDB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 SWAP1 PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP POP SWAP2 DUP3 MSTORE POP PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x2A15 JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x2A3F JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2AE7 PUSH1 0x40 DUP1 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x0 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x0 PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x2B23 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x2BD2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP10 SWAP1 MSTORE PUSH1 0xFF DUP9 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B77 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 ADD MLOAD SWAP2 POP POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x2BCB JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x2BD2 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND PUSH1 0x1F DUP2 GT ISZERO PUSH2 0x53A JUMPI PUSH1 0x40 MLOAD PUSH32 0xB3512B0C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x194D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2C5C DUP2 PUSH2 0x2C1C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2CA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2CB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2CCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x220 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x260 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2D27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x2D32 DUP2 PUSH2 0x2C1C JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2D48 DUP6 PUSH1 0x40 DUP7 ADD PUSH2 0x2CF8 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x240 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2D70 DUP2 PUSH2 0x2C1C JUMP JUMPDEST SWAP2 POP PUSH2 0x2D7F DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x2CF8 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2DC0 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x2DA4 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x2291 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x25AD DUP3 PUSH2 0x2DCC JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2E32 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2E1A JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2E53 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2E17 JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x25AD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E3B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x25AD DUP2 PUSH2 0x2C1C JUMP JUMPDEST PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP9 AND DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 PUSH1 0xE0 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x2EF2 PUSH1 0xE0 DUP5 ADD DUP11 PUSH2 0x2E3B JUMP JUMPDEST DUP4 DUP2 SUB PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x2F04 DUP2 DUP11 PUSH2 0x2E3B JUMP JUMPDEST PUSH1 0x60 DUP6 ADD DUP10 SWAP1 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP9 AND PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0xA0 DUP6 ADD DUP8 SWAP1 MSTORE DUP5 DUP2 SUB PUSH1 0xC0 DUP7 ADD MSTORE DUP6 MLOAD DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP9 ADD SWAP4 POP SWAP1 SWAP2 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2F65 JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x2F49 JUMP JUMPDEST POP SWAP1 SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2FE4 JUMPI PUSH2 0x2FE4 PUSH2 0x2F77 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2FF8 JUMPI PUSH2 0x2FF8 PUSH2 0x2F77 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x53A JUMPI PUSH2 0x53A PUSH2 0x2FA6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3056 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x3061 DUP2 PUSH2 0x2C1C JUMP JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD MLOAD SWAP3 SWAP5 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3083 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x25AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x30C5 JUMPI PUSH2 0x30C5 PUSH2 0x2FA6 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x53A JUMPI PUSH2 0x53A PUSH2 0x2FA6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x30F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x25AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x310C DUP2 PUSH2 0x2C1C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 DUP2 AND DUP4 MSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD SWAP1 PUSH2 0x3135 DUP3 PUSH2 0x2C1C JUMP JUMPDEST AND PUSH1 0x20 DUP4 ADD MSTORE PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH2 0x3168 PUSH1 0x40 DUP4 ADD PUSH2 0x2DCC JUMP JUMPDEST AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 DUP2 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 SWAP1 DUP2 ADD CALLDATALOAD SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x53A DUP3 DUP5 PUSH2 0x3101 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x31A3 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2E17 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0xC0 DUP2 ADD PUSH2 0x25AD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3101 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3204 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D0B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x3256 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2E3B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT BALANCE SSTORE 0xCC 0x4B SWAP1 GAS 0xC1 PUSH7 0x718DC20161A38D 0x4B SWAP11 SELFBALANCE 0xBF PUSH12 0xDBE62594925918E5176B4164 PUSH20 0x6F6C634300081700330000000000000000000000 ","sourceMap":"425:15090:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1918:42;;;;;;;;188:66:34;176:79;;;158:98;;146:2;131:18;1918:42:27;;;;;;;;11384:249;;;;;;:::i;:::-;;:::i;:::-;;;911:14:34;;904:22;886:41;;874:2;859:18;11384:249:27;746:187:34;7198:268:27;;;;;;:::i;:::-;;:::i;:::-;;1101:41;;;;;;;;1704:25:34;;;1692:2;1677:18;1101:41:27;1558:177:34;7622:157:27;;;;;;:::i;:::-;;:::i;3297:2303::-;;;;;;:::i;:::-;;:::i;7977:3243::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2018:43::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4145:42:34;4133:55;;;4115:74;;4103:2;4088:18;2018:43:27;3952:243:34;1824:101:0;;;:::i;5716:242:27:-;;;;;;:::i;:::-;;:::i;1005:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1734:212:1:-;;;:::i;6080:291:27:-;;;;;;:::i;:::-;;:::i;5021:633:21:-;;;:::i;:::-;;;;;;;;;;;;;:::i;1201:85:0:-;1247:7;1273:6;;;1201:85;;1147:43:27;;1185:5;1147:43;;1052:45;;;;;;;;;;;;;;;;;;;;;1791:56;;;;;;:::i;:::-;;;;;;;;;;;;;;1852:26;;;;;;6803:152;;;:::i;6518:204::-;;;;;;:::i;:::-;;:::i;1673:54::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1882:32;;;;;;;;;847:99:1;926:13;;;;847:99;;1139:178;;;;;;:::i;:::-;;:::i;11384:249:27:-;11476:4;;11507:11;11515:3;11507:5;:11;:::i;:::-;11488:30;-1:-1:-1;11524:20:27;11547:11;11555:3;11547:5;:11;:::i;:::-;11572:20;;;;;;;:12;:20;;;;;;;;:30;;;;;;;;;;;11622:1;11572:46;;11571:52;;:57;;;;-1:-1:-1;;11384:249:27;;;;;:::o;7198:268::-;7270:9;7265:197;7281:17;;;7265:197;;;7310:13;7326:6;;7333:1;7326:9;;;;;;;:::i;:::-;;;;;;;7310:25;;7343:35;7360:10;7372:5;7343:16;:35::i;:::-;7391:25;;7405:10;;7398:5;;7391:25;;;;;-1:-1:-1;7444:3:27;;7265:197;;;;7198:268;;:::o;7622:157::-;7701:10;7679:33;;;;:21;:33;;;;;;:48;;;7738:36;7715:12;;7738:36;;;7622:157;:::o;3297:2303::-;3443:13;3450:5;3443:6;:13::i;:::-;3550:1;3519:19;;;;:12;;;:19;:::i;:::-;:33;;;;:70;;;;-1:-1:-1;3579:10:27;3556:19;;;;:12;;;:19;:::i;:::-;:33;;;;3519:70;3515:104;;;3604:15;;;;;;;;;;;;;;3515:104;3664:161;3681:10;3699:19;;;;:12;;;:19;:::i;:::-;3726;;;;3753:15;;;;3776:18;;;;;;;;:::i;:::-;3802:17;;;;;;;;:::i;:::-;3664:9;:161::i;:::-;3873:160;3890:19;;;;:12;;;:19;:::i;:::-;3917:9;3934:19;;;;3961:15;;;;3984:18;3934:19;3984:18;;3961:15;3984:18;;;:::i;:::-;4010:17;;;;;;;;:::i;3873:160::-;4131:1;4098:21;;;;;;;;:::i;:::-;:35;;;4094:235;;4143:179;4162:10;4182:21;;;;;;;;:::i;:::-;4213;;;;4244:15;;;;4269:18;;;;;;;;:::i;4143:179::-;4427:11;;4376:25;;1185:5;;4405:33;;:19;;;;:33;:::i;:::-;4404:55;;;;:::i;:::-;4376:83;-1:-1:-1;4469:21:27;;4465:213;;4539:17;;4500:171;;4519:10;;4539:17;;4566;4593:15;;;;4618:18;;;;4539:17;4618:18;;;:::i;:::-;4646:17;;;;;;;;:::i;4500:171::-;4752:37;4770:18;;;;;;;;:::i;:::-;4752:17;:37::i;:::-;4748:552;;;4799:24;;4905:18;;;;;;;;:::i;:::-;4946:12;4896:87;;;;4946:15;;;;4896:87;;;8176:25:34;4963:19:27;;;;8217:18:34;;;8210:34;4896:49:27;;;;;;;;8149:18:34;;4896:87:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4860:123;;-1:-1:-1;4860:123:27;-1:-1:-1;4995:17:27;;4991:303;;5044:10;5028:13;:26;5024:71;;;5063:32;;;;;;;;1704:25:34;;;1677:18;;5063:32:27;;;;;;;;5024:71;5105:180;5126:10;5148:16;5176:13;5201:15;;;;5228:18;;;;;;;;:::i;:::-;5258:17;;;;;;;;:::i;5105:180::-;4791:509;;4748:552;5445:10;5342:19;;;;:12;;;:19;:::i;:::-;5311:284;;5323:11;;5311:284;5369:19;;;;5396:15;;;;5419:18;5369:19;5419:18;;5396:15;5419:18;;;:::i;:::-;5463:19;;;;5490:15;;;;5513:18;;;;;;;;:::i;:::-;5539:21;;;;;;;;:::i;:::-;5311:284;;;8915:25:34;;;8971:2;8956:18;;8949:34;;;;9002:42;9080:15;;;9060:18;;;9053:43;;;;9127:2;9112:18;;9105:34;;;;9170:3;9155:19;;9148:35;9220:15;;9214:3;9199:19;;9192:44;9273:15;9267:3;9252:19;;9245:44;5568:21:27;;;;9320:3:34;9305:19;;9298:35;8902:3;8887:19;5311:284:27;;;;;;;3397:2203;3297:2303;;;:::o;7977:3243::-;8121:30;;;1237:2;8121:30;;;;;;;;;8071:16;;8095:23;;8121:30;;;;;;;;;;;-1:-1:-1;;8095:56:27;-1:-1:-1;8157:13:27;;8248:19;;;;:12;;;:19;:::i;:::-;8277:35;:21;;;8310:1;8277:21;;;:10;:21;;;;;;8228:39;;-1:-1:-1;8277:21:27;:35;8273:89;;8334:21;;;;;;;;:10;:21;;;;;;;8273:89;8380:146;8426:9;8445:20;8459:5;8445:13;:20::i;:::-;8492:7;;;;;;8501;;;;;8510;;;;;;:::i;:::-;8475:43;;;;;;;;;9988:19:34;;;10032:2;10023:12;;10016:28;;;;10082:3;10078:16;10096:66;10074:89;10069:2;10060:12;;10053:111;10189:2;10180:12;;9807:391;8475:43:27;;;;;;;;;;;;;8380:36;:146::i;:::-;8368:412;;8541:32;:6;8548:7;;;;:::i;:::-;;;8541:15;;;;;;;;:::i;:::-;;;;;;:32;;;;;8368:412;;;8590:33;8600:9;8611:11;;8590:9;:33::i;:::-;8586:194;;;8633:36;:6;8640:7;;;;:::i;8586:194::-;8700:32;;;;;;;:21;:32;;;;;;8686:11;;:46;8682:98;;;8742:31;:6;8749:7;;;;:::i;:::-;;;8742:15;;;;;;;;:::i;:::-;;;;;;:31;;;;;8682:98;8805:15;8790:5;:12;;;:30;8786:83;;;8830:32;:6;8837:7;;;;:::i;:::-;;;8830:15;;;;;;;;:::i;:::-;;;;;;:32;;;;;8786:83;8917:1;8886:19;;;;:12;;;:19;:::i;:::-;:33;;;;:72;;;;-1:-1:-1;8923:35:27;;;:19;;;;:12;;;:19;:::i;:::-;:35;;;;8886:72;8875:138;;;8973:33;:6;8980:7;;;;:::i;:::-;;;8973:15;;;;;;;;:::i;:::-;;;;;;:33;;;;;8875:138;9019:27;9049:8;9019:27;9058:17;;;;;;;;:::i;:::-;9049:27;;;;;;;;;;;;;-1:-1:-1;9049:27:27;;;;;-1:-1:-1;9049:27:27;9083:1440;;9138:42;:6;9145:7;;;;:::i;:::-;;;9138:15;;;;;;;;:::i;:::-;;;;;;:42;;;;;9083:1440;;;9205:39;9226:18;9205:39;:17;;;;;;;;:::i;:::-;:39;;;9201:1316;;9256:38;:6;9263:7;;;;:::i;9201:1316::-;9370:11;;9319:25;;1185:5;;9348:33;;:19;;;;:33;:::i;:::-;9347:59;;;;:::i;:::-;9319:87;-1:-1:-1;9416:25:27;9506:21;;;;9444:49;9319:87;9444:19;;;;:49;:::i;:::-;:83;;;;:::i;:::-;9416:111;-1:-1:-1;9541:37:27;9559:18;;;;;;;;:::i;9541:37::-;9537:254;;;9595:21;9629:18;;;;;;;;:::i;:::-;9674:12;9620:114;;;;9674:15;;;;9620:114;;;8176:25:34;9703:19:27;;;;8217:18:34;;;8210:34;9620:40:27;;;;;;;;8149:18:34;;9620:114:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9592:142;-1:-1:-1;9746:34:27;;-1:-1:-1;9592:142:27;9746:34;;:::i;:::-;;;9580:211;9537:254;9822:154;;;;;;;;;;;;;;9800:19;;9822:154;;;9863:18;;;;;;;;:::i;:::-;9822:154;;;;;;9893:17;;;;;;;;:::i;:::-;9822:154;;;;9922:15;;;;9822:154;;;;;;;;;9800:176;-1:-1:-1;9990:26:27;;;;9986:283;;10035:39;;;;;;10809:13:34;;10035:31:27;10805:22:34;;;10035:39:27;;;10787:41:34;10888:4;10876:17;;10870:24;10866:33;;10844:20;;;10837:63;10948:17;;;10942:24;10968:66;10938:97;10916:20;;;10909:127;11092:4;11080:17;;11074:24;11052:20;;;11045:54;11155:4;11143:17;;11137:24;11115:20;;;11108:54;10035:31:27;;;;;;10698:19:34;;10035:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10030:111;;10090:38;:6;10097:7;;;;:::i;:::-;;;10090:15;;;;;;;;:::i;:::-;;;;;;:38;;;;;10030:111;10157:37;;;;;;10809:13:34;;10157:29:27;10805:22:34;;;10157:37:27;;;10787:41:34;10888:4;10876:17;;10870:24;10866:33;;10844:20;;;10837:63;10948:17;;;10942:24;10968:66;10938:97;10916:20;;;10909:127;11092:4;11080:17;;11074:24;11052:20;;;11045:54;11155:4;11143:17;;11137:24;11115:20;;;11108:54;10157:29:27;;;;;;10698:19:34;;10157:37:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10152:107;;10210:36;:6;10217:7;;;;:::i;:::-;;;10210:15;;;;;;;;:::i;:::-;;;;;;:36;;;;;10152:107;10283:41;;;;;;10809:13:34;;10283:33:27;10805:22:34;;;10283:41:27;;;10787::34;10888:4;10876:17;;10870:24;10866:33;;10844:20;;;10837:63;10948:17;;;10942:24;10968:66;10938:97;10916:20;;;10909:127;11092:4;11080:17;;11074:24;11052:20;;;11045:54;11155:4;11143:17;;11137:24;11115:20;;;11108:54;10283:33:27;;;;;;10698:19:34;;10283:41:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10278:108;;10338:37;:6;10345:7;;;;:::i;:::-;;;10338:15;;;;;;;;:::i;:::-;;;;;;:37;;;;;10278:108;10421:21;;;;10399:19;;;;:43;10395:114;;;10456:42;:6;10463:7;;;;:::i;:::-;;;10456:15;;;;;;;;:::i;:::-;;;;;;:42;;;;;10395:114;9309:1208;;;9201:1316;10529:27;10559:8;10529:27;10568:17;;;;;;;;:::i;:::-;10559:27;;;;;;;;;;;;;-1:-1:-1;10559:27:27;;;;;-1:-1:-1;10559:27:27;10593:462;;10648:42;:6;10655:7;;;;:::i;:::-;;;10648:15;;;;;;;;:::i;:::-;;;;;;:42;;;;;10593:462;;;10748:12;10716:45;;;;;:31;;;;;;:45;;10748:12;;;10716:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10711:109;;10773:38;:6;10780:7;;;;:::i;:::-;;;10773:15;;;;;;;;:::i;:::-;;;;;;:38;;;;;10711:109;10862:12;10832:43;;;;;:29;;;;;;:43;;10862:12;;;10832:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10827:105;;10887:36;:6;10894:7;;;;:::i;:::-;;;10887:15;;;;;;;;:::i;:::-;;;;;;:36;;;;;10827:105;10978:12;10944:47;;;;;:33;;;;;;:47;;10978:12;;;10944:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10939:110;;11003:37;:6;11010:7;;;;:::i;:::-;;;11003:15;;;;;;;;:::i;:::-;;;;;;:37;;;;;10939:110;11119:6;:13;11110:5;:22;11106:90;;11176:5;11168:6;11161:21;11106:90;-1:-1:-1;11209:6:27;;7977:3243;-1:-1:-1;;;;;;7977:3243:27:o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;5716:242:27:-;1094:13:0;:11;:13::i;:::-;1185:5:27::1;5834:12;:27;5830:52;;5870:12;;;;;;;;;;;;;;5830:52;5888:11;:26:::0;;;5925:28:::1;::::0;1704:25:34;;;5925:28:27::1;::::0;1692:2:34;1677:18;5925:28:27::1;;;;;;;5716:242:::0;:::o;1734:212:1:-;926:13;;734:10:15;;1833:24:1;926:13;1833:24;;1825:78;;;;;;;12580:2:34;1825:78:1;;;12562:21:34;12619:2;12599:18;;;12592:30;12658:34;12638:18;;;12631:62;12729:11;12709:18;;;12702:39;12758:19;;1825:78:1;12378:405:34;1825:78:1;1913:26;1932:6;1913:18;:26::i;:::-;1776:170;1734:212::o;6080:291:27:-;1094:13:0;:11;:13::i;:::-;6212:32:27::1;::::0;::::1;6208:63;;6253:18;;;;;;;;;;;;;;6208:63;6277:17;:38:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;6326:40:::1;::::0;::::1;::::0;-1:-1:-1;;6326:40:27::1;6080:291:::0;:::o;5021:633:21:-;5136:13;5163:18;;5136:13;;;5163:18;5427:41;:5;5454:13;5427:26;:41::i;:::-;5482:47;:8;5512:16;5482:29;:47::i;:::-;5621:16;;;5605:1;5621:16;;;;;;;;;5376:271;;;;-1:-1:-1;5376:271:21;;-1:-1:-1;5543:13:21;;-1:-1:-1;5578:4:21;;-1:-1:-1;5605:1:21;-1:-1:-1;5621:16:21;-1:-1:-1;5376:271:21;-1:-1:-1;5021:633:21:o;6803:152:27:-;6870:10;6845:11;6859:22;;;:10;:22;;;;;;;;6887:29;;;;;;6927:23;;6859:22;;;;;6870:10;6859:22;;6927:23;;6845:11;6927:23;6839:116;6803:152::o;6518:204::-;6584:23;;;6580:54;;6616:18;;;;;;;;;;;;;;6580:54;6651:10;6640:22;;;;:10;:22;;;;;;:34;;;;:22;:34;;;;;;;;6685:32;;6640:34;;6685:32;;;6518:204;:::o;1139:178:1:-;1094:13:0;:11;:13::i;:::-;1228::1::1;:24:::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;1292:7:::1;1247::0::0;1273:6;;;;1201:85;1292:7:1::1;1267:43;;;;;;;;;;;;1139:178:::0;:::o;11850:411:27:-;11924:16;11943:11;11951:3;11943:5;:11;:::i;:::-;11924:30;-1:-1:-1;11960:20:27;11983:11;11991:3;11983:5;:11;:::i;:::-;12016:23;;;12000:13;12016:23;;;:12;:23;;;;;;;;:33;;;;;;;;;11960:34;;-1:-1:-1;12125:1:27;12100:21;;;12099:27;;:32;;12095:83;;12148:23;;;;;;;;1704:25:34;;;1677:18;;12148:23:27;1558:177:34;12095:83:27;12184:23;;;;;;;;:12;:23;;;;;;;;:33;;;;;;;;;;12237:1;12229:26;;;12220:36;;;;12184:72;;;-1:-1:-1;11850:411:27:o;12725:1143::-;12833:39;12854:18;12833:39;:17;;;;;;;;:::i;:::-;:39;;;12829:72;;12881:20;;;;;;;;;;;;;;12829:72;12999:21;;;;12977:19;;;;:43;12973:86;;;13035:24;;;;;;;;;;;;;;12973:86;13117:17;13137:19;;;;:12;;;:19;:::i;:::-;13166:35;:21;;;13199:1;13166:21;;;:10;:21;;;;;;13117:39;;-1:-1:-1;13166:21:27;:35;13162:89;;13223:21;;;;;;;;:10;:21;;;;;;;13162:89;13322:146;13368:9;13387:20;13401:5;13387:13;:20::i;:::-;13434:7;;;;;;13443;;;;;13452;;;;;;:::i;13322:146::-;13310:186;;13482:14;;;;;;;;;;;;;;13310:186;13567:40;13584:9;13595:11;;13567:16;:40::i;:::-;13705:32;;;;;;;:21;:32;;;;;;13691:11;;:46;13687:72;;;13746:13;;;;;;;;;;;;;;13687:72;13825:15;13809:5;:12;;;:31;13805:58;;13849:14;;;;;;;;;;;;;;13805:58;12771:1097;12725:1143;:::o;14947:566::-;15109:14;;;15090:16;15109:14;;;:8;:14;;;;;;;;;15129:61;;15172:18;;;;;;;;;;;;;;15129:61;15317:134;;;15280:29;13126:15:34;;;15317:134:27;;;13108:34:34;13178:15;;;13158:18;;;13151:43;13210:18;;;13203:34;;;13253:18;;;13246:34;;;13317:15;;;13296:19;;;;13289:44;;;;15317:134:27;;;;;;;;;;13019:19:34;;;;15317:134:27;;;;;;;;;15349:25;15317:134;;;15280:177;;-1:-1:-1;;15280:29:27;;;:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15261:196;;;15468:7;15463:45;;15484:24;;;;;13820:42:34;13889:15;;;15484:24:27;;;13871:34:34;13941:15;;13921:18;;;13914:43;13783:18;;15484:24:27;13636:327:34;15463:45:27;15084:429;;14947:566;;;;;;:::o;12374:241::-;12454:60;;;;;12487:26;12454:60;;;158:98:34;12438:4:27;;12454:32;;;;;;131:18:34;;12454:60:27;;;;;;;;;;;;;;;;;;-1:-1:-1;12454:60:27;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;12450:161;;-1:-1:-1;12599:5:27;;12374:241;-1:-1:-1;12374:241:27:o;12450:161::-;12374:241;;;:::o;14084:491::-;14151:7;14179:391;537:250;;;;;;14283:34:34;14271:47;;14348:34;14343:2;14334:12;;14327:56;14413:34;14408:2;14399:12;;14392:56;14478:34;14473:2;14464:12;;14457:56;14544:3;14538;14529:13;;14522:26;14579:34;14573:3;14564:13;;14557:57;14645:34;14639:3;14630:13;;14623:57;14711:11;14705:3;14696:13;;14689:34;14748:3;14739:13;;13968:790;537:250:27;;;;;;;;;;;;;520:273;;;;;;14278:5;:11;;;14303:5;:12;;;14329:11;;844:98;14391:5;:12;;14364:40;;;;;;;;;:::i;:::-;;;;;;;;;;;;;14354:51;;;;;;844:98;14456:5;:12;;14429:40;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;14419:51;;14429:40;14419:51;;;;14484:21;;;;;;;;:::i;:::-;14226:326;;;;;;15434:25:34;;;;15475:18;;15468:34;;;;15518:18;;;15511:34;;;;15561:18;;;15554:34;;;;15604:19;;;15597:35;15648:19;;;15641:35;15725:42;15713:55;15692:19;;;15685:84;14519:21:27;;;;15785:19:34;;;15778:35;15406:19;;14226:326:27;;;;;;;;;;;;14205:357;;;;;;14179:16;:391::i;1014:366:22:-;1120:4;1137:17;1156:24;1184:33;1201:4;1207:9;1184:16;:33::i;:::-;1136:81;;-1:-1:-1;1136:81:22;-1:-1:-1;1256:26:22;1247:5;:35;;;;;;;;:::i;:::-;;:58;;;;;1299:6;1286:19;;:9;:19;;;1247:58;1246:127;;;;1322:51;1349:6;1357:4;1363:9;1322:26;:51::i;:::-;1227:146;;;;1014:366;;;;;;:::o;1359:130:0:-;1247:7;1273:6;1422:23;1273:6;734:10:15;1422:23:0;1414:68;;;;;;;16215:2:34;1414:68:0;;;16197:21:34;;;16234:18;;;16227:30;16293:34;16273:18;;;16266:62;16345:18;;1414:68:0;16013:356:34;1501:153:1;1590:13;1583:20;;;;;;1613:34;1638:8;1613:24;:34::i;3367:268:17:-;3461:13;1371:66;3490:47;;3486:143;;3560:15;3569:5;3560:8;:15::i;:::-;3553:22;;;;3486:143;3613:5;3606:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4768:165:21;4845:7;4871:55;4893:20;:18;:20::i;:::-;4915:10;8536:4:20;8530:11;8566:10;8554:23;;8606:4;8597:14;;8590:39;;;;8658:4;8649:14;;8642:34;8712:4;8697:20;;;8336:397;2145:730;2226:7;2235:12;2263:9;:16;2283:2;2263:22;2259:610;;2599:4;2584:20;;2578:27;2648:4;2633:20;;2627:27;2705:4;2690:20;;2684:27;2301:9;2676:36;2746:25;2757:4;2676:36;2578:27;2627;2746:10;:25::i;:::-;2739:32;;;;;;;;;2259:610;-1:-1:-1;2818:1:20;;-1:-1:-1;2822:35:20;2259:610;2145:730;;;;;:::o;1786:473:22:-;1929:4;1946:12;1960:19;1983:6;:17;;2037:34;;;2073:4;2079:9;2014:75;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1983:116;;;;2014:75;1983:116;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1945:154;;;;2117:7;:42;;;;;2157:2;2140:6;:13;:19;;2117:42;:134;;;;-1:-1:-1;2175:29:22;;2216:34;;2175:29;;;;;;;;;;;;:::i;:::-;:76;;1786:473;-1:-1:-1;;;;;;1786:473:22:o;2426:187:0:-;2499:16;2518:6;;;2534:17;;;;;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;2059:405:17:-;2118:13;2143:11;2157:16;2168:4;2157:10;:16::i;:::-;2281:14;;;2292:2;2281:14;;;;;;;;;2143:30;;-1:-1:-1;2261:17:17;;2281:14;;;;;;;;;-1:-1:-1;;;2371:16:17;;;-1:-1:-1;2416:4:17;2407:14;;2400:28;;;;-1:-1:-1;2371:16:17;2059:405::o;3695:262:21:-;3748:7;3779:4;3771:28;3788:11;3771:28;;:63;;;;;3820:14;3803:13;:31;3771:63;3767:184;;;-1:-1:-1;3857:22:21;;3695:262::o;3767:184::-;3917:23;4054:81;;;1929:95;4054:81;;;17961:25:34;4077:11:21;18002:18:34;;;17995:34;;;;4090:14:21;18045:18:34;;;18038:34;4106:13:21;18088:18:34;;;18081:34;4129:4:21;18131:19:34;;;18124:84;4018:7:21;;17933:19:34;;4054:81:21;;;;;;;;;;;;4044:92;;;;;;4037:99;;3963:180;;3917:23;3910:30;;3695:262;:::o;5009:1456:20:-;5097:7;;6021:66;6008:79;;6004:161;;;-1:-1:-1;6119:1:20;;-1:-1:-1;6123:30:20;6103:51;;6004:161;6276:24;;;6259:14;6276:24;;;;;;;;;17526:25:34;;;17599:4;17587:17;;17567:18;;;17560:45;;;;17621:18;;;17614:34;;;17664:18;;;17657:34;;;6276:24:20;;17498:19:34;;6276:24:20;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6276:24:20;;;;;;-1:-1:-1;;6314:20:20;;;6310:101;;6366:1;6370:29;6350:50;;;;;;;6310:101;6429:6;-1:-1:-1;6437:20:20;;-1:-1:-1;5009:1456:20;;;;;;;;:::o;2536:245:17:-;2597:7;2669:4;2633:40;;2696:2;2687:11;;2683:69;;;2721:20;;;;;;;;;;;;;;267:154:34;353:42;346:5;342:54;335:5;332:65;322:93;;411:1;408;401:12;426:315;494:6;502;555:2;543:9;534:7;530:23;526:32;523:52;;;571:1;568;561:12;523:52;610:9;597:23;629:31;654:5;629:31;:::i;:::-;679:5;731:2;716:18;;;;703:32;;-1:-1:-1;;;426:315:34:o;938:615::-;1024:6;1032;1085:2;1073:9;1064:7;1060:23;1056:32;1053:52;;;1101:1;1098;1091:12;1053:52;1141:9;1128:23;1170:18;1211:2;1203:6;1200:14;1197:34;;;1227:1;1224;1217:12;1197:34;1265:6;1254:9;1250:22;1240:32;;1310:7;1303:4;1299:2;1295:13;1291:27;1281:55;;1332:1;1329;1322:12;1281:55;1372:2;1359:16;1398:2;1390:6;1387:14;1384:34;;;1414:1;1411;1404:12;1384:34;1467:7;1462:2;1452:6;1449:1;1445:14;1441:2;1437:23;1433:32;1430:45;1427:65;;;1488:1;1485;1478:12;1427:65;1519:2;1511:11;;;;;1541:6;;-1:-1:-1;938:615:34;;-1:-1:-1;;;;938:615:34:o;1740:180::-;1799:6;1852:2;1840:9;1831:7;1827:23;1823:32;1820:52;;;1868:1;1865;1858:12;1820:52;-1:-1:-1;1891:23:34;;1740:180;-1:-1:-1;1740:180:34:o;1925:154::-;1983:5;2028:3;2019:6;2014:3;2010:16;2006:26;2003:46;;;2045:1;2042;2035:12;2003:46;-1:-1:-1;2067:6:34;1925:154;-1:-1:-1;1925:154:34:o;2084:438::-;2186:6;2194;2202;2255:3;2243:9;2234:7;2230:23;2226:33;2223:53;;;2272:1;2269;2262:12;2223:53;2311:9;2298:23;2330:31;2355:5;2330:31;:::i;:::-;2380:5;-1:-1:-1;2432:2:34;2417:18;;2404:32;;-1:-1:-1;2455:61:34;2508:7;2503:2;2488:18;;2455:61;:::i;:::-;2445:71;;2084:438;;;;;:::o;2527:370::-;2620:6;2628;2681:3;2669:9;2660:7;2656:23;2652:33;2649:53;;;2698:1;2695;2688:12;2649:53;2737:9;2724:23;2756:31;2781:5;2756:31;:::i;:::-;2806:5;-1:-1:-1;2830:61:34;2883:7;2878:2;2863:18;;2830:61;:::i;:::-;2820:71;;2527:370;;;;;:::o;2902:632::-;3073:2;3125:21;;;3195:13;;3098:18;;;3217:22;;;3044:4;;3073:2;3296:15;;;;3270:2;3255:18;;;3044:4;3339:169;3353:6;3350:1;3347:13;3339:169;;;3414:13;;3402:26;;3483:15;;;;3448:12;;;;3375:1;3368:9;3339:169;;;-1:-1:-1;3525:3:34;;2902:632;-1:-1:-1;;;;;;2902:632:34:o;3539:219::-;3606:20;;3666:66;3655:78;;3645:89;;3635:117;;3748:1;3745;3738:12;3763:184;3821:6;3874:2;3862:9;3853:7;3849:23;3845:32;3842:52;;;3890:1;3887;3880:12;3842:52;3913:28;3931:9;3913:28;:::i;4200:250::-;4285:1;4295:113;4309:6;4306:1;4303:13;4295:113;;;4385:11;;;4379:18;4366:11;;;4359:39;4331:2;4324:10;4295:113;;;-1:-1:-1;;4442:1:34;4424:16;;4417:27;4200:250::o;4455:330::-;4497:3;4535:5;4529:12;4562:6;4557:3;4550:19;4578:76;4647:6;4640:4;4635:3;4631:14;4624:4;4617:5;4613:16;4578:76;:::i;:::-;4699:2;4687:15;4704:66;4683:88;4674:98;;;;4774:4;4670:109;;4455:330;-1:-1:-1;;4455:330:34:o;4790:220::-;4939:2;4928:9;4921:21;4902:4;4959:45;5000:2;4989:9;4985:18;4977:6;4959:45;:::i;5015:247::-;5074:6;5127:2;5115:9;5106:7;5102:23;5098:32;5095:52;;;5143:1;5140;5133:12;5095:52;5182:9;5169:23;5201:31;5226:5;5201:31;:::i;5267:1335::-;5664:66;5656:6;5652:79;5641:9;5634:98;5615:4;5751:2;5789:3;5784:2;5773:9;5769:18;5762:31;5816:46;5857:3;5846:9;5842:19;5834:6;5816:46;:::i;:::-;5910:9;5902:6;5898:22;5893:2;5882:9;5878:18;5871:50;5944:33;5970:6;5962;5944:33;:::i;:::-;6008:2;5993:18;;5986:34;;;6069:42;6057:55;;6051:3;6036:19;;6029:84;6144:3;6129:19;;6122:35;;;6194:22;;;6188:3;6173:19;;6166:51;6266:13;;6288:22;;;6338:2;6364:15;;;;-1:-1:-1;6326:15:34;;;;-1:-1:-1;6407:169:34;6421:6;6418:1;6415:13;6407:169;;;6482:13;;6470:26;;6551:15;;;;6516:12;;;;6443:1;6436:9;6407:169;;;-1:-1:-1;6593:3:34;;5267:1335;-1:-1:-1;;;;;;;;;;;;5267:1335:34:o;7020:184::-;7072:77;7069:1;7062:88;7169:4;7166:1;7159:15;7193:4;7190:1;7183:15;7209:184;7261:77;7258:1;7251:88;7358:4;7355:1;7348:15;7382:4;7379:1;7372:15;7398:120;7438:1;7464;7454:35;;7469:18;;:::i;:::-;-1:-1:-1;7503:9:34;;7398:120::o;7523:112::-;7555:1;7581;7571:35;;7586:18;;:::i;:::-;-1:-1:-1;7620:9:34;;7523:112::o;7640:184::-;7692:77;7689:1;7682:88;7789:4;7786:1;7779:15;7813:4;7810:1;7803:15;7829:168;7902:9;;;7933;;7950:15;;;7944:22;;7930:37;7920:71;;7971:18;;:::i;8255:312::-;8334:6;8342;8395:2;8383:9;8374:7;8370:23;8366:32;8363:52;;;8411:1;8408;8401:12;8363:52;8443:9;8437:16;8462:31;8487:5;8462:31;:::i;:::-;8557:2;8542:18;;;;8536:25;8512:5;;8536:25;;-1:-1:-1;;;8255:312:34:o;9533:269::-;9590:6;9643:2;9631:9;9622:7;9618:23;9614:32;9611:52;;;9659:1;9656;9649:12;9611:52;9698:9;9685:23;9748:4;9741:5;9737:16;9730:5;9727:27;9717:55;;9768:1;9765;9758:12;10203:195;10242:3;10273:66;10266:5;10263:77;10260:103;;10343:18;;:::i;:::-;-1:-1:-1;10390:1:34;10379:13;;10203:195::o;10403:125::-;10468:9;;;10489:10;;;10486:36;;;10502:18;;:::i;11173:277::-;11240:6;11293:2;11281:9;11272:7;11268:23;11264:32;11261:52;;;11309:1;11306;11299:12;11261:52;11341:9;11335:16;11394:5;11387:13;11380:21;11373:5;11370:32;11360:60;;11416:1;11413;11406:12;11455:661;11551:5;11538:19;11566:33;11591:7;11566:33;:::i;:::-;11618:42;11681:16;;;11669:29;;11746:4;11735:16;;11722:30;;11761:33;11722:30;11761:33;:::i;:::-;11826:16;11819:4;11810:14;;11803:40;11916:66;11879:35;11908:4;11897:16;;11879:35;:::i;:::-;11875:108;11868:4;11859:14;;11852:132;12040:4;12029:16;;;12016:30;12000:14;;;11993:54;12103:4;12092:16;;;12079:30;12063:14;;12056:54;11455:661::o;12121:252::-;12303:3;12288:19;;12316:51;12292:9;12349:6;12316:51;:::i;13344:287::-;13473:3;13511:6;13505:13;13527:66;13586:6;13581:3;13574:4;13566:6;13562:17;13527:66;:::i;:::-;13609:16;;;;;13344:287;-1:-1:-1;;13344:287:34:o;14763:323::-;14986:25;;;14973:3;14958:19;;15020:60;15076:2;15061:18;;15053:6;15020:60;:::i;15824:184::-;15876:77;15873:1;15866:88;15973:4;15970:1;15963:15;15997:4;15994:1;15987:15;16374:437;16453:1;16449:12;;;;16496;;;16517:61;;16571:4;16563:6;16559:17;16549:27;;16517:61;16624:2;16616:6;16613:14;16593:18;16590:38;16587:218;;16661:77;16658:1;16651:88;16762:4;16759:1;16752:15;16790:4;16787:1;16780:15;16816:289;16991:6;16980:9;16973:25;17034:2;17029;17018:9;17014:18;17007:30;16954:4;17054:45;17095:2;17084:9;17080:18;17072:6;17054:45;:::i;:::-;17046:53;16816:289;-1:-1:-1;;;;16816:289:34:o;17110:184::-;17180:6;17233:2;17221:9;17212:7;17208:23;17204:32;17201:52;;;17249:1;17246;17239:12;17201:52;-1:-1:-1;17272:16:34;;17110:184;-1:-1:-1;17110:184:34:o"},"methodIdentifiers":{"DOMAIN_NAME()":"796f077b","DOMAIN_SEPARATOR()":"3644e515","DOMAIN_VERSION()":"acb8cc49","FEE_DIVISOR()":"9e93ad8e","acceptOwnership()":"79ba5097","adapters(bytes4)":"6e038752","authorize(address)":"b6a5d7de","authorized(address)":"b9181611","cancel(uint256[])":"2e340823","cancelUpTo(uint256)":"3c641910","check(address,(uint256,uint256,(address,address,bytes4,uint256,uint256),(address,address,bytes4,uint256,uint256),address,uint256,uint8,bytes32,bytes32))":"49b8a932","eip712Domain()":"84b0196e","nonceUsed(address,uint256)":"1647795e","owner()":"8da5cb5b","pendingOwner()":"e30c3978","protocolFee()":"b0e21e8a","protocolFeeWallet()":"cbf7c6c3","renounceOwnership()":"715018a6","requiredSenderKind()":"06a6ea74","revoke()":"b6549f75","setProtocolFee(uint256)":"787dce3d","setProtocolFeeWallet(address)":"7ce78525","signatoryMinimumNonce(address)":"b0dd4943","swap(address,uint256,(uint256,uint256,(address,address,bytes4,uint256,uint256),(address,address,bytes4,uint256,uint256),address,uint256,uint8,bytes32,bytes32))":"48542105","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IAdapter[]\",\"name\":\"_adapters\",\"type\":\"address[]\"},{\"internalType\":\"bytes4\",\"name\":\"_requiredSenderKind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"_protocolFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_protocolFeeWallet\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AdaptersInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AffiliateAmountInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeWalletInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"NonceAlreadyUsed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonceTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"RoyaltyExceedsMax\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderTokenInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatoryInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatoryUnauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureInvalid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenKindUnknown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signerWallet\",\"type\":\"address\"}],\"name\":\"Authorize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signerWallet\",\"type\":\"address\"}],\"name\":\"Cancel\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signerWallet\",\"type\":\"address\"}],\"name\":\"CancelUpTo\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signerWallet\",\"type\":\"address\"}],\"name\":\"Revoke\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"}],\"name\":\"SetProtocolFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"feeWallet\",\"type\":\"address\"}],\"name\":\"SetProtocolFeeWallet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signerWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"signerAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"signerId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"signerToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"senderWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"senderAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"senderId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"senderToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"affiliateWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"affiliateAmount\",\"type\":\"uint256\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE_DIVISOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"adapters\",\"outputs\":[{\"internalType\":\"contract IAdapter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signatory\",\"type\":\"address\"}],\"name\":\"authorize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"authorized\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nonces\",\"type\":\"uint256[]\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minimumNonce\",\"type\":\"uint256\"}],\"name\":\"cancelUpTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"senderWallet\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"signer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"sender\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"affiliateWallet\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"affiliateAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct ISwap.Order\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"nonceUsed\",\"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\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requiredSenderKind\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_protocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_protocolFeeWallet\",\"type\":\"address\"}],\"name\":\"setProtocolFeeWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"signatoryMinimumNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxRoyalty\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"signer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"sender\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"affiliateWallet\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"affiliateAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct ISwap.Order\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"authorize(address)\":{\"details\":\"Emits an Authorize event\",\"params\":{\"signatory\":\"address Wallet of the signer to authorize\"}},\"cancel(uint256[])\":{\"details\":\"Cancelled nonces are marked as usedEmits a Cancel eventOut of gas may occur in arrays of length > 400\",\"params\":{\"nonces\":\"uint256[] List of nonces to cancel\"}},\"cancelUpTo(uint256)\":{\"details\":\"Emits a CancelUpTo event\",\"params\":{\"minimumNonce\":\"uint256 Minimum valid nonce\"}},\"check(address,(uint256,uint256,(address,address,bytes4,uint256,uint256),(address,address,bytes4,uint256,uint256),address,uint256,uint8,bytes32,bytes32))\":{\"params\":{\"order\":\"Order that would be settled\",\"senderWallet\":\"address Wallet that would send the order\"},\"returns\":{\"_0\":\"bytes32[] errors\"}},\"constructor\":{\"details\":\"Sets domain and version for EIP712 signatures\",\"params\":{\"_adapters\":\"IAdapter[] array of token adapters\",\"_protocolFee\":\"uin256 protocol fee to be assessed on swaps\",\"_protocolFeeWallet\":\"address destination for protocol fees\"}},\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"},\"nonceUsed(address,uint256)\":{\"params\":{\"nonce\":\"uint256 Nonce being checked\",\"signer\":\"address Address of the signer\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"revoke()\":{\"details\":\"Emits a Revoke event\"},\"setProtocolFee(uint256)\":{\"params\":{\"_protocolFee\":\"uint256 Value of the fee in basis points\"}},\"setProtocolFeeWallet(address)\":{\"params\":{\"_protocolFeeWallet\":\"address Wallet to transfer fee to\"}},\"swap(address,uint256,(uint256,uint256,(address,address,bytes4,uint256,uint256),(address,address,bytes4,uint256,uint256),address,uint256,uint8,bytes32,bytes32))\":{\"params\":{\"maxRoyalty\":\"uint256 Max to avoid unexpected royalties\",\"order\":\"Order to settle\",\"recipient\":\"address Wallet to receive sender proceeds\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner.\"}},\"stateVariables\":{\"_nonceGroups\":{\"details\":\"The nonce group is computed as nonce / 256, so each group of 256 sequential nonces uses the same keyThe nonce states are encoded as 256 bits, for each nonce in the group 0 means available and 1 means used\"}},\"title\":\"AirSwap: Atomic Token Swap\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"authorize(address)\":{\"notice\":\"Authorize a signer\"},\"cancel(uint256[])\":{\"notice\":\"Cancel one or more nonces\"},\"cancelUpTo(uint256)\":{\"notice\":\"Cancels all orders below a nonce value\"},\"check(address,(uint256,uint256,(address,address,bytes4,uint256,uint256),(address,address,bytes4,uint256,uint256),address,uint256,uint8,bytes32,bytes32))\":{\"notice\":\"Checks an order for errors\"},\"constructor\":{\"notice\":\"Swap constructor\"},\"nonceUsed(address,uint256)\":{\"notice\":\"Returns true if the nonce has been used\"},\"revoke()\":{\"notice\":\"Revoke the signatory\"},\"setProtocolFee(uint256)\":{\"notice\":\"Set the protocol fee\"},\"setProtocolFeeWallet(address)\":{\"notice\":\"Set the protocol fee wallet\"},\"swap(address,uint256,(uint256,uint256,(address,address,bytes4,uint256,uint256),(address,address,bytes4,uint256,uint256),address,uint256,uint8,bytes32,bytes32))\":{\"notice\":\"Atomic Token Swap\"}},\"notice\":\"https://www.airswap.io/\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Swap.sol\":\"Swap\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xde231558366826d7cb61725af8147965a61c53b77a352cc8c9af38fc5a92ac3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd55624076bf61d44af5ff351919e32dda748567acfbdd6ba3d6c7be61c758e\",\"dweb:/ipfs/QmSki4dTrf4GPm7MTpG3fk8mC7rnjwd2zMomLp6jLuF63Q\"]},\"@openzeppelin/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"@openzeppelin/contracts/interfaces/IERC2981.sol\":{\"keccak256\":\"0x3976825a61df20457730b79ad0ac9c8908e3c7978ed9bf090c67137c91256b5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f3fe369b6d0e101844b425f1d08e35bf512962d0590b1f80decb8130c9a6890\",\"dweb:/ipfs/QmXCan6wX4qwJkdR1VvsYLeq8JTB2YxRHLucpuXpsKAvzQ\"]},\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e416a280c610b6b7a5f158e4a41aacfaec01ef14d5d1de13b46be9e090265fc\",\"dweb:/ipfs/QmYZP2KrdyccBbhLZT42auhvBTMkwiwUS3V6HWb42rbwbG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"@openzeppelin/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04db5bc05dcb05ba1f6ca2dfbead17adc8a2e2f911aa80b05e7a36d9eaf96516\",\"dweb:/ipfs/QmVkfHZbXVBUPsTopueCn3qGJX8aEjahFF3Fn4NcygLNm5\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3aa0eadab7aafcf91a95684765f778f64386f0368de88522ce873c21385278a\",\"dweb:/ipfs/QmPfaVAqWgH1QsT3dHVuL6jwMZbVKdoP8w1PvpiPT2FPWd\"]},\"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x3af3ca86df39aac39a0514c84459d691434a108d2151c8ce9d69f32e315cab80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77d1f1cf302cd5e1dfbbb4ce3b281b28e8c52942d4319fce43df2e1b6f02a52d\",\"dweb:/ipfs/QmT6ZXStmK3Knhh9BokeVHQ9HXTBZNgL3Eb1ar1cYg1hWy\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"contracts/Swap.sol\":{\"keccak256\":\"0x17e46f6eb761193e9450b1eadff4dfc5199edc575b4b0bf9b804174c01ad4394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6b5c66556e2d5e5093c95a3845f6a0a97736b23ef11d8571e3be15d39478e13\",\"dweb:/ipfs/Qmd9kGqSopD4fAVEL3tWekLfXY1SG1grfyE4qFu1jY21iM\"]},\"contracts/interfaces/IAdapter.sol\":{\"keccak256\":\"0x3517dae3dd23781ca263902ebe2ac6cb6af6a529b06b70cdf4031bd65595545e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6190f4aef0d7e4dce1cc0588665136f5a688438fd1f122fa53568aac123c22c\",\"dweb:/ipfs/QmbrpiRTJMBUv43xuwivkV8pNVUFHqYkecSusUpQk3sMqB\"]},\"contracts/interfaces/ISwap.sol\":{\"keccak256\":\"0x5bdf556fb0b10ee0b5c1cfcabfa72c0f62b41fabb71493c054c95ef092ebf64b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1cff90f80b279b7fde128cce56a48e1de7fe97c4cccc9abdecbd6d6110f5a\",\"dweb:/ipfs/QmWybhUpcWrUN3EjraP8M9beZX6nSkjK5UqPjQDRB1s3AY\"]}},\"version\":1}"}},"contracts/adapters/ERC1155Adapter.sol":{"ERC1155Adapter":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"AmountOrIDInvalid","type":"error"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasValidParams","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"interfaceId","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610548806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806347338bc31161005057806347338bc3146100ab578063a64d0cd4146100c0578063d1190df91461011857600080fd5b80633170f63d1461006c57806340944de914610094575b600080fd5b61007f61007a36600461041d565b61012b565b60405190151581526020015b60405180910390f35b61007f6100a236600461041d565b60800135151590565b6100be6100b936600461045e565b6101fe565b005b6100e77fd9b67a260000000000000000000000000000000000000000000000000000000081565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161008b565b61007f61012636600461041d565b610340565b600061013d60408301602084016104b5565b73ffffffffffffffffffffffffffffffffffffffff1663e985e9c561016560208501856104b5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152336024820152604401602060405180830381865afa1580156101d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f891906104d7565b92915050565b8260000361026c576040517f94d40be700000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f616d6f756e740000000000000000000000000000000000000000000000000000604482015260640160405180910390fd5b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004808401919091528682166024840152604483018590526064830186905260a0608484015260a48301527f307830300000000000000000000000000000000000000000000000000000000060c483015282169063f242432a9060e401600060405180830381600087803b15801561032157600080fd5b505af1158015610335573d6000803e3d6000fd5b505050505050505050565b6000608082013561035760408401602085016104b5565b73ffffffffffffffffffffffffffffffffffffffff1662fdd58e61037e60208601866104b5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff909116600482015260608601356024820152604401602060405180830381865afa1580156103f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041591906104f9565b101592915050565b600060a0828403121561042f57600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461045957600080fd5b919050565b600080600080600060a0868803121561047657600080fd5b61047f86610435565b945061048d60208701610435565b935060408601359250606086013591506104a960808701610435565b90509295509295909350565b6000602082840312156104c757600080fd5b6104d082610435565b9392505050565b6000602082840312156104e957600080fd5b815180151581146104d057600080fd5b60006020828403121561050b57600080fd5b505191905056fea26469706673582212201766a0cf2da0cad9a04f5dad3cd74e63b6a20d7a791b15fed915f4b60a8f997a64736f6c63430008170033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x548 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 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x47338BC3 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x47338BC3 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xA64D0CD4 EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0xD1190DF9 EQ PUSH2 0x118 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3170F63D EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x40944DE9 EQ PUSH2 0x94 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x41D JUMP JUMPDEST PUSH2 0x12B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xA2 CALLDATASIZE PUSH1 0x4 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x80 ADD CALLDATALOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH2 0xBE PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x45E JUMP JUMPDEST PUSH2 0x1FE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE7 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8B JUMP JUMPDEST PUSH2 0x7F PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x41D JUMP JUMPDEST PUSH2 0x340 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13D PUSH1 0x40 DUP4 ADD PUSH1 0x20 DUP5 ADD PUSH2 0x4B5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE985E9C5 PUSH2 0x165 PUSH1 0x20 DUP6 ADD DUP6 PUSH2 0x4B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x4D7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0x0 SUB PUSH2 0x26C JUMPI PUSH1 0x40 MLOAD PUSH32 0x94D40BE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x616D6F756E740000000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF242432A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 DUP2 AND PUSH1 0x4 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 DUP3 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD DUP6 SWAP1 MSTORE PUSH1 0x64 DUP4 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 PUSH1 0x84 DUP5 ADD MSTORE PUSH1 0xA4 DUP4 ADD MSTORE PUSH32 0x3078303000000000000000000000000000000000000000000000000000000000 PUSH1 0xC4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0xF242432A SWAP1 PUSH1 0xE4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x335 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH2 0x357 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x4B5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E PUSH2 0x37E PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x4B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x415 SWAP2 SWAP1 PUSH2 0x4F9 JUMP JUMPDEST LT ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x47F DUP7 PUSH2 0x435 JUMP JUMPDEST SWAP5 POP PUSH2 0x48D PUSH1 0x20 DUP8 ADD PUSH2 0x435 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4A9 PUSH1 0x80 DUP8 ADD PUSH2 0x435 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D0 DUP3 PUSH2 0x435 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x4D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR PUSH7 0xA0CF2DA0CAD9A0 0x4F 0x5D 0xAD EXTCODECOPY 0xD7 0x4E PUSH4 0xB6A20D7A PUSH26 0x1B15FED915F4B60A8F997A64736F6C6343000817003300000000 ","sourceMap":"157:1597:28:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@hasAllowance_6129":{"entryPoint":299,"id":6129,"parameterSlots":1,"returnSlots":1},"@hasBalance_6153":{"entryPoint":832,"id":6153,"parameterSlots":1,"returnSlots":1},"@hasValidParams_6169":{"entryPoint":null,"id":6169,"parameterSlots":1,"returnSlots":1},"@interfaceId_6105":{"entryPoint":null,"id":6105,"parameterSlots":0,"returnSlots":0},"@transfer_6203":{"entryPoint":510,"id":6203,"parameterSlots":5,"returnSlots":0},"abi_decode_address":{"entryPoint":1077,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1205,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_address":{"entryPoint":1118,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":1239,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Party_$6436_calldata_ptr":{"entryPoint":1053,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":1273,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:3660:34","nodeType":"YulBlock","src":"0:3660:34","statements":[{"nativeSrc":"6:3:34","nodeType":"YulBlock","src":"6:3:34","statements":[]},{"body":{"nativeSrc":"109:97:34","nodeType":"YulBlock","src":"109:97:34","statements":[{"body":{"nativeSrc":"156:16:34","nodeType":"YulBlock","src":"156:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"165:1:34","nodeType":"YulLiteral","src":"165:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"168:1:34","nodeType":"YulLiteral","src":"168:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"158:6:34","nodeType":"YulIdentifier","src":"158:6:34"},"nativeSrc":"158:12:34","nodeType":"YulFunctionCall","src":"158:12:34"},"nativeSrc":"158:12:34","nodeType":"YulExpressionStatement","src":"158:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"130:7:34","nodeType":"YulIdentifier","src":"130:7:34"},{"name":"headStart","nativeSrc":"139:9:34","nodeType":"YulIdentifier","src":"139:9:34"}],"functionName":{"name":"sub","nativeSrc":"126:3:34","nodeType":"YulIdentifier","src":"126:3:34"},"nativeSrc":"126:23:34","nodeType":"YulFunctionCall","src":"126:23:34"},{"kind":"number","nativeSrc":"151:3:34","nodeType":"YulLiteral","src":"151:3:34","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"122:3:34","nodeType":"YulIdentifier","src":"122:3:34"},"nativeSrc":"122:33:34","nodeType":"YulFunctionCall","src":"122:33:34"},"nativeSrc":"119:53:34","nodeType":"YulIf","src":"119:53:34"},{"nativeSrc":"181:19:34","nodeType":"YulAssignment","src":"181:19:34","value":{"name":"headStart","nativeSrc":"191:9:34","nodeType":"YulIdentifier","src":"191:9:34"},"variableNames":[{"name":"value0","nativeSrc":"181:6:34","nodeType":"YulIdentifier","src":"181:6:34"}]}]},"name":"abi_decode_tuple_t_struct$_Party_$6436_calldata_ptr","nativeSrc":"14:192:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"75:9:34","nodeType":"YulTypedName","src":"75:9:34","type":""},{"name":"dataEnd","nativeSrc":"86:7:34","nodeType":"YulTypedName","src":"86:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"98:6:34","nodeType":"YulTypedName","src":"98:6:34","type":""}],"src":"14:192:34"},{"body":{"nativeSrc":"306:92:34","nodeType":"YulBlock","src":"306:92:34","statements":[{"nativeSrc":"316:26:34","nodeType":"YulAssignment","src":"316:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"328:9:34","nodeType":"YulIdentifier","src":"328:9:34"},{"kind":"number","nativeSrc":"339:2:34","nodeType":"YulLiteral","src":"339:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"324:3:34","nodeType":"YulIdentifier","src":"324:3:34"},"nativeSrc":"324:18:34","nodeType":"YulFunctionCall","src":"324:18:34"},"variableNames":[{"name":"tail","nativeSrc":"316:4:34","nodeType":"YulIdentifier","src":"316:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"358:9:34","nodeType":"YulIdentifier","src":"358:9:34"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"383:6:34","nodeType":"YulIdentifier","src":"383:6:34"}],"functionName":{"name":"iszero","nativeSrc":"376:6:34","nodeType":"YulIdentifier","src":"376:6:34"},"nativeSrc":"376:14:34","nodeType":"YulFunctionCall","src":"376:14:34"}],"functionName":{"name":"iszero","nativeSrc":"369:6:34","nodeType":"YulIdentifier","src":"369:6:34"},"nativeSrc":"369:22:34","nodeType":"YulFunctionCall","src":"369:22:34"}],"functionName":{"name":"mstore","nativeSrc":"351:6:34","nodeType":"YulIdentifier","src":"351:6:34"},"nativeSrc":"351:41:34","nodeType":"YulFunctionCall","src":"351:41:34"},"nativeSrc":"351:41:34","nodeType":"YulExpressionStatement","src":"351:41:34"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"211:187:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"275:9:34","nodeType":"YulTypedName","src":"275:9:34","type":""},{"name":"value0","nativeSrc":"286:6:34","nodeType":"YulTypedName","src":"286:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"297:4:34","nodeType":"YulTypedName","src":"297:4:34","type":""}],"src":"211:187:34"},{"body":{"nativeSrc":"452:147:34","nodeType":"YulBlock","src":"452:147:34","statements":[{"nativeSrc":"462:29:34","nodeType":"YulAssignment","src":"462:29:34","value":{"arguments":[{"name":"offset","nativeSrc":"484:6:34","nodeType":"YulIdentifier","src":"484:6:34"}],"functionName":{"name":"calldataload","nativeSrc":"471:12:34","nodeType":"YulIdentifier","src":"471:12:34"},"nativeSrc":"471:20:34","nodeType":"YulFunctionCall","src":"471:20:34"},"variableNames":[{"name":"value","nativeSrc":"462:5:34","nodeType":"YulIdentifier","src":"462:5:34"}]},{"body":{"nativeSrc":"577:16:34","nodeType":"YulBlock","src":"577:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"586:1:34","nodeType":"YulLiteral","src":"586:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"589:1:34","nodeType":"YulLiteral","src":"589:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"579:6:34","nodeType":"YulIdentifier","src":"579:6:34"},"nativeSrc":"579:12:34","nodeType":"YulFunctionCall","src":"579:12:34"},"nativeSrc":"579:12:34","nodeType":"YulExpressionStatement","src":"579:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"513:5:34","nodeType":"YulIdentifier","src":"513:5:34"},{"arguments":[{"name":"value","nativeSrc":"524:5:34","nodeType":"YulIdentifier","src":"524:5:34"},{"kind":"number","nativeSrc":"531:42:34","nodeType":"YulLiteral","src":"531:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"520:3:34","nodeType":"YulIdentifier","src":"520:3:34"},"nativeSrc":"520:54:34","nodeType":"YulFunctionCall","src":"520:54:34"}],"functionName":{"name":"eq","nativeSrc":"510:2:34","nodeType":"YulIdentifier","src":"510:2:34"},"nativeSrc":"510:65:34","nodeType":"YulFunctionCall","src":"510:65:34"}],"functionName":{"name":"iszero","nativeSrc":"503:6:34","nodeType":"YulIdentifier","src":"503:6:34"},"nativeSrc":"503:73:34","nodeType":"YulFunctionCall","src":"503:73:34"},"nativeSrc":"500:93:34","nodeType":"YulIf","src":"500:93:34"}]},"name":"abi_decode_address","nativeSrc":"403:196:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"431:6:34","nodeType":"YulTypedName","src":"431:6:34","type":""}],"returnVariables":[{"name":"value","nativeSrc":"442:5:34","nodeType":"YulTypedName","src":"442:5:34","type":""}],"src":"403:196:34"},{"body":{"nativeSrc":"742:334:34","nodeType":"YulBlock","src":"742:334:34","statements":[{"body":{"nativeSrc":"789:16:34","nodeType":"YulBlock","src":"789:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"798:1:34","nodeType":"YulLiteral","src":"798:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"801:1:34","nodeType":"YulLiteral","src":"801:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"791:6:34","nodeType":"YulIdentifier","src":"791:6:34"},"nativeSrc":"791:12:34","nodeType":"YulFunctionCall","src":"791:12:34"},"nativeSrc":"791:12:34","nodeType":"YulExpressionStatement","src":"791:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"763:7:34","nodeType":"YulIdentifier","src":"763:7:34"},{"name":"headStart","nativeSrc":"772:9:34","nodeType":"YulIdentifier","src":"772:9:34"}],"functionName":{"name":"sub","nativeSrc":"759:3:34","nodeType":"YulIdentifier","src":"759:3:34"},"nativeSrc":"759:23:34","nodeType":"YulFunctionCall","src":"759:23:34"},{"kind":"number","nativeSrc":"784:3:34","nodeType":"YulLiteral","src":"784:3:34","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"755:3:34","nodeType":"YulIdentifier","src":"755:3:34"},"nativeSrc":"755:33:34","nodeType":"YulFunctionCall","src":"755:33:34"},"nativeSrc":"752:53:34","nodeType":"YulIf","src":"752:53:34"},{"nativeSrc":"814:39:34","nodeType":"YulAssignment","src":"814:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"843:9:34","nodeType":"YulIdentifier","src":"843:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"824:18:34","nodeType":"YulIdentifier","src":"824:18:34"},"nativeSrc":"824:29:34","nodeType":"YulFunctionCall","src":"824:29:34"},"variableNames":[{"name":"value0","nativeSrc":"814:6:34","nodeType":"YulIdentifier","src":"814:6:34"}]},{"nativeSrc":"862:48:34","nodeType":"YulAssignment","src":"862:48:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"895:9:34","nodeType":"YulIdentifier","src":"895:9:34"},{"kind":"number","nativeSrc":"906:2:34","nodeType":"YulLiteral","src":"906:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"891:3:34","nodeType":"YulIdentifier","src":"891:3:34"},"nativeSrc":"891:18:34","nodeType":"YulFunctionCall","src":"891:18:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"872:18:34","nodeType":"YulIdentifier","src":"872:18:34"},"nativeSrc":"872:38:34","nodeType":"YulFunctionCall","src":"872:38:34"},"variableNames":[{"name":"value1","nativeSrc":"862:6:34","nodeType":"YulIdentifier","src":"862:6:34"}]},{"nativeSrc":"919:42:34","nodeType":"YulAssignment","src":"919:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"946:9:34","nodeType":"YulIdentifier","src":"946:9:34"},{"kind":"number","nativeSrc":"957:2:34","nodeType":"YulLiteral","src":"957:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"942:3:34","nodeType":"YulIdentifier","src":"942:3:34"},"nativeSrc":"942:18:34","nodeType":"YulFunctionCall","src":"942:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"929:12:34","nodeType":"YulIdentifier","src":"929:12:34"},"nativeSrc":"929:32:34","nodeType":"YulFunctionCall","src":"929:32:34"},"variableNames":[{"name":"value2","nativeSrc":"919:6:34","nodeType":"YulIdentifier","src":"919:6:34"}]},{"nativeSrc":"970:42:34","nodeType":"YulAssignment","src":"970:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"997:9:34","nodeType":"YulIdentifier","src":"997:9:34"},{"kind":"number","nativeSrc":"1008:2:34","nodeType":"YulLiteral","src":"1008:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"993:3:34","nodeType":"YulIdentifier","src":"993:3:34"},"nativeSrc":"993:18:34","nodeType":"YulFunctionCall","src":"993:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"980:12:34","nodeType":"YulIdentifier","src":"980:12:34"},"nativeSrc":"980:32:34","nodeType":"YulFunctionCall","src":"980:32:34"},"variableNames":[{"name":"value3","nativeSrc":"970:6:34","nodeType":"YulIdentifier","src":"970:6:34"}]},{"nativeSrc":"1021:49:34","nodeType":"YulAssignment","src":"1021:49:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1054:9:34","nodeType":"YulIdentifier","src":"1054:9:34"},{"kind":"number","nativeSrc":"1065:3:34","nodeType":"YulLiteral","src":"1065:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1050:3:34","nodeType":"YulIdentifier","src":"1050:3:34"},"nativeSrc":"1050:19:34","nodeType":"YulFunctionCall","src":"1050:19:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1031:18:34","nodeType":"YulIdentifier","src":"1031:18:34"},"nativeSrc":"1031:39:34","nodeType":"YulFunctionCall","src":"1031:39:34"},"variableNames":[{"name":"value4","nativeSrc":"1021:6:34","nodeType":"YulIdentifier","src":"1021:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_address","nativeSrc":"604:472:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"676:9:34","nodeType":"YulTypedName","src":"676:9:34","type":""},{"name":"dataEnd","nativeSrc":"687:7:34","nodeType":"YulTypedName","src":"687:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"699:6:34","nodeType":"YulTypedName","src":"699:6:34","type":""},{"name":"value1","nativeSrc":"707:6:34","nodeType":"YulTypedName","src":"707:6:34","type":""},{"name":"value2","nativeSrc":"715:6:34","nodeType":"YulTypedName","src":"715:6:34","type":""},{"name":"value3","nativeSrc":"723:6:34","nodeType":"YulTypedName","src":"723:6:34","type":""},{"name":"value4","nativeSrc":"731:6:34","nodeType":"YulTypedName","src":"731:6:34","type":""}],"src":"604:472:34"},{"body":{"nativeSrc":"1180:149:34","nodeType":"YulBlock","src":"1180:149:34","statements":[{"nativeSrc":"1190:26:34","nodeType":"YulAssignment","src":"1190:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1202:9:34","nodeType":"YulIdentifier","src":"1202:9:34"},{"kind":"number","nativeSrc":"1213:2:34","nodeType":"YulLiteral","src":"1213:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1198:3:34","nodeType":"YulIdentifier","src":"1198:3:34"},"nativeSrc":"1198:18:34","nodeType":"YulFunctionCall","src":"1198:18:34"},"variableNames":[{"name":"tail","nativeSrc":"1190:4:34","nodeType":"YulIdentifier","src":"1190:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1232:9:34","nodeType":"YulIdentifier","src":"1232:9:34"},{"arguments":[{"name":"value0","nativeSrc":"1247:6:34","nodeType":"YulIdentifier","src":"1247:6:34"},{"kind":"number","nativeSrc":"1255:66:34","nodeType":"YulLiteral","src":"1255:66:34","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"1243:3:34","nodeType":"YulIdentifier","src":"1243:3:34"},"nativeSrc":"1243:79:34","nodeType":"YulFunctionCall","src":"1243:79:34"}],"functionName":{"name":"mstore","nativeSrc":"1225:6:34","nodeType":"YulIdentifier","src":"1225:6:34"},"nativeSrc":"1225:98:34","nodeType":"YulFunctionCall","src":"1225:98:34"},"nativeSrc":"1225:98:34","nodeType":"YulExpressionStatement","src":"1225:98:34"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"1081:248:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1149:9:34","nodeType":"YulTypedName","src":"1149:9:34","type":""},{"name":"value0","nativeSrc":"1160:6:34","nodeType":"YulTypedName","src":"1160:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1171:4:34","nodeType":"YulTypedName","src":"1171:4:34","type":""}],"src":"1081:248:34"},{"body":{"nativeSrc":"1404:116:34","nodeType":"YulBlock","src":"1404:116:34","statements":[{"body":{"nativeSrc":"1450:16:34","nodeType":"YulBlock","src":"1450:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1459:1:34","nodeType":"YulLiteral","src":"1459:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1462:1:34","nodeType":"YulLiteral","src":"1462:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1452:6:34","nodeType":"YulIdentifier","src":"1452:6:34"},"nativeSrc":"1452:12:34","nodeType":"YulFunctionCall","src":"1452:12:34"},"nativeSrc":"1452:12:34","nodeType":"YulExpressionStatement","src":"1452:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1425:7:34","nodeType":"YulIdentifier","src":"1425:7:34"},{"name":"headStart","nativeSrc":"1434:9:34","nodeType":"YulIdentifier","src":"1434:9:34"}],"functionName":{"name":"sub","nativeSrc":"1421:3:34","nodeType":"YulIdentifier","src":"1421:3:34"},"nativeSrc":"1421:23:34","nodeType":"YulFunctionCall","src":"1421:23:34"},{"kind":"number","nativeSrc":"1446:2:34","nodeType":"YulLiteral","src":"1446:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1417:3:34","nodeType":"YulIdentifier","src":"1417:3:34"},"nativeSrc":"1417:32:34","nodeType":"YulFunctionCall","src":"1417:32:34"},"nativeSrc":"1414:52:34","nodeType":"YulIf","src":"1414:52:34"},{"nativeSrc":"1475:39:34","nodeType":"YulAssignment","src":"1475:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1504:9:34","nodeType":"YulIdentifier","src":"1504:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1485:18:34","nodeType":"YulIdentifier","src":"1485:18:34"},"nativeSrc":"1485:29:34","nodeType":"YulFunctionCall","src":"1485:29:34"},"variableNames":[{"name":"value0","nativeSrc":"1475:6:34","nodeType":"YulIdentifier","src":"1475:6:34"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1334:186:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1370:9:34","nodeType":"YulTypedName","src":"1370:9:34","type":""},{"name":"dataEnd","nativeSrc":"1381:7:34","nodeType":"YulTypedName","src":"1381:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1393:6:34","nodeType":"YulTypedName","src":"1393:6:34","type":""}],"src":"1334:186:34"},{"body":{"nativeSrc":"1654:198:34","nodeType":"YulBlock","src":"1654:198:34","statements":[{"nativeSrc":"1664:26:34","nodeType":"YulAssignment","src":"1664:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1676:9:34","nodeType":"YulIdentifier","src":"1676:9:34"},{"kind":"number","nativeSrc":"1687:2:34","nodeType":"YulLiteral","src":"1687:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1672:3:34","nodeType":"YulIdentifier","src":"1672:3:34"},"nativeSrc":"1672:18:34","nodeType":"YulFunctionCall","src":"1672:18:34"},"variableNames":[{"name":"tail","nativeSrc":"1664:4:34","nodeType":"YulIdentifier","src":"1664:4:34"}]},{"nativeSrc":"1699:52:34","nodeType":"YulVariableDeclaration","src":"1699:52:34","value":{"kind":"number","nativeSrc":"1709:42:34","nodeType":"YulLiteral","src":"1709:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1703:2:34","nodeType":"YulTypedName","src":"1703:2:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1767:9:34","nodeType":"YulIdentifier","src":"1767:9:34"},{"arguments":[{"name":"value0","nativeSrc":"1782:6:34","nodeType":"YulIdentifier","src":"1782:6:34"},{"name":"_1","nativeSrc":"1790:2:34","nodeType":"YulIdentifier","src":"1790:2:34"}],"functionName":{"name":"and","nativeSrc":"1778:3:34","nodeType":"YulIdentifier","src":"1778:3:34"},"nativeSrc":"1778:15:34","nodeType":"YulFunctionCall","src":"1778:15:34"}],"functionName":{"name":"mstore","nativeSrc":"1760:6:34","nodeType":"YulIdentifier","src":"1760:6:34"},"nativeSrc":"1760:34:34","nodeType":"YulFunctionCall","src":"1760:34:34"},"nativeSrc":"1760:34:34","nodeType":"YulExpressionStatement","src":"1760:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1814:9:34","nodeType":"YulIdentifier","src":"1814:9:34"},{"kind":"number","nativeSrc":"1825:2:34","nodeType":"YulLiteral","src":"1825:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1810:3:34","nodeType":"YulIdentifier","src":"1810:3:34"},"nativeSrc":"1810:18:34","nodeType":"YulFunctionCall","src":"1810:18:34"},{"arguments":[{"name":"value1","nativeSrc":"1834:6:34","nodeType":"YulIdentifier","src":"1834:6:34"},{"name":"_1","nativeSrc":"1842:2:34","nodeType":"YulIdentifier","src":"1842:2:34"}],"functionName":{"name":"and","nativeSrc":"1830:3:34","nodeType":"YulIdentifier","src":"1830:3:34"},"nativeSrc":"1830:15:34","nodeType":"YulFunctionCall","src":"1830:15:34"}],"functionName":{"name":"mstore","nativeSrc":"1803:6:34","nodeType":"YulIdentifier","src":"1803:6:34"},"nativeSrc":"1803:43:34","nodeType":"YulFunctionCall","src":"1803:43:34"},"nativeSrc":"1803:43:34","nodeType":"YulExpressionStatement","src":"1803:43:34"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"1525:327:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1615:9:34","nodeType":"YulTypedName","src":"1615:9:34","type":""},{"name":"value1","nativeSrc":"1626:6:34","nodeType":"YulTypedName","src":"1626:6:34","type":""},{"name":"value0","nativeSrc":"1634:6:34","nodeType":"YulTypedName","src":"1634:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1645:4:34","nodeType":"YulTypedName","src":"1645:4:34","type":""}],"src":"1525:327:34"},{"body":{"nativeSrc":"1935:199:34","nodeType":"YulBlock","src":"1935:199:34","statements":[{"body":{"nativeSrc":"1981:16:34","nodeType":"YulBlock","src":"1981:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1990:1:34","nodeType":"YulLiteral","src":"1990:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1993:1:34","nodeType":"YulLiteral","src":"1993:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1983:6:34","nodeType":"YulIdentifier","src":"1983:6:34"},"nativeSrc":"1983:12:34","nodeType":"YulFunctionCall","src":"1983:12:34"},"nativeSrc":"1983:12:34","nodeType":"YulExpressionStatement","src":"1983:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1956:7:34","nodeType":"YulIdentifier","src":"1956:7:34"},{"name":"headStart","nativeSrc":"1965:9:34","nodeType":"YulIdentifier","src":"1965:9:34"}],"functionName":{"name":"sub","nativeSrc":"1952:3:34","nodeType":"YulIdentifier","src":"1952:3:34"},"nativeSrc":"1952:23:34","nodeType":"YulFunctionCall","src":"1952:23:34"},{"kind":"number","nativeSrc":"1977:2:34","nodeType":"YulLiteral","src":"1977:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1948:3:34","nodeType":"YulIdentifier","src":"1948:3:34"},"nativeSrc":"1948:32:34","nodeType":"YulFunctionCall","src":"1948:32:34"},"nativeSrc":"1945:52:34","nodeType":"YulIf","src":"1945:52:34"},{"nativeSrc":"2006:29:34","nodeType":"YulVariableDeclaration","src":"2006:29:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2025:9:34","nodeType":"YulIdentifier","src":"2025:9:34"}],"functionName":{"name":"mload","nativeSrc":"2019:5:34","nodeType":"YulIdentifier","src":"2019:5:34"},"nativeSrc":"2019:16:34","nodeType":"YulFunctionCall","src":"2019:16:34"},"variables":[{"name":"value","nativeSrc":"2010:5:34","nodeType":"YulTypedName","src":"2010:5:34","type":""}]},{"body":{"nativeSrc":"2088:16:34","nodeType":"YulBlock","src":"2088:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2097:1:34","nodeType":"YulLiteral","src":"2097:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2100:1:34","nodeType":"YulLiteral","src":"2100:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2090:6:34","nodeType":"YulIdentifier","src":"2090:6:34"},"nativeSrc":"2090:12:34","nodeType":"YulFunctionCall","src":"2090:12:34"},"nativeSrc":"2090:12:34","nodeType":"YulExpressionStatement","src":"2090:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2057:5:34","nodeType":"YulIdentifier","src":"2057:5:34"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2078:5:34","nodeType":"YulIdentifier","src":"2078:5:34"}],"functionName":{"name":"iszero","nativeSrc":"2071:6:34","nodeType":"YulIdentifier","src":"2071:6:34"},"nativeSrc":"2071:13:34","nodeType":"YulFunctionCall","src":"2071:13:34"}],"functionName":{"name":"iszero","nativeSrc":"2064:6:34","nodeType":"YulIdentifier","src":"2064:6:34"},"nativeSrc":"2064:21:34","nodeType":"YulFunctionCall","src":"2064:21:34"}],"functionName":{"name":"eq","nativeSrc":"2054:2:34","nodeType":"YulIdentifier","src":"2054:2:34"},"nativeSrc":"2054:32:34","nodeType":"YulFunctionCall","src":"2054:32:34"}],"functionName":{"name":"iszero","nativeSrc":"2047:6:34","nodeType":"YulIdentifier","src":"2047:6:34"},"nativeSrc":"2047:40:34","nodeType":"YulFunctionCall","src":"2047:40:34"},"nativeSrc":"2044:60:34","nodeType":"YulIf","src":"2044:60:34"},{"nativeSrc":"2113:15:34","nodeType":"YulAssignment","src":"2113:15:34","value":{"name":"value","nativeSrc":"2123:5:34","nodeType":"YulIdentifier","src":"2123:5:34"},"variableNames":[{"name":"value0","nativeSrc":"2113:6:34","nodeType":"YulIdentifier","src":"2113:6:34"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"1857:277:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1901:9:34","nodeType":"YulTypedName","src":"1901:9:34","type":""},{"name":"dataEnd","nativeSrc":"1912:7:34","nodeType":"YulTypedName","src":"1912:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1924:6:34","nodeType":"YulTypedName","src":"1924:6:34","type":""}],"src":"1857:277:34"},{"body":{"nativeSrc":"2313:155:34","nodeType":"YulBlock","src":"2313:155:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2330:9:34","nodeType":"YulIdentifier","src":"2330:9:34"},{"kind":"number","nativeSrc":"2341:2:34","nodeType":"YulLiteral","src":"2341:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2323:6:34","nodeType":"YulIdentifier","src":"2323:6:34"},"nativeSrc":"2323:21:34","nodeType":"YulFunctionCall","src":"2323:21:34"},"nativeSrc":"2323:21:34","nodeType":"YulExpressionStatement","src":"2323:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2364:9:34","nodeType":"YulIdentifier","src":"2364:9:34"},{"kind":"number","nativeSrc":"2375:2:34","nodeType":"YulLiteral","src":"2375:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2360:3:34","nodeType":"YulIdentifier","src":"2360:3:34"},"nativeSrc":"2360:18:34","nodeType":"YulFunctionCall","src":"2360:18:34"},{"kind":"number","nativeSrc":"2380:1:34","nodeType":"YulLiteral","src":"2380:1:34","type":"","value":"6"}],"functionName":{"name":"mstore","nativeSrc":"2353:6:34","nodeType":"YulIdentifier","src":"2353:6:34"},"nativeSrc":"2353:29:34","nodeType":"YulFunctionCall","src":"2353:29:34"},"nativeSrc":"2353:29:34","nodeType":"YulExpressionStatement","src":"2353:29:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2402:9:34","nodeType":"YulIdentifier","src":"2402:9:34"},{"kind":"number","nativeSrc":"2413:2:34","nodeType":"YulLiteral","src":"2413:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2398:3:34","nodeType":"YulIdentifier","src":"2398:3:34"},"nativeSrc":"2398:18:34","nodeType":"YulFunctionCall","src":"2398:18:34"},{"hexValue":"616d6f756e74","kind":"string","nativeSrc":"2418:8:34","nodeType":"YulLiteral","src":"2418:8:34","type":"","value":"amount"}],"functionName":{"name":"mstore","nativeSrc":"2391:6:34","nodeType":"YulIdentifier","src":"2391:6:34"},"nativeSrc":"2391:36:34","nodeType":"YulFunctionCall","src":"2391:36:34"},"nativeSrc":"2391:36:34","nodeType":"YulExpressionStatement","src":"2391:36:34"},{"nativeSrc":"2436:26:34","nodeType":"YulAssignment","src":"2436:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2448:9:34","nodeType":"YulIdentifier","src":"2448:9:34"},{"kind":"number","nativeSrc":"2459:2:34","nodeType":"YulLiteral","src":"2459:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2444:3:34","nodeType":"YulIdentifier","src":"2444:3:34"},"nativeSrc":"2444:18:34","nodeType":"YulFunctionCall","src":"2444:18:34"},"variableNames":[{"name":"tail","nativeSrc":"2436:4:34","nodeType":"YulIdentifier","src":"2436:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2139:329:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2290:9:34","nodeType":"YulTypedName","src":"2290:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2304:4:34","nodeType":"YulTypedName","src":"2304:4:34","type":""}],"src":"2139:329:34"},{"body":{"nativeSrc":"2758:409:34","nodeType":"YulBlock","src":"2758:409:34","statements":[{"nativeSrc":"2768:52:34","nodeType":"YulVariableDeclaration","src":"2768:52:34","value":{"kind":"number","nativeSrc":"2778:42:34","nodeType":"YulLiteral","src":"2778:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"2772:2:34","nodeType":"YulTypedName","src":"2772:2:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2836:9:34","nodeType":"YulIdentifier","src":"2836:9:34"},{"arguments":[{"name":"value0","nativeSrc":"2851:6:34","nodeType":"YulIdentifier","src":"2851:6:34"},{"name":"_1","nativeSrc":"2859:2:34","nodeType":"YulIdentifier","src":"2859:2:34"}],"functionName":{"name":"and","nativeSrc":"2847:3:34","nodeType":"YulIdentifier","src":"2847:3:34"},"nativeSrc":"2847:15:34","nodeType":"YulFunctionCall","src":"2847:15:34"}],"functionName":{"name":"mstore","nativeSrc":"2829:6:34","nodeType":"YulIdentifier","src":"2829:6:34"},"nativeSrc":"2829:34:34","nodeType":"YulFunctionCall","src":"2829:34:34"},"nativeSrc":"2829:34:34","nodeType":"YulExpressionStatement","src":"2829:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2883:9:34","nodeType":"YulIdentifier","src":"2883:9:34"},{"kind":"number","nativeSrc":"2894:2:34","nodeType":"YulLiteral","src":"2894:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2879:3:34","nodeType":"YulIdentifier","src":"2879:3:34"},"nativeSrc":"2879:18:34","nodeType":"YulFunctionCall","src":"2879:18:34"},{"arguments":[{"name":"value1","nativeSrc":"2903:6:34","nodeType":"YulIdentifier","src":"2903:6:34"},{"name":"_1","nativeSrc":"2911:2:34","nodeType":"YulIdentifier","src":"2911:2:34"}],"functionName":{"name":"and","nativeSrc":"2899:3:34","nodeType":"YulIdentifier","src":"2899:3:34"},"nativeSrc":"2899:15:34","nodeType":"YulFunctionCall","src":"2899:15:34"}],"functionName":{"name":"mstore","nativeSrc":"2872:6:34","nodeType":"YulIdentifier","src":"2872:6:34"},"nativeSrc":"2872:43:34","nodeType":"YulFunctionCall","src":"2872:43:34"},"nativeSrc":"2872:43:34","nodeType":"YulExpressionStatement","src":"2872:43:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2935:9:34","nodeType":"YulIdentifier","src":"2935:9:34"},{"kind":"number","nativeSrc":"2946:2:34","nodeType":"YulLiteral","src":"2946:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2931:3:34","nodeType":"YulIdentifier","src":"2931:3:34"},"nativeSrc":"2931:18:34","nodeType":"YulFunctionCall","src":"2931:18:34"},{"name":"value2","nativeSrc":"2951:6:34","nodeType":"YulIdentifier","src":"2951:6:34"}],"functionName":{"name":"mstore","nativeSrc":"2924:6:34","nodeType":"YulIdentifier","src":"2924:6:34"},"nativeSrc":"2924:34:34","nodeType":"YulFunctionCall","src":"2924:34:34"},"nativeSrc":"2924:34:34","nodeType":"YulExpressionStatement","src":"2924:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2978:9:34","nodeType":"YulIdentifier","src":"2978:9:34"},{"kind":"number","nativeSrc":"2989:2:34","nodeType":"YulLiteral","src":"2989:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2974:3:34","nodeType":"YulIdentifier","src":"2974:3:34"},"nativeSrc":"2974:18:34","nodeType":"YulFunctionCall","src":"2974:18:34"},{"name":"value3","nativeSrc":"2994:6:34","nodeType":"YulIdentifier","src":"2994:6:34"}],"functionName":{"name":"mstore","nativeSrc":"2967:6:34","nodeType":"YulIdentifier","src":"2967:6:34"},"nativeSrc":"2967:34:34","nodeType":"YulFunctionCall","src":"2967:34:34"},"nativeSrc":"2967:34:34","nodeType":"YulExpressionStatement","src":"2967:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3021:9:34","nodeType":"YulIdentifier","src":"3021:9:34"},{"kind":"number","nativeSrc":"3032:3:34","nodeType":"YulLiteral","src":"3032:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3017:3:34","nodeType":"YulIdentifier","src":"3017:3:34"},"nativeSrc":"3017:19:34","nodeType":"YulFunctionCall","src":"3017:19:34"},{"kind":"number","nativeSrc":"3038:3:34","nodeType":"YulLiteral","src":"3038:3:34","type":"","value":"160"}],"functionName":{"name":"mstore","nativeSrc":"3010:6:34","nodeType":"YulIdentifier","src":"3010:6:34"},"nativeSrc":"3010:32:34","nodeType":"YulFunctionCall","src":"3010:32:34"},"nativeSrc":"3010:32:34","nodeType":"YulExpressionStatement","src":"3010:32:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3062:9:34","nodeType":"YulIdentifier","src":"3062:9:34"},{"kind":"number","nativeSrc":"3073:3:34","nodeType":"YulLiteral","src":"3073:3:34","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"3058:3:34","nodeType":"YulIdentifier","src":"3058:3:34"},"nativeSrc":"3058:19:34","nodeType":"YulFunctionCall","src":"3058:19:34"},{"kind":"number","nativeSrc":"3079:1:34","nodeType":"YulLiteral","src":"3079:1:34","type":"","value":"4"}],"functionName":{"name":"mstore","nativeSrc":"3051:6:34","nodeType":"YulIdentifier","src":"3051:6:34"},"nativeSrc":"3051:30:34","nodeType":"YulFunctionCall","src":"3051:30:34"},"nativeSrc":"3051:30:34","nodeType":"YulExpressionStatement","src":"3051:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3101:9:34","nodeType":"YulIdentifier","src":"3101:9:34"},{"kind":"number","nativeSrc":"3112:3:34","nodeType":"YulLiteral","src":"3112:3:34","type":"","value":"192"}],"functionName":{"name":"add","nativeSrc":"3097:3:34","nodeType":"YulIdentifier","src":"3097:3:34"},"nativeSrc":"3097:19:34","nodeType":"YulFunctionCall","src":"3097:19:34"},{"hexValue":"30783030","kind":"string","nativeSrc":"3118:6:34","nodeType":"YulLiteral","src":"3118:6:34","type":"","value":"0x00"}],"functionName":{"name":"mstore","nativeSrc":"3090:6:34","nodeType":"YulIdentifier","src":"3090:6:34"},"nativeSrc":"3090:35:34","nodeType":"YulFunctionCall","src":"3090:35:34"},"nativeSrc":"3090:35:34","nodeType":"YulExpressionStatement","src":"3090:35:34"},{"nativeSrc":"3134:27:34","nodeType":"YulAssignment","src":"3134:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3146:9:34","nodeType":"YulIdentifier","src":"3146:9:34"},{"kind":"number","nativeSrc":"3157:3:34","nodeType":"YulLiteral","src":"3157:3:34","type":"","value":"224"}],"functionName":{"name":"add","nativeSrc":"3142:3:34","nodeType":"YulIdentifier","src":"3142:3:34"},"nativeSrc":"3142:19:34","nodeType":"YulFunctionCall","src":"3142:19:34"},"variableNames":[{"name":"tail","nativeSrc":"3134:4:34","nodeType":"YulIdentifier","src":"3134:4:34"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"2473:694:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2703:9:34","nodeType":"YulTypedName","src":"2703:9:34","type":""},{"name":"value3","nativeSrc":"2714:6:34","nodeType":"YulTypedName","src":"2714:6:34","type":""},{"name":"value2","nativeSrc":"2722:6:34","nodeType":"YulTypedName","src":"2722:6:34","type":""},{"name":"value1","nativeSrc":"2730:6:34","nodeType":"YulTypedName","src":"2730:6:34","type":""},{"name":"value0","nativeSrc":"2738:6:34","nodeType":"YulTypedName","src":"2738:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2749:4:34","nodeType":"YulTypedName","src":"2749:4:34","type":""}],"src":"2473:694:34"},{"body":{"nativeSrc":"3301:168:34","nodeType":"YulBlock","src":"3301:168:34","statements":[{"nativeSrc":"3311:26:34","nodeType":"YulAssignment","src":"3311:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3323:9:34","nodeType":"YulIdentifier","src":"3323:9:34"},{"kind":"number","nativeSrc":"3334:2:34","nodeType":"YulLiteral","src":"3334:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3319:3:34","nodeType":"YulIdentifier","src":"3319:3:34"},"nativeSrc":"3319:18:34","nodeType":"YulFunctionCall","src":"3319:18:34"},"variableNames":[{"name":"tail","nativeSrc":"3311:4:34","nodeType":"YulIdentifier","src":"3311:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3353:9:34","nodeType":"YulIdentifier","src":"3353:9:34"},{"arguments":[{"name":"value0","nativeSrc":"3368:6:34","nodeType":"YulIdentifier","src":"3368:6:34"},{"kind":"number","nativeSrc":"3376:42:34","nodeType":"YulLiteral","src":"3376:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3364:3:34","nodeType":"YulIdentifier","src":"3364:3:34"},"nativeSrc":"3364:55:34","nodeType":"YulFunctionCall","src":"3364:55:34"}],"functionName":{"name":"mstore","nativeSrc":"3346:6:34","nodeType":"YulIdentifier","src":"3346:6:34"},"nativeSrc":"3346:74:34","nodeType":"YulFunctionCall","src":"3346:74:34"},"nativeSrc":"3346:74:34","nodeType":"YulExpressionStatement","src":"3346:74:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3440:9:34","nodeType":"YulIdentifier","src":"3440:9:34"},{"kind":"number","nativeSrc":"3451:2:34","nodeType":"YulLiteral","src":"3451:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3436:3:34","nodeType":"YulIdentifier","src":"3436:3:34"},"nativeSrc":"3436:18:34","nodeType":"YulFunctionCall","src":"3436:18:34"},{"name":"value1","nativeSrc":"3456:6:34","nodeType":"YulIdentifier","src":"3456:6:34"}],"functionName":{"name":"mstore","nativeSrc":"3429:6:34","nodeType":"YulIdentifier","src":"3429:6:34"},"nativeSrc":"3429:34:34","nodeType":"YulFunctionCall","src":"3429:34:34"},"nativeSrc":"3429:34:34","nodeType":"YulExpressionStatement","src":"3429:34:34"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"3172:297:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3262:9:34","nodeType":"YulTypedName","src":"3262:9:34","type":""},{"name":"value1","nativeSrc":"3273:6:34","nodeType":"YulTypedName","src":"3273:6:34","type":""},{"name":"value0","nativeSrc":"3281:6:34","nodeType":"YulTypedName","src":"3281:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3292:4:34","nodeType":"YulTypedName","src":"3292:4:34","type":""}],"src":"3172:297:34"},{"body":{"nativeSrc":"3555:103:34","nodeType":"YulBlock","src":"3555:103:34","statements":[{"body":{"nativeSrc":"3601:16:34","nodeType":"YulBlock","src":"3601:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3610:1:34","nodeType":"YulLiteral","src":"3610:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3613:1:34","nodeType":"YulLiteral","src":"3613:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3603:6:34","nodeType":"YulIdentifier","src":"3603:6:34"},"nativeSrc":"3603:12:34","nodeType":"YulFunctionCall","src":"3603:12:34"},"nativeSrc":"3603:12:34","nodeType":"YulExpressionStatement","src":"3603:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3576:7:34","nodeType":"YulIdentifier","src":"3576:7:34"},{"name":"headStart","nativeSrc":"3585:9:34","nodeType":"YulIdentifier","src":"3585:9:34"}],"functionName":{"name":"sub","nativeSrc":"3572:3:34","nodeType":"YulIdentifier","src":"3572:3:34"},"nativeSrc":"3572:23:34","nodeType":"YulFunctionCall","src":"3572:23:34"},{"kind":"number","nativeSrc":"3597:2:34","nodeType":"YulLiteral","src":"3597:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3568:3:34","nodeType":"YulIdentifier","src":"3568:3:34"},"nativeSrc":"3568:32:34","nodeType":"YulFunctionCall","src":"3568:32:34"},"nativeSrc":"3565:52:34","nodeType":"YulIf","src":"3565:52:34"},{"nativeSrc":"3626:26:34","nodeType":"YulAssignment","src":"3626:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3642:9:34","nodeType":"YulIdentifier","src":"3642:9:34"}],"functionName":{"name":"mload","nativeSrc":"3636:5:34","nodeType":"YulIdentifier","src":"3636:5:34"},"nativeSrc":"3636:16:34","nodeType":"YulFunctionCall","src":"3636:16:34"},"variableNames":[{"name":"value0","nativeSrc":"3626:6:34","nodeType":"YulIdentifier","src":"3626:6:34"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"3474:184:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3521:9:34","nodeType":"YulTypedName","src":"3521:9:34","type":""},{"name":"dataEnd","nativeSrc":"3532:7:34","nodeType":"YulTypedName","src":"3532:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3544:6:34","nodeType":"YulTypedName","src":"3544:6:34","type":""}],"src":"3474:184:34"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_struct$_Party_$6436_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := headStart\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        value4 := abi_decode_address(add(headStart, 128))\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffff00000000000000000000000000000000000000000000000000000000))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 6)\n        mstore(add(headStart, 64), \"amount\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), value3)\n        mstore(add(headStart, 128), 160)\n        mstore(add(headStart, 160), 4)\n        mstore(add(headStart, 192), \"0x00\")\n        tail := add(headStart, 224)\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n}","id":34,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100675760003560e01c806347338bc31161005057806347338bc3146100ab578063a64d0cd4146100c0578063d1190df91461011857600080fd5b80633170f63d1461006c57806340944de914610094575b600080fd5b61007f61007a36600461041d565b61012b565b60405190151581526020015b60405180910390f35b61007f6100a236600461041d565b60800135151590565b6100be6100b936600461045e565b6101fe565b005b6100e77fd9b67a260000000000000000000000000000000000000000000000000000000081565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161008b565b61007f61012636600461041d565b610340565b600061013d60408301602084016104b5565b73ffffffffffffffffffffffffffffffffffffffff1663e985e9c561016560208501856104b5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152336024820152604401602060405180830381865afa1580156101d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f891906104d7565b92915050565b8260000361026c576040517f94d40be700000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f616d6f756e740000000000000000000000000000000000000000000000000000604482015260640160405180910390fd5b6040517ff242432a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004808401919091528682166024840152604483018590526064830186905260a0608484015260a48301527f307830300000000000000000000000000000000000000000000000000000000060c483015282169063f242432a9060e401600060405180830381600087803b15801561032157600080fd5b505af1158015610335573d6000803e3d6000fd5b505050505050505050565b6000608082013561035760408401602085016104b5565b73ffffffffffffffffffffffffffffffffffffffff1662fdd58e61037e60208601866104b5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff909116600482015260608601356024820152604401602060405180830381865afa1580156103f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041591906104f9565b101592915050565b600060a0828403121561042f57600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461045957600080fd5b919050565b600080600080600060a0868803121561047657600080fd5b61047f86610435565b945061048d60208701610435565b935060408601359250606086013591506104a960808701610435565b90509295509295909350565b6000602082840312156104c757600080fd5b6104d082610435565b9392505050565b6000602082840312156104e957600080fd5b815180151581146104d057600080fd5b60006020828403121561050b57600080fd5b505191905056fea26469706673582212201766a0cf2da0cad9a04f5dad3cd74e63b6a20d7a791b15fed915f4b60a8f997a64736f6c63430008170033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x47338BC3 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x47338BC3 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0xA64D0CD4 EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0xD1190DF9 EQ PUSH2 0x118 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3170F63D EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x40944DE9 EQ PUSH2 0x94 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x41D JUMP JUMPDEST PUSH2 0x12B JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xA2 CALLDATASIZE PUSH1 0x4 PUSH2 0x41D JUMP JUMPDEST PUSH1 0x80 ADD CALLDATALOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH2 0xBE PUSH2 0xB9 CALLDATASIZE PUSH1 0x4 PUSH2 0x45E JUMP JUMPDEST PUSH2 0x1FE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE7 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8B JUMP JUMPDEST PUSH2 0x7F PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x41D JUMP JUMPDEST PUSH2 0x340 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13D PUSH1 0x40 DUP4 ADD PUSH1 0x20 DUP5 ADD PUSH2 0x4B5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE985E9C5 PUSH2 0x165 PUSH1 0x20 DUP6 ADD DUP6 PUSH2 0x4B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x4D7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 PUSH1 0x0 SUB PUSH2 0x26C JUMPI PUSH1 0x40 MLOAD PUSH32 0x94D40BE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x616D6F756E740000000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xF242432A00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 DUP2 AND PUSH1 0x4 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP7 DUP3 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD DUP6 SWAP1 MSTORE PUSH1 0x64 DUP4 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 PUSH1 0x84 DUP5 ADD MSTORE PUSH1 0xA4 DUP4 ADD MSTORE PUSH32 0x3078303000000000000000000000000000000000000000000000000000000000 PUSH1 0xC4 DUP4 ADD MSTORE DUP3 AND SWAP1 PUSH4 0xF242432A SWAP1 PUSH1 0xE4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x335 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH2 0x357 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x4B5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E PUSH2 0x37E PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x4B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x415 SWAP2 SWAP1 PUSH2 0x4F9 JUMP JUMPDEST LT ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x42F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x47F DUP7 PUSH2 0x435 JUMP JUMPDEST SWAP5 POP PUSH2 0x48D PUSH1 0x20 DUP8 ADD PUSH2 0x435 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x4A9 PUSH1 0x80 DUP8 ADD PUSH2 0x435 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D0 DUP3 PUSH2 0x435 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x4D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x50B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR PUSH7 0xA0CF2DA0CAD9A0 0x4F 0x5D 0xAD EXTCODECOPY 0xD7 0x4E PUSH4 0xB6A20D7A PUSH26 0x1B15FED915F4B60A8F997A64736F6C6343000817003300000000 ","sourceMap":"157:1597:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;479:170;;;;;;:::i;:::-;;:::i;:::-;;;376:14:34;;369:22;351:41;;339:2;324:18;479:170:28;;;;;;;;1009:112;;;;;;:::i;:::-;1098:12;;;:17;;;1009:112;1502:250;;;;;;:::i;:::-;;:::i;:::-;;281:47;;;;;;;;1255:66:34;1243:79;;;1225:98;;1213:2;1198:18;281:47:28;1081:248:34;747:166:28;;;;;;:::i;:::-;;:::i;479:170::-;546:4;580:11;;;;;;;;:::i;:::-;571:38;;;610:12;;;;:5;:12;:::i;:::-;571:73;;;;;;;;;;1709:42:34;1778:15;;;571:73:28;;;1760:34:34;632:10:28;1810:18:34;;;1803:43;1672:18;;571:73:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;558:86;479:170;-1:-1:-1;;479:170:28:o;1502:250::-;1632:6;1642:1;1632:11;1628:51;;1652:27;;;;;2341:2:34;1652:27:28;;;2323:21:34;2380:1;2360:18;;;2353:29;2418:8;2398:18;;;2391:36;2444:18;;1652:27:28;;;;;;;1628:51;1685:62;;;;;:32;2847:15:34;;;1685:62:28;;;;2829:34:34;;;;2899:15;;;2879:18;;;2872:43;2931:18;;;2924:34;;;2974:18;;;2967:34;;;3038:3;3017:19;;;3010:32;3058:19;;;3051:30;3118:6;3097:19;;;3090:35;1685:32:28;;;;;3142:19:34;;1685:62:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:250;;;;;:::o;747:166::-;812:4;896:12;;;;846:11;;;;;;;;:::i;:::-;837:31;;;869:12;;;;:5;:12;:::i;:::-;837:55;;;;;;;;;;3376:42:34;3364:55;;;837::28;;;3346:74:34;883:8:28;;;;3436:18:34;;;3429:34;3319:18;;837:55:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:71;;;747:166;-1:-1:-1;;747:166:28:o;14:192:34:-;98:6;151:3;139:9;130:7;126:23;122:33;119:53;;;168:1;165;158:12;119:53;-1:-1:-1;191:9:34;14:192;-1:-1:-1;14:192:34:o;403:196::-;471:20;;531:42;520:54;;510:65;;500:93;;589:1;586;579:12;500:93;403:196;;;:::o;604:472::-;699:6;707;715;723;731;784:3;772:9;763:7;759:23;755:33;752:53;;;801:1;798;791:12;752:53;824:29;843:9;824:29;:::i;:::-;814:39;;872:38;906:2;895:9;891:18;872:38;:::i;:::-;862:48;;957:2;946:9;942:18;929:32;919:42;;1008:2;997:9;993:18;980:32;970:42;;1031:39;1065:3;1054:9;1050:19;1031:39;:::i;:::-;1021:49;;604:472;;;;;;;;:::o;1334:186::-;1393:6;1446:2;1434:9;1425:7;1421:23;1417:32;1414:52;;;1462:1;1459;1452:12;1414:52;1485:29;1504:9;1485:29;:::i;:::-;1475:39;1334:186;-1:-1:-1;;;1334:186:34:o;1857:277::-;1924:6;1977:2;1965:9;1956:7;1952:23;1948:32;1945:52;;;1993:1;1990;1983:12;1945:52;2025:9;2019:16;2078:5;2071:13;2064:21;2057:5;2054:32;2044:60;;2100:1;2097;2090:12;3474:184;3544:6;3597:2;3585:9;3576:7;3572:23;3568:32;3565:52;;;3613:1;3610;3603:12;3565:52;-1:-1:-1;3636:16:34;;3474:184;-1:-1:-1;3474:184:34:o"},"methodIdentifiers":{"hasAllowance((address,address,bytes4,uint256,uint256))":"3170f63d","hasBalance((address,address,bytes4,uint256,uint256))":"d1190df9","hasValidParams((address,address,bytes4,uint256,uint256))":"40944de9","interfaceId()":"a64d0cd4","transfer(address,address,uint256,uint256,address)":"47338bc3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"AmountOrIDInvalid\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasBalance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasValidParams\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"interfaceId\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"hasAllowance((address,address,bytes4,uint256,uint256))\":{\"details\":\"Use call: \\\"msg.sender\\\" is Swap contract\",\"params\":{\"party\":\"Party params to check\"}},\"hasBalance((address,address,bytes4,uint256,uint256))\":{\"params\":{\"party\":\"Party params to check\"}},\"hasValidParams((address,address,bytes4,uint256,uint256))\":{\"params\":{\"party\":\"Party params to check\"}},\"transfer(address,address,uint256,uint256,address)\":{\"details\":\"Use delegatecall: \\\"this\\\" is Swap contract\",\"params\":{\"amount\":\"uint256 Amount for ERC-1155\",\"from\":\"address Wallet address to transfer from\",\"id\":\"uint256 token ID for ERC-1155\",\"to\":\"address Wallet address to transfer to\",\"token\":\"address Contract address of token\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"AmountOrIDInvalid(string)\":[{\"notice\":\"Revert if provided an invalid transfer argument\"}]},\"kind\":\"user\",\"methods\":{\"hasAllowance((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks allowance on an ERC1155\"},\"hasBalance((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks balance on an ERC1155\"},\"hasValidParams((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks params for transfer\"},\"interfaceId()\":{\"notice\":\"Indicates the ERC165 interfaceId supported by this adapter\"},\"transfer(address,address,uint256,uint256,address)\":{\"notice\":\"Function to wrap safeTransferFrom for ERC1155\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/adapters/ERC1155Adapter.sol\":\"ERC1155Adapter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xcab667ddad478ff0d39c2053ca77fac778af8483c18ab07d810277b4216fd582\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://919c7ea27c77275c3c341da0c4a26a66a20ed27605fbe8becf11f58ec3bc65bf\",\"dweb:/ipfs/QmRLKyVE2n7e2Jo4bLNn8eLgqqhNGYnVQyjJPWdr8poskf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/adapters/ERC1155Adapter.sol\":{\"keccak256\":\"0x31cb1cda49705baa19fe6ca14761e21d10f9f23530f0ab0926924785e728d625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb8e3bbc7f4f43563f20a16a06561d4b34384efd5534d85c034335a73bd624d\",\"dweb:/ipfs/QmdWzvSfwbXeMDEurDhnJiAoxxmC4UaTR5EpodFDZBBrm2\"]},\"contracts/interfaces/IAdapter.sol\":{\"keccak256\":\"0x3517dae3dd23781ca263902ebe2ac6cb6af6a529b06b70cdf4031bd65595545e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6190f4aef0d7e4dce1cc0588665136f5a688438fd1f122fa53568aac123c22c\",\"dweb:/ipfs/QmbrpiRTJMBUv43xuwivkV8pNVUFHqYkecSusUpQk3sMqB\"]}},\"version\":1}"}},"contracts/adapters/ERC20Adapter.sol":{"ERC20Adapter":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"AmountOrIDInvalid","type":"error"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasValidParams","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"interfaceId","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b506108a5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806347338bc31161005057806347338bc3146100aa578063a64d0cd4146100bf578063d1190df91461011757600080fd5b80633170f63d1461006c57806340944de914610094575b600080fd5b61007f61007a3660046106e9565b61012a565b60405190151581526020015b60405180910390f35b61007f6100a23660046106e9565b606001351590565b6100bd6100b836600461072a565b610205565b005b6100e67f36372b070000000000000000000000000000000000000000000000000000000081565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161008b565b61007f6101253660046106e9565b61029b565b600060808201356101416040840160208501610781565b73ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e6101696020860186610781565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201523360248201526044015b602060405180830381865afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906107a3565b101592915050565b8115610272576040517f94d40be700000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f696400000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61029473ffffffffffffffffffffffffffffffffffffffff821686868661032b565b5050505050565b600060808201356102b26040840160208501610781565b73ffffffffffffffffffffffffffffffffffffffff166370a082316102da6020860186610781565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024016101bc565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103c09085906103c6565b50505050565b6000610428826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104da9092919063ffffffff16565b905080516000148061044957508080602001905181019061044991906107bc565b6104d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610269565b505050565b60606104e984846000856104f1565b949350505050565b606082471015610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610269565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105ac9190610802565b60006040518083038185875af1925050503d80600081146105e9576040519150601f19603f3d011682016040523d82523d6000602084013e6105ee565b606091505b50915091506105ff8783838761060a565b979650505050505050565b606083156106a05782516000036106995773ffffffffffffffffffffffffffffffffffffffff85163b610699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610269565b50816104e9565b6104e983838151156106b55781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610269919061081e565b600060a082840312156106fb57600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461072557600080fd5b919050565b600080600080600060a0868803121561074257600080fd5b61074b86610701565b945061075960208701610701565b9350604086013592506060860135915061077560808701610701565b90509295509295909350565b60006020828403121561079357600080fd5b61079c82610701565b9392505050565b6000602082840312156107b557600080fd5b5051919050565b6000602082840312156107ce57600080fd5b8151801515811461079c57600080fd5b60005b838110156107f95781810151838201526020016107e1565b50506000910152565b600082516108148184602087016107de565b9190910192915050565b602081526000825180602084015261083d8160408501602087016107de565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122098824c7b4dca421a6b4528a0a00cade84e24f0241b0feb7f5cbf478d9b8657a364736f6c63430008170033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8A5 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 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x47338BC3 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x47338BC3 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xA64D0CD4 EQ PUSH2 0xBF JUMPI DUP1 PUSH4 0xD1190DF9 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3170F63D EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x40944DE9 EQ PUSH2 0x94 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x6E9 JUMP JUMPDEST PUSH2 0x12A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xA2 CALLDATASIZE PUSH1 0x4 PUSH2 0x6E9 JUMP JUMPDEST PUSH1 0x60 ADD CALLDATALOAD ISZERO SWAP1 JUMP JUMPDEST PUSH2 0xBD PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x205 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE6 PUSH32 0x36372B0700000000000000000000000000000000000000000000000000000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8B JUMP JUMPDEST PUSH2 0x7F PUSH2 0x125 CALLDATASIZE PUSH1 0x4 PUSH2 0x6E9 JUMP JUMPDEST PUSH2 0x29B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH2 0x141 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x781 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E PUSH2 0x169 PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x781 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x7A3 JUMP JUMPDEST LT ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 ISZERO PUSH2 0x272 JUMPI PUSH1 0x40 MLOAD PUSH32 0x94D40BE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6964000000000000000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x294 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND DUP7 DUP7 DUP7 PUSH2 0x32B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH2 0x2B2 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x781 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 PUSH2 0x2DA PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x781 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE PUSH2 0x3C0 SWAP1 DUP6 SWAP1 PUSH2 0x3C6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x428 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4DA SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ DUP1 PUSH2 0x449 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x449 SWAP2 SWAP1 PUSH2 0x7BC JUMP JUMPDEST PUSH2 0x4D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x269 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E9 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x4F1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x583 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x269 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x5AC SWAP2 SWAP1 PUSH2 0x802 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x5E9 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x5EE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x5FF DUP8 DUP4 DUP4 DUP8 PUSH2 0x60A JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x6A0 JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x699 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EXTCODESIZE PUSH2 0x699 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x269 JUMP JUMPDEST POP DUP2 PUSH2 0x4E9 JUMP JUMPDEST PUSH2 0x4E9 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x6B5 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x81E JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x725 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x74B DUP7 PUSH2 0x701 JUMP JUMPDEST SWAP5 POP PUSH2 0x759 PUSH1 0x20 DUP8 ADD PUSH2 0x701 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x775 PUSH1 0x80 DUP8 ADD PUSH2 0x701 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x793 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x79C DUP3 PUSH2 0x701 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x79C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7F9 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7E1 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x814 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x7DE JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x83D DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x7DE JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 DUP3 0x4C PUSH28 0x4DCA421A6B4528A0A00CADE84E24F0241B0FEB7F5CBF478D9B8657A3 PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"219:1595:29:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_callOptionalReturn_816":{"entryPoint":966,"id":816,"parameterSlots":2,"returnSlots":0},"@_revert_2480":{"entryPoint":null,"id":2480,"parameterSlots":2,"returnSlots":0},"@functionCallWithValue_2305":{"entryPoint":1265,"id":2305,"parameterSlots":4,"returnSlots":1},"@functionCall_2241":{"entryPoint":1242,"id":2241,"parameterSlots":3,"returnSlots":1},"@hasAllowance_6246":{"entryPoint":298,"id":6246,"parameterSlots":1,"returnSlots":1},"@hasBalance_6268":{"entryPoint":667,"id":6268,"parameterSlots":1,"returnSlots":1},"@hasValidParams_6284":{"entryPoint":null,"id":6284,"parameterSlots":1,"returnSlots":1},"@interfaceId_6219":{"entryPoint":null,"id":6219,"parameterSlots":0,"returnSlots":0},"@isContract_2169":{"entryPoint":null,"id":2169,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_549":{"entryPoint":811,"id":549,"parameterSlots":4,"returnSlots":0},"@transfer_6316":{"entryPoint":517,"id":6316,"parameterSlots":5,"returnSlots":0},"@verifyCallResultFromTarget_2436":{"entryPoint":1546,"id":2436,"parameterSlots":4,"returnSlots":1},"abi_decode_address":{"entryPoint":1793,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":1921,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_address":{"entryPoint":1834,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":1980,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Party_$6436_calldata_ptr":{"entryPoint":1769,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":1955,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2050,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2078,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_a709fd3aa96d9faf770e44a5aef2f4808a6fe3a5ddf546568f36ad3a3873f31d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2014,"id":null,"parameterSlots":3,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:5472:34","nodeType":"YulBlock","src":"0:5472:34","statements":[{"nativeSrc":"6:3:34","nodeType":"YulBlock","src":"6:3:34","statements":[]},{"body":{"nativeSrc":"109:97:34","nodeType":"YulBlock","src":"109:97:34","statements":[{"body":{"nativeSrc":"156:16:34","nodeType":"YulBlock","src":"156:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"165:1:34","nodeType":"YulLiteral","src":"165:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"168:1:34","nodeType":"YulLiteral","src":"168:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"158:6:34","nodeType":"YulIdentifier","src":"158:6:34"},"nativeSrc":"158:12:34","nodeType":"YulFunctionCall","src":"158:12:34"},"nativeSrc":"158:12:34","nodeType":"YulExpressionStatement","src":"158:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"130:7:34","nodeType":"YulIdentifier","src":"130:7:34"},{"name":"headStart","nativeSrc":"139:9:34","nodeType":"YulIdentifier","src":"139:9:34"}],"functionName":{"name":"sub","nativeSrc":"126:3:34","nodeType":"YulIdentifier","src":"126:3:34"},"nativeSrc":"126:23:34","nodeType":"YulFunctionCall","src":"126:23:34"},{"kind":"number","nativeSrc":"151:3:34","nodeType":"YulLiteral","src":"151:3:34","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"122:3:34","nodeType":"YulIdentifier","src":"122:3:34"},"nativeSrc":"122:33:34","nodeType":"YulFunctionCall","src":"122:33:34"},"nativeSrc":"119:53:34","nodeType":"YulIf","src":"119:53:34"},{"nativeSrc":"181:19:34","nodeType":"YulAssignment","src":"181:19:34","value":{"name":"headStart","nativeSrc":"191:9:34","nodeType":"YulIdentifier","src":"191:9:34"},"variableNames":[{"name":"value0","nativeSrc":"181:6:34","nodeType":"YulIdentifier","src":"181:6:34"}]}]},"name":"abi_decode_tuple_t_struct$_Party_$6436_calldata_ptr","nativeSrc":"14:192:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"75:9:34","nodeType":"YulTypedName","src":"75:9:34","type":""},{"name":"dataEnd","nativeSrc":"86:7:34","nodeType":"YulTypedName","src":"86:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"98:6:34","nodeType":"YulTypedName","src":"98:6:34","type":""}],"src":"14:192:34"},{"body":{"nativeSrc":"306:92:34","nodeType":"YulBlock","src":"306:92:34","statements":[{"nativeSrc":"316:26:34","nodeType":"YulAssignment","src":"316:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"328:9:34","nodeType":"YulIdentifier","src":"328:9:34"},{"kind":"number","nativeSrc":"339:2:34","nodeType":"YulLiteral","src":"339:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"324:3:34","nodeType":"YulIdentifier","src":"324:3:34"},"nativeSrc":"324:18:34","nodeType":"YulFunctionCall","src":"324:18:34"},"variableNames":[{"name":"tail","nativeSrc":"316:4:34","nodeType":"YulIdentifier","src":"316:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"358:9:34","nodeType":"YulIdentifier","src":"358:9:34"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"383:6:34","nodeType":"YulIdentifier","src":"383:6:34"}],"functionName":{"name":"iszero","nativeSrc":"376:6:34","nodeType":"YulIdentifier","src":"376:6:34"},"nativeSrc":"376:14:34","nodeType":"YulFunctionCall","src":"376:14:34"}],"functionName":{"name":"iszero","nativeSrc":"369:6:34","nodeType":"YulIdentifier","src":"369:6:34"},"nativeSrc":"369:22:34","nodeType":"YulFunctionCall","src":"369:22:34"}],"functionName":{"name":"mstore","nativeSrc":"351:6:34","nodeType":"YulIdentifier","src":"351:6:34"},"nativeSrc":"351:41:34","nodeType":"YulFunctionCall","src":"351:41:34"},"nativeSrc":"351:41:34","nodeType":"YulExpressionStatement","src":"351:41:34"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"211:187:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"275:9:34","nodeType":"YulTypedName","src":"275:9:34","type":""},{"name":"value0","nativeSrc":"286:6:34","nodeType":"YulTypedName","src":"286:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"297:4:34","nodeType":"YulTypedName","src":"297:4:34","type":""}],"src":"211:187:34"},{"body":{"nativeSrc":"452:147:34","nodeType":"YulBlock","src":"452:147:34","statements":[{"nativeSrc":"462:29:34","nodeType":"YulAssignment","src":"462:29:34","value":{"arguments":[{"name":"offset","nativeSrc":"484:6:34","nodeType":"YulIdentifier","src":"484:6:34"}],"functionName":{"name":"calldataload","nativeSrc":"471:12:34","nodeType":"YulIdentifier","src":"471:12:34"},"nativeSrc":"471:20:34","nodeType":"YulFunctionCall","src":"471:20:34"},"variableNames":[{"name":"value","nativeSrc":"462:5:34","nodeType":"YulIdentifier","src":"462:5:34"}]},{"body":{"nativeSrc":"577:16:34","nodeType":"YulBlock","src":"577:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"586:1:34","nodeType":"YulLiteral","src":"586:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"589:1:34","nodeType":"YulLiteral","src":"589:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"579:6:34","nodeType":"YulIdentifier","src":"579:6:34"},"nativeSrc":"579:12:34","nodeType":"YulFunctionCall","src":"579:12:34"},"nativeSrc":"579:12:34","nodeType":"YulExpressionStatement","src":"579:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"513:5:34","nodeType":"YulIdentifier","src":"513:5:34"},{"arguments":[{"name":"value","nativeSrc":"524:5:34","nodeType":"YulIdentifier","src":"524:5:34"},{"kind":"number","nativeSrc":"531:42:34","nodeType":"YulLiteral","src":"531:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"520:3:34","nodeType":"YulIdentifier","src":"520:3:34"},"nativeSrc":"520:54:34","nodeType":"YulFunctionCall","src":"520:54:34"}],"functionName":{"name":"eq","nativeSrc":"510:2:34","nodeType":"YulIdentifier","src":"510:2:34"},"nativeSrc":"510:65:34","nodeType":"YulFunctionCall","src":"510:65:34"}],"functionName":{"name":"iszero","nativeSrc":"503:6:34","nodeType":"YulIdentifier","src":"503:6:34"},"nativeSrc":"503:73:34","nodeType":"YulFunctionCall","src":"503:73:34"},"nativeSrc":"500:93:34","nodeType":"YulIf","src":"500:93:34"}]},"name":"abi_decode_address","nativeSrc":"403:196:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"431:6:34","nodeType":"YulTypedName","src":"431:6:34","type":""}],"returnVariables":[{"name":"value","nativeSrc":"442:5:34","nodeType":"YulTypedName","src":"442:5:34","type":""}],"src":"403:196:34"},{"body":{"nativeSrc":"742:334:34","nodeType":"YulBlock","src":"742:334:34","statements":[{"body":{"nativeSrc":"789:16:34","nodeType":"YulBlock","src":"789:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"798:1:34","nodeType":"YulLiteral","src":"798:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"801:1:34","nodeType":"YulLiteral","src":"801:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"791:6:34","nodeType":"YulIdentifier","src":"791:6:34"},"nativeSrc":"791:12:34","nodeType":"YulFunctionCall","src":"791:12:34"},"nativeSrc":"791:12:34","nodeType":"YulExpressionStatement","src":"791:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"763:7:34","nodeType":"YulIdentifier","src":"763:7:34"},{"name":"headStart","nativeSrc":"772:9:34","nodeType":"YulIdentifier","src":"772:9:34"}],"functionName":{"name":"sub","nativeSrc":"759:3:34","nodeType":"YulIdentifier","src":"759:3:34"},"nativeSrc":"759:23:34","nodeType":"YulFunctionCall","src":"759:23:34"},{"kind":"number","nativeSrc":"784:3:34","nodeType":"YulLiteral","src":"784:3:34","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"755:3:34","nodeType":"YulIdentifier","src":"755:3:34"},"nativeSrc":"755:33:34","nodeType":"YulFunctionCall","src":"755:33:34"},"nativeSrc":"752:53:34","nodeType":"YulIf","src":"752:53:34"},{"nativeSrc":"814:39:34","nodeType":"YulAssignment","src":"814:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"843:9:34","nodeType":"YulIdentifier","src":"843:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"824:18:34","nodeType":"YulIdentifier","src":"824:18:34"},"nativeSrc":"824:29:34","nodeType":"YulFunctionCall","src":"824:29:34"},"variableNames":[{"name":"value0","nativeSrc":"814:6:34","nodeType":"YulIdentifier","src":"814:6:34"}]},{"nativeSrc":"862:48:34","nodeType":"YulAssignment","src":"862:48:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"895:9:34","nodeType":"YulIdentifier","src":"895:9:34"},{"kind":"number","nativeSrc":"906:2:34","nodeType":"YulLiteral","src":"906:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"891:3:34","nodeType":"YulIdentifier","src":"891:3:34"},"nativeSrc":"891:18:34","nodeType":"YulFunctionCall","src":"891:18:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"872:18:34","nodeType":"YulIdentifier","src":"872:18:34"},"nativeSrc":"872:38:34","nodeType":"YulFunctionCall","src":"872:38:34"},"variableNames":[{"name":"value1","nativeSrc":"862:6:34","nodeType":"YulIdentifier","src":"862:6:34"}]},{"nativeSrc":"919:42:34","nodeType":"YulAssignment","src":"919:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"946:9:34","nodeType":"YulIdentifier","src":"946:9:34"},{"kind":"number","nativeSrc":"957:2:34","nodeType":"YulLiteral","src":"957:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"942:3:34","nodeType":"YulIdentifier","src":"942:3:34"},"nativeSrc":"942:18:34","nodeType":"YulFunctionCall","src":"942:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"929:12:34","nodeType":"YulIdentifier","src":"929:12:34"},"nativeSrc":"929:32:34","nodeType":"YulFunctionCall","src":"929:32:34"},"variableNames":[{"name":"value2","nativeSrc":"919:6:34","nodeType":"YulIdentifier","src":"919:6:34"}]},{"nativeSrc":"970:42:34","nodeType":"YulAssignment","src":"970:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"997:9:34","nodeType":"YulIdentifier","src":"997:9:34"},{"kind":"number","nativeSrc":"1008:2:34","nodeType":"YulLiteral","src":"1008:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"993:3:34","nodeType":"YulIdentifier","src":"993:3:34"},"nativeSrc":"993:18:34","nodeType":"YulFunctionCall","src":"993:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"980:12:34","nodeType":"YulIdentifier","src":"980:12:34"},"nativeSrc":"980:32:34","nodeType":"YulFunctionCall","src":"980:32:34"},"variableNames":[{"name":"value3","nativeSrc":"970:6:34","nodeType":"YulIdentifier","src":"970:6:34"}]},{"nativeSrc":"1021:49:34","nodeType":"YulAssignment","src":"1021:49:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1054:9:34","nodeType":"YulIdentifier","src":"1054:9:34"},{"kind":"number","nativeSrc":"1065:3:34","nodeType":"YulLiteral","src":"1065:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1050:3:34","nodeType":"YulIdentifier","src":"1050:3:34"},"nativeSrc":"1050:19:34","nodeType":"YulFunctionCall","src":"1050:19:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1031:18:34","nodeType":"YulIdentifier","src":"1031:18:34"},"nativeSrc":"1031:39:34","nodeType":"YulFunctionCall","src":"1031:39:34"},"variableNames":[{"name":"value4","nativeSrc":"1021:6:34","nodeType":"YulIdentifier","src":"1021:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_address","nativeSrc":"604:472:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"676:9:34","nodeType":"YulTypedName","src":"676:9:34","type":""},{"name":"dataEnd","nativeSrc":"687:7:34","nodeType":"YulTypedName","src":"687:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"699:6:34","nodeType":"YulTypedName","src":"699:6:34","type":""},{"name":"value1","nativeSrc":"707:6:34","nodeType":"YulTypedName","src":"707:6:34","type":""},{"name":"value2","nativeSrc":"715:6:34","nodeType":"YulTypedName","src":"715:6:34","type":""},{"name":"value3","nativeSrc":"723:6:34","nodeType":"YulTypedName","src":"723:6:34","type":""},{"name":"value4","nativeSrc":"731:6:34","nodeType":"YulTypedName","src":"731:6:34","type":""}],"src":"604:472:34"},{"body":{"nativeSrc":"1180:149:34","nodeType":"YulBlock","src":"1180:149:34","statements":[{"nativeSrc":"1190:26:34","nodeType":"YulAssignment","src":"1190:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1202:9:34","nodeType":"YulIdentifier","src":"1202:9:34"},{"kind":"number","nativeSrc":"1213:2:34","nodeType":"YulLiteral","src":"1213:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1198:3:34","nodeType":"YulIdentifier","src":"1198:3:34"},"nativeSrc":"1198:18:34","nodeType":"YulFunctionCall","src":"1198:18:34"},"variableNames":[{"name":"tail","nativeSrc":"1190:4:34","nodeType":"YulIdentifier","src":"1190:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1232:9:34","nodeType":"YulIdentifier","src":"1232:9:34"},{"arguments":[{"name":"value0","nativeSrc":"1247:6:34","nodeType":"YulIdentifier","src":"1247:6:34"},{"kind":"number","nativeSrc":"1255:66:34","nodeType":"YulLiteral","src":"1255:66:34","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"1243:3:34","nodeType":"YulIdentifier","src":"1243:3:34"},"nativeSrc":"1243:79:34","nodeType":"YulFunctionCall","src":"1243:79:34"}],"functionName":{"name":"mstore","nativeSrc":"1225:6:34","nodeType":"YulIdentifier","src":"1225:6:34"},"nativeSrc":"1225:98:34","nodeType":"YulFunctionCall","src":"1225:98:34"},"nativeSrc":"1225:98:34","nodeType":"YulExpressionStatement","src":"1225:98:34"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"1081:248:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1149:9:34","nodeType":"YulTypedName","src":"1149:9:34","type":""},{"name":"value0","nativeSrc":"1160:6:34","nodeType":"YulTypedName","src":"1160:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1171:4:34","nodeType":"YulTypedName","src":"1171:4:34","type":""}],"src":"1081:248:34"},{"body":{"nativeSrc":"1404:116:34","nodeType":"YulBlock","src":"1404:116:34","statements":[{"body":{"nativeSrc":"1450:16:34","nodeType":"YulBlock","src":"1450:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1459:1:34","nodeType":"YulLiteral","src":"1459:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1462:1:34","nodeType":"YulLiteral","src":"1462:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1452:6:34","nodeType":"YulIdentifier","src":"1452:6:34"},"nativeSrc":"1452:12:34","nodeType":"YulFunctionCall","src":"1452:12:34"},"nativeSrc":"1452:12:34","nodeType":"YulExpressionStatement","src":"1452:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1425:7:34","nodeType":"YulIdentifier","src":"1425:7:34"},{"name":"headStart","nativeSrc":"1434:9:34","nodeType":"YulIdentifier","src":"1434:9:34"}],"functionName":{"name":"sub","nativeSrc":"1421:3:34","nodeType":"YulIdentifier","src":"1421:3:34"},"nativeSrc":"1421:23:34","nodeType":"YulFunctionCall","src":"1421:23:34"},{"kind":"number","nativeSrc":"1446:2:34","nodeType":"YulLiteral","src":"1446:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1417:3:34","nodeType":"YulIdentifier","src":"1417:3:34"},"nativeSrc":"1417:32:34","nodeType":"YulFunctionCall","src":"1417:32:34"},"nativeSrc":"1414:52:34","nodeType":"YulIf","src":"1414:52:34"},{"nativeSrc":"1475:39:34","nodeType":"YulAssignment","src":"1475:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1504:9:34","nodeType":"YulIdentifier","src":"1504:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"1485:18:34","nodeType":"YulIdentifier","src":"1485:18:34"},"nativeSrc":"1485:29:34","nodeType":"YulFunctionCall","src":"1485:29:34"},"variableNames":[{"name":"value0","nativeSrc":"1475:6:34","nodeType":"YulIdentifier","src":"1475:6:34"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1334:186:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1370:9:34","nodeType":"YulTypedName","src":"1370:9:34","type":""},{"name":"dataEnd","nativeSrc":"1381:7:34","nodeType":"YulTypedName","src":"1381:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1393:6:34","nodeType":"YulTypedName","src":"1393:6:34","type":""}],"src":"1334:186:34"},{"body":{"nativeSrc":"1654:198:34","nodeType":"YulBlock","src":"1654:198:34","statements":[{"nativeSrc":"1664:26:34","nodeType":"YulAssignment","src":"1664:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1676:9:34","nodeType":"YulIdentifier","src":"1676:9:34"},{"kind":"number","nativeSrc":"1687:2:34","nodeType":"YulLiteral","src":"1687:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1672:3:34","nodeType":"YulIdentifier","src":"1672:3:34"},"nativeSrc":"1672:18:34","nodeType":"YulFunctionCall","src":"1672:18:34"},"variableNames":[{"name":"tail","nativeSrc":"1664:4:34","nodeType":"YulIdentifier","src":"1664:4:34"}]},{"nativeSrc":"1699:52:34","nodeType":"YulVariableDeclaration","src":"1699:52:34","value":{"kind":"number","nativeSrc":"1709:42:34","nodeType":"YulLiteral","src":"1709:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"1703:2:34","nodeType":"YulTypedName","src":"1703:2:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1767:9:34","nodeType":"YulIdentifier","src":"1767:9:34"},{"arguments":[{"name":"value0","nativeSrc":"1782:6:34","nodeType":"YulIdentifier","src":"1782:6:34"},{"name":"_1","nativeSrc":"1790:2:34","nodeType":"YulIdentifier","src":"1790:2:34"}],"functionName":{"name":"and","nativeSrc":"1778:3:34","nodeType":"YulIdentifier","src":"1778:3:34"},"nativeSrc":"1778:15:34","nodeType":"YulFunctionCall","src":"1778:15:34"}],"functionName":{"name":"mstore","nativeSrc":"1760:6:34","nodeType":"YulIdentifier","src":"1760:6:34"},"nativeSrc":"1760:34:34","nodeType":"YulFunctionCall","src":"1760:34:34"},"nativeSrc":"1760:34:34","nodeType":"YulExpressionStatement","src":"1760:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1814:9:34","nodeType":"YulIdentifier","src":"1814:9:34"},{"kind":"number","nativeSrc":"1825:2:34","nodeType":"YulLiteral","src":"1825:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1810:3:34","nodeType":"YulIdentifier","src":"1810:3:34"},"nativeSrc":"1810:18:34","nodeType":"YulFunctionCall","src":"1810:18:34"},{"arguments":[{"name":"value1","nativeSrc":"1834:6:34","nodeType":"YulIdentifier","src":"1834:6:34"},{"name":"_1","nativeSrc":"1842:2:34","nodeType":"YulIdentifier","src":"1842:2:34"}],"functionName":{"name":"and","nativeSrc":"1830:3:34","nodeType":"YulIdentifier","src":"1830:3:34"},"nativeSrc":"1830:15:34","nodeType":"YulFunctionCall","src":"1830:15:34"}],"functionName":{"name":"mstore","nativeSrc":"1803:6:34","nodeType":"YulIdentifier","src":"1803:6:34"},"nativeSrc":"1803:43:34","nodeType":"YulFunctionCall","src":"1803:43:34"},"nativeSrc":"1803:43:34","nodeType":"YulExpressionStatement","src":"1803:43:34"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"1525:327:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1615:9:34","nodeType":"YulTypedName","src":"1615:9:34","type":""},{"name":"value1","nativeSrc":"1626:6:34","nodeType":"YulTypedName","src":"1626:6:34","type":""},{"name":"value0","nativeSrc":"1634:6:34","nodeType":"YulTypedName","src":"1634:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1645:4:34","nodeType":"YulTypedName","src":"1645:4:34","type":""}],"src":"1525:327:34"},{"body":{"nativeSrc":"1938:103:34","nodeType":"YulBlock","src":"1938:103:34","statements":[{"body":{"nativeSrc":"1984:16:34","nodeType":"YulBlock","src":"1984:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1993:1:34","nodeType":"YulLiteral","src":"1993:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1996:1:34","nodeType":"YulLiteral","src":"1996:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1986:6:34","nodeType":"YulIdentifier","src":"1986:6:34"},"nativeSrc":"1986:12:34","nodeType":"YulFunctionCall","src":"1986:12:34"},"nativeSrc":"1986:12:34","nodeType":"YulExpressionStatement","src":"1986:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1959:7:34","nodeType":"YulIdentifier","src":"1959:7:34"},{"name":"headStart","nativeSrc":"1968:9:34","nodeType":"YulIdentifier","src":"1968:9:34"}],"functionName":{"name":"sub","nativeSrc":"1955:3:34","nodeType":"YulIdentifier","src":"1955:3:34"},"nativeSrc":"1955:23:34","nodeType":"YulFunctionCall","src":"1955:23:34"},{"kind":"number","nativeSrc":"1980:2:34","nodeType":"YulLiteral","src":"1980:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1951:3:34","nodeType":"YulIdentifier","src":"1951:3:34"},"nativeSrc":"1951:32:34","nodeType":"YulFunctionCall","src":"1951:32:34"},"nativeSrc":"1948:52:34","nodeType":"YulIf","src":"1948:52:34"},{"nativeSrc":"2009:26:34","nodeType":"YulAssignment","src":"2009:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2025:9:34","nodeType":"YulIdentifier","src":"2025:9:34"}],"functionName":{"name":"mload","nativeSrc":"2019:5:34","nodeType":"YulIdentifier","src":"2019:5:34"},"nativeSrc":"2019:16:34","nodeType":"YulFunctionCall","src":"2019:16:34"},"variableNames":[{"name":"value0","nativeSrc":"2009:6:34","nodeType":"YulIdentifier","src":"2009:6:34"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"1857:184:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1904:9:34","nodeType":"YulTypedName","src":"1904:9:34","type":""},{"name":"dataEnd","nativeSrc":"1915:7:34","nodeType":"YulTypedName","src":"1915:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1927:6:34","nodeType":"YulTypedName","src":"1927:6:34","type":""}],"src":"1857:184:34"},{"body":{"nativeSrc":"2220:151:34","nodeType":"YulBlock","src":"2220:151:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2237:9:34","nodeType":"YulIdentifier","src":"2237:9:34"},{"kind":"number","nativeSrc":"2248:2:34","nodeType":"YulLiteral","src":"2248:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2230:6:34","nodeType":"YulIdentifier","src":"2230:6:34"},"nativeSrc":"2230:21:34","nodeType":"YulFunctionCall","src":"2230:21:34"},"nativeSrc":"2230:21:34","nodeType":"YulExpressionStatement","src":"2230:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2271:9:34","nodeType":"YulIdentifier","src":"2271:9:34"},{"kind":"number","nativeSrc":"2282:2:34","nodeType":"YulLiteral","src":"2282:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2267:3:34","nodeType":"YulIdentifier","src":"2267:3:34"},"nativeSrc":"2267:18:34","nodeType":"YulFunctionCall","src":"2267:18:34"},{"kind":"number","nativeSrc":"2287:1:34","nodeType":"YulLiteral","src":"2287:1:34","type":"","value":"2"}],"functionName":{"name":"mstore","nativeSrc":"2260:6:34","nodeType":"YulIdentifier","src":"2260:6:34"},"nativeSrc":"2260:29:34","nodeType":"YulFunctionCall","src":"2260:29:34"},"nativeSrc":"2260:29:34","nodeType":"YulExpressionStatement","src":"2260:29:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2309:9:34","nodeType":"YulIdentifier","src":"2309:9:34"},{"kind":"number","nativeSrc":"2320:2:34","nodeType":"YulLiteral","src":"2320:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2305:3:34","nodeType":"YulIdentifier","src":"2305:3:34"},"nativeSrc":"2305:18:34","nodeType":"YulFunctionCall","src":"2305:18:34"},{"hexValue":"6964","kind":"string","nativeSrc":"2325:4:34","nodeType":"YulLiteral","src":"2325:4:34","type":"","value":"id"}],"functionName":{"name":"mstore","nativeSrc":"2298:6:34","nodeType":"YulIdentifier","src":"2298:6:34"},"nativeSrc":"2298:32:34","nodeType":"YulFunctionCall","src":"2298:32:34"},"nativeSrc":"2298:32:34","nodeType":"YulExpressionStatement","src":"2298:32:34"},{"nativeSrc":"2339:26:34","nodeType":"YulAssignment","src":"2339:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2351:9:34","nodeType":"YulIdentifier","src":"2351:9:34"},{"kind":"number","nativeSrc":"2362:2:34","nodeType":"YulLiteral","src":"2362:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2347:3:34","nodeType":"YulIdentifier","src":"2347:3:34"},"nativeSrc":"2347:18:34","nodeType":"YulFunctionCall","src":"2347:18:34"},"variableNames":[{"name":"tail","nativeSrc":"2339:4:34","nodeType":"YulIdentifier","src":"2339:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_a709fd3aa96d9faf770e44a5aef2f4808a6fe3a5ddf546568f36ad3a3873f31d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2046:325:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2197:9:34","nodeType":"YulTypedName","src":"2197:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2211:4:34","nodeType":"YulTypedName","src":"2211:4:34","type":""}],"src":"2046:325:34"},{"body":{"nativeSrc":"2477:125:34","nodeType":"YulBlock","src":"2477:125:34","statements":[{"nativeSrc":"2487:26:34","nodeType":"YulAssignment","src":"2487:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2499:9:34","nodeType":"YulIdentifier","src":"2499:9:34"},{"kind":"number","nativeSrc":"2510:2:34","nodeType":"YulLiteral","src":"2510:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2495:3:34","nodeType":"YulIdentifier","src":"2495:3:34"},"nativeSrc":"2495:18:34","nodeType":"YulFunctionCall","src":"2495:18:34"},"variableNames":[{"name":"tail","nativeSrc":"2487:4:34","nodeType":"YulIdentifier","src":"2487:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2529:9:34","nodeType":"YulIdentifier","src":"2529:9:34"},{"arguments":[{"name":"value0","nativeSrc":"2544:6:34","nodeType":"YulIdentifier","src":"2544:6:34"},{"kind":"number","nativeSrc":"2552:42:34","nodeType":"YulLiteral","src":"2552:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2540:3:34","nodeType":"YulIdentifier","src":"2540:3:34"},"nativeSrc":"2540:55:34","nodeType":"YulFunctionCall","src":"2540:55:34"}],"functionName":{"name":"mstore","nativeSrc":"2522:6:34","nodeType":"YulIdentifier","src":"2522:6:34"},"nativeSrc":"2522:74:34","nodeType":"YulFunctionCall","src":"2522:74:34"},"nativeSrc":"2522:74:34","nodeType":"YulExpressionStatement","src":"2522:74:34"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2376:226:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2446:9:34","nodeType":"YulTypedName","src":"2446:9:34","type":""},{"name":"value0","nativeSrc":"2457:6:34","nodeType":"YulTypedName","src":"2457:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2468:4:34","nodeType":"YulTypedName","src":"2468:4:34","type":""}],"src":"2376:226:34"},{"body":{"nativeSrc":"2764:241:34","nodeType":"YulBlock","src":"2764:241:34","statements":[{"nativeSrc":"2774:26:34","nodeType":"YulAssignment","src":"2774:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2786:9:34","nodeType":"YulIdentifier","src":"2786:9:34"},{"kind":"number","nativeSrc":"2797:2:34","nodeType":"YulLiteral","src":"2797:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2782:3:34","nodeType":"YulIdentifier","src":"2782:3:34"},"nativeSrc":"2782:18:34","nodeType":"YulFunctionCall","src":"2782:18:34"},"variableNames":[{"name":"tail","nativeSrc":"2774:4:34","nodeType":"YulIdentifier","src":"2774:4:34"}]},{"nativeSrc":"2809:52:34","nodeType":"YulVariableDeclaration","src":"2809:52:34","value":{"kind":"number","nativeSrc":"2819:42:34","nodeType":"YulLiteral","src":"2819:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"2813:2:34","nodeType":"YulTypedName","src":"2813:2:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2877:9:34","nodeType":"YulIdentifier","src":"2877:9:34"},{"arguments":[{"name":"value0","nativeSrc":"2892:6:34","nodeType":"YulIdentifier","src":"2892:6:34"},{"name":"_1","nativeSrc":"2900:2:34","nodeType":"YulIdentifier","src":"2900:2:34"}],"functionName":{"name":"and","nativeSrc":"2888:3:34","nodeType":"YulIdentifier","src":"2888:3:34"},"nativeSrc":"2888:15:34","nodeType":"YulFunctionCall","src":"2888:15:34"}],"functionName":{"name":"mstore","nativeSrc":"2870:6:34","nodeType":"YulIdentifier","src":"2870:6:34"},"nativeSrc":"2870:34:34","nodeType":"YulFunctionCall","src":"2870:34:34"},"nativeSrc":"2870:34:34","nodeType":"YulExpressionStatement","src":"2870:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2924:9:34","nodeType":"YulIdentifier","src":"2924:9:34"},{"kind":"number","nativeSrc":"2935:2:34","nodeType":"YulLiteral","src":"2935:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2920:3:34","nodeType":"YulIdentifier","src":"2920:3:34"},"nativeSrc":"2920:18:34","nodeType":"YulFunctionCall","src":"2920:18:34"},{"arguments":[{"name":"value1","nativeSrc":"2944:6:34","nodeType":"YulIdentifier","src":"2944:6:34"},{"name":"_1","nativeSrc":"2952:2:34","nodeType":"YulIdentifier","src":"2952:2:34"}],"functionName":{"name":"and","nativeSrc":"2940:3:34","nodeType":"YulIdentifier","src":"2940:3:34"},"nativeSrc":"2940:15:34","nodeType":"YulFunctionCall","src":"2940:15:34"}],"functionName":{"name":"mstore","nativeSrc":"2913:6:34","nodeType":"YulIdentifier","src":"2913:6:34"},"nativeSrc":"2913:43:34","nodeType":"YulFunctionCall","src":"2913:43:34"},"nativeSrc":"2913:43:34","nodeType":"YulExpressionStatement","src":"2913:43:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2976:9:34","nodeType":"YulIdentifier","src":"2976:9:34"},{"kind":"number","nativeSrc":"2987:2:34","nodeType":"YulLiteral","src":"2987:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2972:3:34","nodeType":"YulIdentifier","src":"2972:3:34"},"nativeSrc":"2972:18:34","nodeType":"YulFunctionCall","src":"2972:18:34"},{"name":"value2","nativeSrc":"2992:6:34","nodeType":"YulIdentifier","src":"2992:6:34"}],"functionName":{"name":"mstore","nativeSrc":"2965:6:34","nodeType":"YulIdentifier","src":"2965:6:34"},"nativeSrc":"2965:34:34","nodeType":"YulFunctionCall","src":"2965:34:34"},"nativeSrc":"2965:34:34","nodeType":"YulExpressionStatement","src":"2965:34:34"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"2607:398:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2717:9:34","nodeType":"YulTypedName","src":"2717:9:34","type":""},{"name":"value2","nativeSrc":"2728:6:34","nodeType":"YulTypedName","src":"2728:6:34","type":""},{"name":"value1","nativeSrc":"2736:6:34","nodeType":"YulTypedName","src":"2736:6:34","type":""},{"name":"value0","nativeSrc":"2744:6:34","nodeType":"YulTypedName","src":"2744:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2755:4:34","nodeType":"YulTypedName","src":"2755:4:34","type":""}],"src":"2607:398:34"},{"body":{"nativeSrc":"3088:199:34","nodeType":"YulBlock","src":"3088:199:34","statements":[{"body":{"nativeSrc":"3134:16:34","nodeType":"YulBlock","src":"3134:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3143:1:34","nodeType":"YulLiteral","src":"3143:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3146:1:34","nodeType":"YulLiteral","src":"3146:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3136:6:34","nodeType":"YulIdentifier","src":"3136:6:34"},"nativeSrc":"3136:12:34","nodeType":"YulFunctionCall","src":"3136:12:34"},"nativeSrc":"3136:12:34","nodeType":"YulExpressionStatement","src":"3136:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3109:7:34","nodeType":"YulIdentifier","src":"3109:7:34"},{"name":"headStart","nativeSrc":"3118:9:34","nodeType":"YulIdentifier","src":"3118:9:34"}],"functionName":{"name":"sub","nativeSrc":"3105:3:34","nodeType":"YulIdentifier","src":"3105:3:34"},"nativeSrc":"3105:23:34","nodeType":"YulFunctionCall","src":"3105:23:34"},{"kind":"number","nativeSrc":"3130:2:34","nodeType":"YulLiteral","src":"3130:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3101:3:34","nodeType":"YulIdentifier","src":"3101:3:34"},"nativeSrc":"3101:32:34","nodeType":"YulFunctionCall","src":"3101:32:34"},"nativeSrc":"3098:52:34","nodeType":"YulIf","src":"3098:52:34"},{"nativeSrc":"3159:29:34","nodeType":"YulVariableDeclaration","src":"3159:29:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3178:9:34","nodeType":"YulIdentifier","src":"3178:9:34"}],"functionName":{"name":"mload","nativeSrc":"3172:5:34","nodeType":"YulIdentifier","src":"3172:5:34"},"nativeSrc":"3172:16:34","nodeType":"YulFunctionCall","src":"3172:16:34"},"variables":[{"name":"value","nativeSrc":"3163:5:34","nodeType":"YulTypedName","src":"3163:5:34","type":""}]},{"body":{"nativeSrc":"3241:16:34","nodeType":"YulBlock","src":"3241:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3250:1:34","nodeType":"YulLiteral","src":"3250:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3253:1:34","nodeType":"YulLiteral","src":"3253:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3243:6:34","nodeType":"YulIdentifier","src":"3243:6:34"},"nativeSrc":"3243:12:34","nodeType":"YulFunctionCall","src":"3243:12:34"},"nativeSrc":"3243:12:34","nodeType":"YulExpressionStatement","src":"3243:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3210:5:34","nodeType":"YulIdentifier","src":"3210:5:34"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3231:5:34","nodeType":"YulIdentifier","src":"3231:5:34"}],"functionName":{"name":"iszero","nativeSrc":"3224:6:34","nodeType":"YulIdentifier","src":"3224:6:34"},"nativeSrc":"3224:13:34","nodeType":"YulFunctionCall","src":"3224:13:34"}],"functionName":{"name":"iszero","nativeSrc":"3217:6:34","nodeType":"YulIdentifier","src":"3217:6:34"},"nativeSrc":"3217:21:34","nodeType":"YulFunctionCall","src":"3217:21:34"}],"functionName":{"name":"eq","nativeSrc":"3207:2:34","nodeType":"YulIdentifier","src":"3207:2:34"},"nativeSrc":"3207:32:34","nodeType":"YulFunctionCall","src":"3207:32:34"}],"functionName":{"name":"iszero","nativeSrc":"3200:6:34","nodeType":"YulIdentifier","src":"3200:6:34"},"nativeSrc":"3200:40:34","nodeType":"YulFunctionCall","src":"3200:40:34"},"nativeSrc":"3197:60:34","nodeType":"YulIf","src":"3197:60:34"},{"nativeSrc":"3266:15:34","nodeType":"YulAssignment","src":"3266:15:34","value":{"name":"value","nativeSrc":"3276:5:34","nodeType":"YulIdentifier","src":"3276:5:34"},"variableNames":[{"name":"value0","nativeSrc":"3266:6:34","nodeType":"YulIdentifier","src":"3266:6:34"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"3010:277:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3054:9:34","nodeType":"YulTypedName","src":"3054:9:34","type":""},{"name":"dataEnd","nativeSrc":"3065:7:34","nodeType":"YulTypedName","src":"3065:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3077:6:34","nodeType":"YulTypedName","src":"3077:6:34","type":""}],"src":"3010:277:34"},{"body":{"nativeSrc":"3466:232:34","nodeType":"YulBlock","src":"3466:232:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3483:9:34","nodeType":"YulIdentifier","src":"3483:9:34"},{"kind":"number","nativeSrc":"3494:2:34","nodeType":"YulLiteral","src":"3494:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3476:6:34","nodeType":"YulIdentifier","src":"3476:6:34"},"nativeSrc":"3476:21:34","nodeType":"YulFunctionCall","src":"3476:21:34"},"nativeSrc":"3476:21:34","nodeType":"YulExpressionStatement","src":"3476:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3517:9:34","nodeType":"YulIdentifier","src":"3517:9:34"},{"kind":"number","nativeSrc":"3528:2:34","nodeType":"YulLiteral","src":"3528:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3513:3:34","nodeType":"YulIdentifier","src":"3513:3:34"},"nativeSrc":"3513:18:34","nodeType":"YulFunctionCall","src":"3513:18:34"},{"kind":"number","nativeSrc":"3533:2:34","nodeType":"YulLiteral","src":"3533:2:34","type":"","value":"42"}],"functionName":{"name":"mstore","nativeSrc":"3506:6:34","nodeType":"YulIdentifier","src":"3506:6:34"},"nativeSrc":"3506:30:34","nodeType":"YulFunctionCall","src":"3506:30:34"},"nativeSrc":"3506:30:34","nodeType":"YulExpressionStatement","src":"3506:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3556:9:34","nodeType":"YulIdentifier","src":"3556:9:34"},{"kind":"number","nativeSrc":"3567:2:34","nodeType":"YulLiteral","src":"3567:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3552:3:34","nodeType":"YulIdentifier","src":"3552:3:34"},"nativeSrc":"3552:18:34","nodeType":"YulFunctionCall","src":"3552:18:34"},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e","kind":"string","nativeSrc":"3572:34:34","nodeType":"YulLiteral","src":"3572:34:34","type":"","value":"SafeERC20: ERC20 operation did n"}],"functionName":{"name":"mstore","nativeSrc":"3545:6:34","nodeType":"YulIdentifier","src":"3545:6:34"},"nativeSrc":"3545:62:34","nodeType":"YulFunctionCall","src":"3545:62:34"},"nativeSrc":"3545:62:34","nodeType":"YulExpressionStatement","src":"3545:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3627:9:34","nodeType":"YulIdentifier","src":"3627:9:34"},{"kind":"number","nativeSrc":"3638:2:34","nodeType":"YulLiteral","src":"3638:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3623:3:34","nodeType":"YulIdentifier","src":"3623:3:34"},"nativeSrc":"3623:18:34","nodeType":"YulFunctionCall","src":"3623:18:34"},{"hexValue":"6f742073756363656564","kind":"string","nativeSrc":"3643:12:34","nodeType":"YulLiteral","src":"3643:12:34","type":"","value":"ot succeed"}],"functionName":{"name":"mstore","nativeSrc":"3616:6:34","nodeType":"YulIdentifier","src":"3616:6:34"},"nativeSrc":"3616:40:34","nodeType":"YulFunctionCall","src":"3616:40:34"},"nativeSrc":"3616:40:34","nodeType":"YulExpressionStatement","src":"3616:40:34"},{"nativeSrc":"3665:27:34","nodeType":"YulAssignment","src":"3665:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3677:9:34","nodeType":"YulIdentifier","src":"3677:9:34"},{"kind":"number","nativeSrc":"3688:3:34","nodeType":"YulLiteral","src":"3688:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3673:3:34","nodeType":"YulIdentifier","src":"3673:3:34"},"nativeSrc":"3673:19:34","nodeType":"YulFunctionCall","src":"3673:19:34"},"variableNames":[{"name":"tail","nativeSrc":"3665:4:34","nodeType":"YulIdentifier","src":"3665:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3292:406:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3443:9:34","nodeType":"YulTypedName","src":"3443:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3457:4:34","nodeType":"YulTypedName","src":"3457:4:34","type":""}],"src":"3292:406:34"},{"body":{"nativeSrc":"3877:228:34","nodeType":"YulBlock","src":"3877:228:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3894:9:34","nodeType":"YulIdentifier","src":"3894:9:34"},{"kind":"number","nativeSrc":"3905:2:34","nodeType":"YulLiteral","src":"3905:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3887:6:34","nodeType":"YulIdentifier","src":"3887:6:34"},"nativeSrc":"3887:21:34","nodeType":"YulFunctionCall","src":"3887:21:34"},"nativeSrc":"3887:21:34","nodeType":"YulExpressionStatement","src":"3887:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3928:9:34","nodeType":"YulIdentifier","src":"3928:9:34"},{"kind":"number","nativeSrc":"3939:2:34","nodeType":"YulLiteral","src":"3939:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3924:3:34","nodeType":"YulIdentifier","src":"3924:3:34"},"nativeSrc":"3924:18:34","nodeType":"YulFunctionCall","src":"3924:18:34"},{"kind":"number","nativeSrc":"3944:2:34","nodeType":"YulLiteral","src":"3944:2:34","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"3917:6:34","nodeType":"YulIdentifier","src":"3917:6:34"},"nativeSrc":"3917:30:34","nodeType":"YulFunctionCall","src":"3917:30:34"},"nativeSrc":"3917:30:34","nodeType":"YulExpressionStatement","src":"3917:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3967:9:34","nodeType":"YulIdentifier","src":"3967:9:34"},{"kind":"number","nativeSrc":"3978:2:34","nodeType":"YulLiteral","src":"3978:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3963:3:34","nodeType":"YulIdentifier","src":"3963:3:34"},"nativeSrc":"3963:18:34","nodeType":"YulFunctionCall","src":"3963:18:34"},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f","kind":"string","nativeSrc":"3983:34:34","nodeType":"YulLiteral","src":"3983:34:34","type":"","value":"Address: insufficient balance fo"}],"functionName":{"name":"mstore","nativeSrc":"3956:6:34","nodeType":"YulIdentifier","src":"3956:6:34"},"nativeSrc":"3956:62:34","nodeType":"YulFunctionCall","src":"3956:62:34"},"nativeSrc":"3956:62:34","nodeType":"YulExpressionStatement","src":"3956:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4038:9:34","nodeType":"YulIdentifier","src":"4038:9:34"},{"kind":"number","nativeSrc":"4049:2:34","nodeType":"YulLiteral","src":"4049:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4034:3:34","nodeType":"YulIdentifier","src":"4034:3:34"},"nativeSrc":"4034:18:34","nodeType":"YulFunctionCall","src":"4034:18:34"},{"hexValue":"722063616c6c","kind":"string","nativeSrc":"4054:8:34","nodeType":"YulLiteral","src":"4054:8:34","type":"","value":"r call"}],"functionName":{"name":"mstore","nativeSrc":"4027:6:34","nodeType":"YulIdentifier","src":"4027:6:34"},"nativeSrc":"4027:36:34","nodeType":"YulFunctionCall","src":"4027:36:34"},"nativeSrc":"4027:36:34","nodeType":"YulExpressionStatement","src":"4027:36:34"},{"nativeSrc":"4072:27:34","nodeType":"YulAssignment","src":"4072:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"4084:9:34","nodeType":"YulIdentifier","src":"4084:9:34"},{"kind":"number","nativeSrc":"4095:3:34","nodeType":"YulLiteral","src":"4095:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"4080:3:34","nodeType":"YulIdentifier","src":"4080:3:34"},"nativeSrc":"4080:19:34","nodeType":"YulFunctionCall","src":"4080:19:34"},"variableNames":[{"name":"tail","nativeSrc":"4072:4:34","nodeType":"YulIdentifier","src":"4072:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3703:402:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3854:9:34","nodeType":"YulTypedName","src":"3854:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3868:4:34","nodeType":"YulTypedName","src":"3868:4:34","type":""}],"src":"3703:402:34"},{"body":{"nativeSrc":"4176:184:34","nodeType":"YulBlock","src":"4176:184:34","statements":[{"nativeSrc":"4186:10:34","nodeType":"YulVariableDeclaration","src":"4186:10:34","value":{"kind":"number","nativeSrc":"4195:1:34","nodeType":"YulLiteral","src":"4195:1:34","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4190:1:34","nodeType":"YulTypedName","src":"4190:1:34","type":""}]},{"body":{"nativeSrc":"4255:63:34","nodeType":"YulBlock","src":"4255:63:34","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4280:3:34","nodeType":"YulIdentifier","src":"4280:3:34"},{"name":"i","nativeSrc":"4285:1:34","nodeType":"YulIdentifier","src":"4285:1:34"}],"functionName":{"name":"add","nativeSrc":"4276:3:34","nodeType":"YulIdentifier","src":"4276:3:34"},"nativeSrc":"4276:11:34","nodeType":"YulFunctionCall","src":"4276:11:34"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4299:3:34","nodeType":"YulIdentifier","src":"4299:3:34"},{"name":"i","nativeSrc":"4304:1:34","nodeType":"YulIdentifier","src":"4304:1:34"}],"functionName":{"name":"add","nativeSrc":"4295:3:34","nodeType":"YulIdentifier","src":"4295:3:34"},"nativeSrc":"4295:11:34","nodeType":"YulFunctionCall","src":"4295:11:34"}],"functionName":{"name":"mload","nativeSrc":"4289:5:34","nodeType":"YulIdentifier","src":"4289:5:34"},"nativeSrc":"4289:18:34","nodeType":"YulFunctionCall","src":"4289:18:34"}],"functionName":{"name":"mstore","nativeSrc":"4269:6:34","nodeType":"YulIdentifier","src":"4269:6:34"},"nativeSrc":"4269:39:34","nodeType":"YulFunctionCall","src":"4269:39:34"},"nativeSrc":"4269:39:34","nodeType":"YulExpressionStatement","src":"4269:39:34"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4216:1:34","nodeType":"YulIdentifier","src":"4216:1:34"},{"name":"length","nativeSrc":"4219:6:34","nodeType":"YulIdentifier","src":"4219:6:34"}],"functionName":{"name":"lt","nativeSrc":"4213:2:34","nodeType":"YulIdentifier","src":"4213:2:34"},"nativeSrc":"4213:13:34","nodeType":"YulFunctionCall","src":"4213:13:34"},"nativeSrc":"4205:113:34","nodeType":"YulForLoop","post":{"nativeSrc":"4227:19:34","nodeType":"YulBlock","src":"4227:19:34","statements":[{"nativeSrc":"4229:15:34","nodeType":"YulAssignment","src":"4229:15:34","value":{"arguments":[{"name":"i","nativeSrc":"4238:1:34","nodeType":"YulIdentifier","src":"4238:1:34"},{"kind":"number","nativeSrc":"4241:2:34","nodeType":"YulLiteral","src":"4241:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4234:3:34","nodeType":"YulIdentifier","src":"4234:3:34"},"nativeSrc":"4234:10:34","nodeType":"YulFunctionCall","src":"4234:10:34"},"variableNames":[{"name":"i","nativeSrc":"4229:1:34","nodeType":"YulIdentifier","src":"4229:1:34"}]}]},"pre":{"nativeSrc":"4209:3:34","nodeType":"YulBlock","src":"4209:3:34","statements":[]},"src":"4205:113:34"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4338:3:34","nodeType":"YulIdentifier","src":"4338:3:34"},{"name":"length","nativeSrc":"4343:6:34","nodeType":"YulIdentifier","src":"4343:6:34"}],"functionName":{"name":"add","nativeSrc":"4334:3:34","nodeType":"YulIdentifier","src":"4334:3:34"},"nativeSrc":"4334:16:34","nodeType":"YulFunctionCall","src":"4334:16:34"},{"kind":"number","nativeSrc":"4352:1:34","nodeType":"YulLiteral","src":"4352:1:34","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4327:6:34","nodeType":"YulIdentifier","src":"4327:6:34"},"nativeSrc":"4327:27:34","nodeType":"YulFunctionCall","src":"4327:27:34"},"nativeSrc":"4327:27:34","nodeType":"YulExpressionStatement","src":"4327:27:34"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4110:250:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4154:3:34","nodeType":"YulTypedName","src":"4154:3:34","type":""},{"name":"dst","nativeSrc":"4159:3:34","nodeType":"YulTypedName","src":"4159:3:34","type":""},{"name":"length","nativeSrc":"4164:6:34","nodeType":"YulTypedName","src":"4164:6:34","type":""}],"src":"4110:250:34"},{"body":{"nativeSrc":"4502:150:34","nodeType":"YulBlock","src":"4502:150:34","statements":[{"nativeSrc":"4512:27:34","nodeType":"YulVariableDeclaration","src":"4512:27:34","value":{"arguments":[{"name":"value0","nativeSrc":"4532:6:34","nodeType":"YulIdentifier","src":"4532:6:34"}],"functionName":{"name":"mload","nativeSrc":"4526:5:34","nodeType":"YulIdentifier","src":"4526:5:34"},"nativeSrc":"4526:13:34","nodeType":"YulFunctionCall","src":"4526:13:34"},"variables":[{"name":"length","nativeSrc":"4516:6:34","nodeType":"YulTypedName","src":"4516:6:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"4587:6:34","nodeType":"YulIdentifier","src":"4587:6:34"},{"kind":"number","nativeSrc":"4595:4:34","nodeType":"YulLiteral","src":"4595:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4583:3:34","nodeType":"YulIdentifier","src":"4583:3:34"},"nativeSrc":"4583:17:34","nodeType":"YulFunctionCall","src":"4583:17:34"},{"name":"pos","nativeSrc":"4602:3:34","nodeType":"YulIdentifier","src":"4602:3:34"},{"name":"length","nativeSrc":"4607:6:34","nodeType":"YulIdentifier","src":"4607:6:34"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4548:34:34","nodeType":"YulIdentifier","src":"4548:34:34"},"nativeSrc":"4548:66:34","nodeType":"YulFunctionCall","src":"4548:66:34"},"nativeSrc":"4548:66:34","nodeType":"YulExpressionStatement","src":"4548:66:34"},{"nativeSrc":"4623:23:34","nodeType":"YulAssignment","src":"4623:23:34","value":{"arguments":[{"name":"pos","nativeSrc":"4634:3:34","nodeType":"YulIdentifier","src":"4634:3:34"},{"name":"length","nativeSrc":"4639:6:34","nodeType":"YulIdentifier","src":"4639:6:34"}],"functionName":{"name":"add","nativeSrc":"4630:3:34","nodeType":"YulIdentifier","src":"4630:3:34"},"nativeSrc":"4630:16:34","nodeType":"YulFunctionCall","src":"4630:16:34"},"variableNames":[{"name":"end","nativeSrc":"4623:3:34","nodeType":"YulIdentifier","src":"4623:3:34"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"4365:287:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4478:3:34","nodeType":"YulTypedName","src":"4478:3:34","type":""},{"name":"value0","nativeSrc":"4483:6:34","nodeType":"YulTypedName","src":"4483:6:34","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4494:3:34","nodeType":"YulTypedName","src":"4494:3:34","type":""}],"src":"4365:287:34"},{"body":{"nativeSrc":"4831:179:34","nodeType":"YulBlock","src":"4831:179:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"4848:9:34","nodeType":"YulIdentifier","src":"4848:9:34"},{"kind":"number","nativeSrc":"4859:2:34","nodeType":"YulLiteral","src":"4859:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"4841:6:34","nodeType":"YulIdentifier","src":"4841:6:34"},"nativeSrc":"4841:21:34","nodeType":"YulFunctionCall","src":"4841:21:34"},"nativeSrc":"4841:21:34","nodeType":"YulExpressionStatement","src":"4841:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4882:9:34","nodeType":"YulIdentifier","src":"4882:9:34"},{"kind":"number","nativeSrc":"4893:2:34","nodeType":"YulLiteral","src":"4893:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4878:3:34","nodeType":"YulIdentifier","src":"4878:3:34"},"nativeSrc":"4878:18:34","nodeType":"YulFunctionCall","src":"4878:18:34"},{"kind":"number","nativeSrc":"4898:2:34","nodeType":"YulLiteral","src":"4898:2:34","type":"","value":"29"}],"functionName":{"name":"mstore","nativeSrc":"4871:6:34","nodeType":"YulIdentifier","src":"4871:6:34"},"nativeSrc":"4871:30:34","nodeType":"YulFunctionCall","src":"4871:30:34"},"nativeSrc":"4871:30:34","nodeType":"YulExpressionStatement","src":"4871:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4921:9:34","nodeType":"YulIdentifier","src":"4921:9:34"},{"kind":"number","nativeSrc":"4932:2:34","nodeType":"YulLiteral","src":"4932:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4917:3:34","nodeType":"YulIdentifier","src":"4917:3:34"},"nativeSrc":"4917:18:34","nodeType":"YulFunctionCall","src":"4917:18:34"},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","kind":"string","nativeSrc":"4937:31:34","nodeType":"YulLiteral","src":"4937:31:34","type":"","value":"Address: call to non-contract"}],"functionName":{"name":"mstore","nativeSrc":"4910:6:34","nodeType":"YulIdentifier","src":"4910:6:34"},"nativeSrc":"4910:59:34","nodeType":"YulFunctionCall","src":"4910:59:34"},"nativeSrc":"4910:59:34","nodeType":"YulExpressionStatement","src":"4910:59:34"},{"nativeSrc":"4978:26:34","nodeType":"YulAssignment","src":"4978:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"4990:9:34","nodeType":"YulIdentifier","src":"4990:9:34"},{"kind":"number","nativeSrc":"5001:2:34","nodeType":"YulLiteral","src":"5001:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4986:3:34","nodeType":"YulIdentifier","src":"4986:3:34"},"nativeSrc":"4986:18:34","nodeType":"YulFunctionCall","src":"4986:18:34"},"variableNames":[{"name":"tail","nativeSrc":"4978:4:34","nodeType":"YulIdentifier","src":"4978:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4657:353:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4808:9:34","nodeType":"YulTypedName","src":"4808:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4822:4:34","nodeType":"YulTypedName","src":"4822:4:34","type":""}],"src":"4657:353:34"},{"body":{"nativeSrc":"5136:334:34","nodeType":"YulBlock","src":"5136:334:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"5153:9:34","nodeType":"YulIdentifier","src":"5153:9:34"},{"kind":"number","nativeSrc":"5164:2:34","nodeType":"YulLiteral","src":"5164:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"5146:6:34","nodeType":"YulIdentifier","src":"5146:6:34"},"nativeSrc":"5146:21:34","nodeType":"YulFunctionCall","src":"5146:21:34"},"nativeSrc":"5146:21:34","nodeType":"YulExpressionStatement","src":"5146:21:34"},{"nativeSrc":"5176:27:34","nodeType":"YulVariableDeclaration","src":"5176:27:34","value":{"arguments":[{"name":"value0","nativeSrc":"5196:6:34","nodeType":"YulIdentifier","src":"5196:6:34"}],"functionName":{"name":"mload","nativeSrc":"5190:5:34","nodeType":"YulIdentifier","src":"5190:5:34"},"nativeSrc":"5190:13:34","nodeType":"YulFunctionCall","src":"5190:13:34"},"variables":[{"name":"length","nativeSrc":"5180:6:34","nodeType":"YulTypedName","src":"5180:6:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5223:9:34","nodeType":"YulIdentifier","src":"5223:9:34"},{"kind":"number","nativeSrc":"5234:2:34","nodeType":"YulLiteral","src":"5234:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5219:3:34","nodeType":"YulIdentifier","src":"5219:3:34"},"nativeSrc":"5219:18:34","nodeType":"YulFunctionCall","src":"5219:18:34"},{"name":"length","nativeSrc":"5239:6:34","nodeType":"YulIdentifier","src":"5239:6:34"}],"functionName":{"name":"mstore","nativeSrc":"5212:6:34","nodeType":"YulIdentifier","src":"5212:6:34"},"nativeSrc":"5212:34:34","nodeType":"YulFunctionCall","src":"5212:34:34"},"nativeSrc":"5212:34:34","nodeType":"YulExpressionStatement","src":"5212:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"5294:6:34","nodeType":"YulIdentifier","src":"5294:6:34"},{"kind":"number","nativeSrc":"5302:2:34","nodeType":"YulLiteral","src":"5302:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5290:3:34","nodeType":"YulIdentifier","src":"5290:3:34"},"nativeSrc":"5290:15:34","nodeType":"YulFunctionCall","src":"5290:15:34"},{"arguments":[{"name":"headStart","nativeSrc":"5311:9:34","nodeType":"YulIdentifier","src":"5311:9:34"},{"kind":"number","nativeSrc":"5322:2:34","nodeType":"YulLiteral","src":"5322:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5307:3:34","nodeType":"YulIdentifier","src":"5307:3:34"},"nativeSrc":"5307:18:34","nodeType":"YulFunctionCall","src":"5307:18:34"},{"name":"length","nativeSrc":"5327:6:34","nodeType":"YulIdentifier","src":"5327:6:34"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5255:34:34","nodeType":"YulIdentifier","src":"5255:34:34"},"nativeSrc":"5255:79:34","nodeType":"YulFunctionCall","src":"5255:79:34"},"nativeSrc":"5255:79:34","nodeType":"YulExpressionStatement","src":"5255:79:34"},{"nativeSrc":"5343:121:34","nodeType":"YulAssignment","src":"5343:121:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5359:9:34","nodeType":"YulIdentifier","src":"5359:9:34"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"5378:6:34","nodeType":"YulIdentifier","src":"5378:6:34"},{"kind":"number","nativeSrc":"5386:2:34","nodeType":"YulLiteral","src":"5386:2:34","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5374:3:34","nodeType":"YulIdentifier","src":"5374:3:34"},"nativeSrc":"5374:15:34","nodeType":"YulFunctionCall","src":"5374:15:34"},{"kind":"number","nativeSrc":"5391:66:34","nodeType":"YulLiteral","src":"5391:66:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"5370:3:34","nodeType":"YulIdentifier","src":"5370:3:34"},"nativeSrc":"5370:88:34","nodeType":"YulFunctionCall","src":"5370:88:34"}],"functionName":{"name":"add","nativeSrc":"5355:3:34","nodeType":"YulIdentifier","src":"5355:3:34"},"nativeSrc":"5355:104:34","nodeType":"YulFunctionCall","src":"5355:104:34"},{"kind":"number","nativeSrc":"5461:2:34","nodeType":"YulLiteral","src":"5461:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5351:3:34","nodeType":"YulIdentifier","src":"5351:3:34"},"nativeSrc":"5351:113:34","nodeType":"YulFunctionCall","src":"5351:113:34"},"variableNames":[{"name":"tail","nativeSrc":"5343:4:34","nodeType":"YulIdentifier","src":"5343:4:34"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"5015:455:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5105:9:34","nodeType":"YulTypedName","src":"5105:9:34","type":""},{"name":"value0","nativeSrc":"5116:6:34","nodeType":"YulTypedName","src":"5116:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5127:4:34","nodeType":"YulTypedName","src":"5127:4:34","type":""}],"src":"5015:455:34"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_struct$_Party_$6436_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := headStart\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        value4 := abi_decode_address(add(headStart, 128))\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffff00000000000000000000000000000000000000000000000000000000))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n    }\n    function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\n    }\n    function abi_encode_tuple_t_stringliteral_a709fd3aa96d9faf770e44a5aef2f4808a6fe3a5ddf546568f36ad3a3873f31d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 2)\n        mstore(add(headStart, 64), \"id\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"SafeERC20: ERC20 operation did n\")\n        mstore(add(headStart, 96), \"ot succeed\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Address: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r call\")\n        tail := add(headStart, 128)\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\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        mstore(add(dst, length), 0)\n    }\n    function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_tuple_t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"Address: call to non-contract\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 64)\n    }\n}","id":34,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100675760003560e01c806347338bc31161005057806347338bc3146100aa578063a64d0cd4146100bf578063d1190df91461011757600080fd5b80633170f63d1461006c57806340944de914610094575b600080fd5b61007f61007a3660046106e9565b61012a565b60405190151581526020015b60405180910390f35b61007f6100a23660046106e9565b606001351590565b6100bd6100b836600461072a565b610205565b005b6100e67f36372b070000000000000000000000000000000000000000000000000000000081565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161008b565b61007f6101253660046106e9565b61029b565b600060808201356101416040840160208501610781565b73ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e6101696020860186610781565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201523360248201526044015b602060405180830381865afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906107a3565b101592915050565b8115610272576040517f94d40be700000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f696400000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b61029473ffffffffffffffffffffffffffffffffffffffff821686868661032b565b5050505050565b600060808201356102b26040840160208501610781565b73ffffffffffffffffffffffffffffffffffffffff166370a082316102da6020860186610781565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024016101bc565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526103c09085906103c6565b50505050565b6000610428826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166104da9092919063ffffffff16565b905080516000148061044957508080602001905181019061044991906107bc565b6104d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610269565b505050565b60606104e984846000856104f1565b949350505050565b606082471015610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610269565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516105ac9190610802565b60006040518083038185875af1925050503d80600081146105e9576040519150601f19603f3d011682016040523d82523d6000602084013e6105ee565b606091505b50915091506105ff8783838761060a565b979650505050505050565b606083156106a05782516000036106995773ffffffffffffffffffffffffffffffffffffffff85163b610699576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610269565b50816104e9565b6104e983838151156106b55781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610269919061081e565b600060a082840312156106fb57600080fd5b50919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461072557600080fd5b919050565b600080600080600060a0868803121561074257600080fd5b61074b86610701565b945061075960208701610701565b9350604086013592506060860135915061077560808701610701565b90509295509295909350565b60006020828403121561079357600080fd5b61079c82610701565b9392505050565b6000602082840312156107b557600080fd5b5051919050565b6000602082840312156107ce57600080fd5b8151801515811461079c57600080fd5b60005b838110156107f95781810151838201526020016107e1565b50506000910152565b600082516108148184602087016107de565b9190910192915050565b602081526000825180602084015261083d8160408501602087016107de565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122098824c7b4dca421a6b4528a0a00cade84e24f0241b0feb7f5cbf478d9b8657a364736f6c63430008170033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x47338BC3 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x47338BC3 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xA64D0CD4 EQ PUSH2 0xBF JUMPI DUP1 PUSH4 0xD1190DF9 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3170F63D EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x40944DE9 EQ PUSH2 0x94 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x6E9 JUMP JUMPDEST PUSH2 0x12A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xA2 CALLDATASIZE PUSH1 0x4 PUSH2 0x6E9 JUMP JUMPDEST PUSH1 0x60 ADD CALLDATALOAD ISZERO SWAP1 JUMP JUMPDEST PUSH2 0xBD PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x72A JUMP JUMPDEST PUSH2 0x205 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE6 PUSH32 0x36372B0700000000000000000000000000000000000000000000000000000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8B JUMP JUMPDEST PUSH2 0x7F PUSH2 0x125 CALLDATASIZE PUSH1 0x4 PUSH2 0x6E9 JUMP JUMPDEST PUSH2 0x29B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH2 0x141 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x781 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xDD62ED3E PUSH2 0x169 PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x781 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE CALLER PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x7A3 JUMP JUMPDEST LT ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 ISZERO PUSH2 0x272 JUMPI PUSH1 0x40 MLOAD PUSH32 0x94D40BE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x6964000000000000000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x294 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND DUP7 DUP7 DUP7 PUSH2 0x32B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH2 0x2B2 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x781 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 PUSH2 0x2DA PUSH1 0x20 DUP7 ADD DUP7 PUSH2 0x781 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP5 AND PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 MLOAD DUP1 DUP4 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x23B872DD00000000000000000000000000000000000000000000000000000000 OR SWAP1 MSTORE PUSH2 0x3C0 SWAP1 DUP6 SWAP1 PUSH2 0x3C6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x428 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x20 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5361666545524332303A206C6F772D6C6576656C2063616C6C206661696C6564 DUP2 MSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x4DA SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x0 EQ DUP1 PUSH2 0x449 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x449 SWAP2 SWAP1 PUSH2 0x7BC JUMP JUMPDEST PUSH2 0x4D5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5361666545524332303A204552433230206F7065726174696F6E20646964206E PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F74207375636365656400000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x269 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E9 DUP5 DUP5 PUSH1 0x0 DUP6 PUSH2 0x4F1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 SELFBALANCE LT ISZERO PUSH2 0x583 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A20696E73756666696369656E742062616C616E636520666F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x722063616C6C0000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x269 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 DUP8 PUSH1 0x40 MLOAD PUSH2 0x5AC SWAP2 SWAP1 PUSH2 0x802 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x5E9 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x5EE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x5FF DUP8 DUP4 DUP4 DUP8 PUSH2 0x60A JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x6A0 JUMPI DUP3 MLOAD PUSH1 0x0 SUB PUSH2 0x699 JUMPI PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND EXTCODESIZE PUSH2 0x699 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2063616C6C20746F206E6F6E2D636F6E7472616374000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x269 JUMP JUMPDEST POP DUP2 PUSH2 0x4E9 JUMP JUMPDEST PUSH2 0x4E9 DUP4 DUP4 DUP2 MLOAD ISZERO PUSH2 0x6B5 JUMPI DUP2 MLOAD DUP1 DUP4 PUSH1 0x20 ADD REVERT JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x81E JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x725 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x74B DUP7 PUSH2 0x701 JUMP JUMPDEST SWAP5 POP PUSH2 0x759 PUSH1 0x20 DUP8 ADD PUSH2 0x701 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH2 0x775 PUSH1 0x80 DUP8 ADD PUSH2 0x701 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x793 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x79C DUP3 PUSH2 0x701 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x79C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7F9 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7E1 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x814 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x7DE JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x83D DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x7DE JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 DUP3 0x4C PUSH28 0x4DCA421A6B4528A0A00CADE84E24F0241B0FEB7F5CBF478D9B8657A3 PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"219:1595:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;567:183;;;;;;:::i;:::-;;:::i;:::-;;;376:14:34;;369:22;351:41;;339:2;324:18;567:183:29;;;;;;;;1090:108;;;;;;:::i;:::-;1179:8;;;:13;;1090:108;1584:228;;;;;;:::i;:::-;;:::i;:::-;;371:47;;;;;;;;1255:66:34;1243:79;;;1225:98;;1213:2;1198:18;371:47:29;1081:248:34;846:148:29;;;;;;:::i;:::-;;:::i;567:183::-;634:4;733:12;;;;666:11;;;;;;;;:::i;:::-;659:29;;;689:12;;;;:5;:12;:::i;:::-;659:64;;;;;;;;;;1709:42:34;1778:15;;;659:64:29;;;1760:34:34;711:10:29;1810:18:34;;;1803:43;1672:18;;659:64:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:86;;;567:183;-1:-1:-1;;567:183:29:o;1584:228::-;1714:7;;1710:43;;1730:23;;;;;2248:2:34;1730:23:29;;;2230:21:34;2287:1;2267:18;;;2260:29;2325:4;2305:18;;;2298:32;2347:18;;1730:23:29;;;;;;;;1710:43;1759:48;:30;;;1790:4;1796:2;1800:6;1759:30;:48::i;:::-;1584:228;;;;;:::o;846:148::-;911:4;977:12;;;;937:11;;;;;;;;:::i;:::-;930:29;;;960:12;;;;:5;:12;:::i;:::-;930:43;;;;;;;;;;2552:42:34;2540:55;;;930:43:29;;;2522:74:34;2495:18;;930:43:29;2376:226:34;1355:203:8;1482:68;;;2819:42:34;2888:15;;;1482:68:8;;;2870:34:34;2940:15;;2920:18;;;2913:43;2972:18;;;;2965:34;;;1482:68:8;;;;;;;;;;2782:18:34;;;;1482:68:8;;;;;;;;;;1505:27;1482:68;;;1455:96;;1475:5;;1455:19;:96::i;:::-;1355:203;;;;:::o;5196:642::-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;5641:27;;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;;;;3494:2:34;5720:111:8;;;3476:21:34;3533:2;3513:18;;;3506:30;3572:34;3552:18;;;3545:62;3643:12;3623:18;;;3616:40;3673:19;;5720:111:8;3292:406:34;5720:111:8;5266:572;5196:642;;:::o;4108:223:14:-;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;:::-;4265:59;4108:223;-1:-1:-1;;;;4108:223:14:o;5165:446::-;5330:12;5387:5;5362:21;:30;;5354:81;;;;;;;3905:2:34;5354:81:14;;;3887:21:34;3944:2;3924:18;;;3917:30;3983:34;3963:18;;;3956:62;4054:8;4034:18;;;4027:36;4080:19;;5354:81:14;3703:402:34;5354:81:14;5446:12;5460:23;5487:6;:11;;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:14:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;1702:19;;;;8113:60;;;;;;;4859:2:34;8113:60:14;;;4841:21:34;4898:2;4878:18;;;4871:30;4937:31;4917:18;;;4910:59;4986:18;;8113:60:14;4657:353:34;8113:60:14;-1:-1:-1;8208:10:14;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;;;;;;;;;;:::i;14:192:34:-;98:6;151:3;139:9;130:7;126:23;122:33;119:53;;;168:1;165;158:12;119:53;-1:-1:-1;191:9:34;14:192;-1:-1:-1;14:192:34:o;403:196::-;471:20;;531:42;520:54;;510:65;;500:93;;589:1;586;579:12;500:93;403:196;;;:::o;604:472::-;699:6;707;715;723;731;784:3;772:9;763:7;759:23;755:33;752:53;;;801:1;798;791:12;752:53;824:29;843:9;824:29;:::i;:::-;814:39;;872:38;906:2;895:9;891:18;872:38;:::i;:::-;862:48;;957:2;946:9;942:18;929:32;919:42;;1008:2;997:9;993:18;980:32;970:42;;1031:39;1065:3;1054:9;1050:19;1031:39;:::i;:::-;1021:49;;604:472;;;;;;;;:::o;1334:186::-;1393:6;1446:2;1434:9;1425:7;1421:23;1417:32;1414:52;;;1462:1;1459;1452:12;1414:52;1485:29;1504:9;1485:29;:::i;:::-;1475:39;1334:186;-1:-1:-1;;;1334:186:34:o;1857:184::-;1927:6;1980:2;1968:9;1959:7;1955:23;1951:32;1948:52;;;1996:1;1993;1986:12;1948:52;-1:-1:-1;2019:16:34;;1857:184;-1:-1:-1;1857:184:34:o;3010:277::-;3077:6;3130:2;3118:9;3109:7;3105:23;3101:32;3098:52;;;3146:1;3143;3136:12;3098:52;3178:9;3172:16;3231:5;3224:13;3217:21;3210:5;3207:32;3197:60;;3253:1;3250;3243:12;4110:250;4195:1;4205:113;4219:6;4216:1;4213:13;4205:113;;;4295:11;;;4289:18;4276:11;;;4269:39;4241:2;4234:10;4205:113;;;-1:-1:-1;;4352:1:34;4334:16;;4327:27;4110:250::o;4365:287::-;4494:3;4532:6;4526:13;4548:66;4607:6;4602:3;4595:4;4587:6;4583:17;4548:66;:::i;:::-;4630:16;;;;;4365:287;-1:-1:-1;;4365:287:34:o;5015:455::-;5164:2;5153:9;5146:21;5127:4;5196:6;5190:13;5239:6;5234:2;5223:9;5219:18;5212:34;5255:79;5327:6;5322:2;5311:9;5307:18;5302:2;5294:6;5290:15;5255:79;:::i;:::-;5386:2;5374:15;5391:66;5370:88;5355:104;;;;5461:2;5351:113;;5015:455;-1:-1:-1;;5015:455:34:o"},"methodIdentifiers":{"hasAllowance((address,address,bytes4,uint256,uint256))":"3170f63d","hasBalance((address,address,bytes4,uint256,uint256))":"d1190df9","hasValidParams((address,address,bytes4,uint256,uint256))":"40944de9","interfaceId()":"a64d0cd4","transfer(address,address,uint256,uint256,address)":"47338bc3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"AmountOrIDInvalid\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasBalance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasValidParams\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"interfaceId\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"hasAllowance((address,address,bytes4,uint256,uint256))\":{\"details\":\"Use call: \\\"msg.sender\\\" is Swap contract\",\"params\":{\"party\":\"Party params to check\"}},\"hasBalance((address,address,bytes4,uint256,uint256))\":{\"params\":{\"party\":\"Party params to check\"}},\"hasValidParams((address,address,bytes4,uint256,uint256))\":{\"params\":{\"party\":\"Party params to check\"}},\"transfer(address,address,uint256,uint256,address)\":{\"details\":\"Use delegatecall: \\\"this\\\" is Swap contract\",\"params\":{\"amount\":\"uint256 Amount for ERC20\",\"from\":\"address Wallet address to transfer from\",\"id\":\"uint256 ID, must be 0 for this contract\",\"to\":\"address Wallet address to transfer to\",\"token\":\"address Contract address of token\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"AmountOrIDInvalid(string)\":[{\"notice\":\"Revert if provided an invalid transfer argument\"}]},\"kind\":\"user\",\"methods\":{\"hasAllowance((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks allowance on an ERC20\"},\"hasBalance((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks balance on an ERC20\"},\"hasValidParams((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks params for transfer\"},\"interfaceId()\":{\"notice\":\"Indicates the ERC165 interfaceId supported by this adapter\"},\"transfer(address,address,uint256,uint256,address)\":{\"notice\":\"Function to wrap safeTransferFrom for ERC20\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/adapters/ERC20Adapter.sol\":\"ERC20Adapter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"contracts/adapters/ERC20Adapter.sol\":{\"keccak256\":\"0xb5b745fe1bedf4a9c3152835a0f6682efd9106025c1415b1e46851b94fda98de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f64a78835abfd1e2727bdf8021216f3003d370e4e7ba9050c474647456f02974\",\"dweb:/ipfs/QmejeAeMKfxPuKsQdBS5EPMxH1nuijfq7e4vN8HRRJJNUA\"]},\"contracts/interfaces/IAdapter.sol\":{\"keccak256\":\"0x3517dae3dd23781ca263902ebe2ac6cb6af6a529b06b70cdf4031bd65595545e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6190f4aef0d7e4dce1cc0588665136f5a688438fd1f122fa53568aac123c22c\",\"dweb:/ipfs/QmbrpiRTJMBUv43xuwivkV8pNVUFHqYkecSusUpQk3sMqB\"]}},\"version\":1}"}},"contracts/adapters/ERC721Adapter.sol":{"ERC721Adapter":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"AmountOrIDInvalid","type":"error"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasValidParams","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"interfaceId","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610492806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806347338bc31161005057806347338bc3146100aa578063a64d0cd4146100bf578063d1190df91461011757600080fd5b80633170f63d1461006c57806340944de914610094575b600080fd5b61007f61007a36600461037f565b61012a565b60405190151581526020015b60405180910390f35b61007f6100a236600461037f565b608001351590565b6100bd6100b83660046103bc565b6101ef565b005b6100e67f80ac58cd0000000000000000000000000000000000000000000000000000000081565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161008b565b61007f61012536600461037f565b6102f2565b60003361013d604084016020850161041b565b6040517f081812fc0000000000000000000000000000000000000000000000000000000081526060850135600482015273ffffffffffffffffffffffffffffffffffffffff919091169063081812fc906024015b602060405180830381865afa1580156101ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d2919061043f565b73ffffffffffffffffffffffffffffffffffffffff161492915050565b821561025b576040517f94d40be700000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f616d6f756e740000000000000000000000000000000000000000000000000000604482015260640160405180910390fd5b6040517f42842e0e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528581166024830152604482018490528216906342842e0e90606401600060405180830381600087803b1580156102d357600080fd5b505af11580156102e7573d6000803e3d6000fd5b505050505050505050565b6000610301602083018361041b565b73ffffffffffffffffffffffffffffffffffffffff16610327604084016020850161041b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526060850135600482015273ffffffffffffffffffffffffffffffffffffffff9190911690636352211e90602401610191565b600060a0828403121561039157600080fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff811681146103b957600080fd5b50565b600080600080600060a086880312156103d457600080fd5b85356103df81610397565b945060208601356103ef81610397565b93506040860135925060608601359150608086013561040d81610397565b809150509295509295909350565b60006020828403121561042d57600080fd5b813561043881610397565b9392505050565b60006020828403121561045157600080fd5b81516104388161039756fea2646970667358221220b06e3da58d258728f1004286fceef6f552766c64fdb0bf25b837a68a3d29030564736f6c63430008170033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x492 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 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x47338BC3 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x47338BC3 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xA64D0CD4 EQ PUSH2 0xBF JUMPI DUP1 PUSH4 0xD1190DF9 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3170F63D EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x40944DE9 EQ PUSH2 0x94 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x37F JUMP JUMPDEST PUSH2 0x12A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xA2 CALLDATASIZE PUSH1 0x4 PUSH2 0x37F JUMP JUMPDEST PUSH1 0x80 ADD CALLDATALOAD ISZERO SWAP1 JUMP JUMPDEST PUSH2 0xBD PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3BC JUMP JUMPDEST PUSH2 0x1EF JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE6 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8B JUMP JUMPDEST PUSH2 0x7F PUSH2 0x125 CALLDATASIZE PUSH1 0x4 PUSH2 0x37F JUMP JUMPDEST PUSH2 0x2F2 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x13D PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x81812FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x81812FC SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D2 SWAP2 SWAP1 PUSH2 0x43F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO PUSH2 0x25B JUMPI PUSH1 0x40 MLOAD PUSH32 0x94D40BE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x616D6F756E740000000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x42842E0E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x301 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x41B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x327 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x6352211E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH2 0x191 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x3DF DUP2 PUSH2 0x397 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x3EF DUP2 PUSH2 0x397 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH2 0x40D DUP2 PUSH2 0x397 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x42D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x438 DUP2 PUSH2 0x397 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x451 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x438 DUP2 PUSH2 0x397 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 PUSH15 0x3DA58D258728F1004286FCEEF6F552 PUSH23 0x6C64FDB0BF25B837A68A3D29030564736F6C6343000817 STOP CALLER ","sourceMap":"155:1540:30:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@hasAllowance_6352":{"entryPoint":298,"id":6352,"parameterSlots":1,"returnSlots":1},"@hasBalance_6374":{"entryPoint":754,"id":6374,"parameterSlots":1,"returnSlots":1},"@hasValidParams_6390":{"entryPoint":null,"id":6390,"parameterSlots":1,"returnSlots":1},"@interfaceId_6327":{"entryPoint":null,"id":6327,"parameterSlots":0,"returnSlots":0},"@transfer_6422":{"entryPoint":495,"id":6422,"parameterSlots":5,"returnSlots":0},"abi_decode_tuple_t_address":{"entryPoint":1051,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":1087,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_address":{"entryPoint":956,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_struct$_Party_$6436_calldata_ptr":{"entryPoint":895,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"validator_revert_address":{"entryPoint":919,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:2911:34","nodeType":"YulBlock","src":"0:2911:34","statements":[{"nativeSrc":"6:3:34","nodeType":"YulBlock","src":"6:3:34","statements":[]},{"body":{"nativeSrc":"109:97:34","nodeType":"YulBlock","src":"109:97:34","statements":[{"body":{"nativeSrc":"156:16:34","nodeType":"YulBlock","src":"156:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"165:1:34","nodeType":"YulLiteral","src":"165:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"168:1:34","nodeType":"YulLiteral","src":"168:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"158:6:34","nodeType":"YulIdentifier","src":"158:6:34"},"nativeSrc":"158:12:34","nodeType":"YulFunctionCall","src":"158:12:34"},"nativeSrc":"158:12:34","nodeType":"YulExpressionStatement","src":"158:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"130:7:34","nodeType":"YulIdentifier","src":"130:7:34"},{"name":"headStart","nativeSrc":"139:9:34","nodeType":"YulIdentifier","src":"139:9:34"}],"functionName":{"name":"sub","nativeSrc":"126:3:34","nodeType":"YulIdentifier","src":"126:3:34"},"nativeSrc":"126:23:34","nodeType":"YulFunctionCall","src":"126:23:34"},{"kind":"number","nativeSrc":"151:3:34","nodeType":"YulLiteral","src":"151:3:34","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"122:3:34","nodeType":"YulIdentifier","src":"122:3:34"},"nativeSrc":"122:33:34","nodeType":"YulFunctionCall","src":"122:33:34"},"nativeSrc":"119:53:34","nodeType":"YulIf","src":"119:53:34"},{"nativeSrc":"181:19:34","nodeType":"YulAssignment","src":"181:19:34","value":{"name":"headStart","nativeSrc":"191:9:34","nodeType":"YulIdentifier","src":"191:9:34"},"variableNames":[{"name":"value0","nativeSrc":"181:6:34","nodeType":"YulIdentifier","src":"181:6:34"}]}]},"name":"abi_decode_tuple_t_struct$_Party_$6436_calldata_ptr","nativeSrc":"14:192:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"75:9:34","nodeType":"YulTypedName","src":"75:9:34","type":""},{"name":"dataEnd","nativeSrc":"86:7:34","nodeType":"YulTypedName","src":"86:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"98:6:34","nodeType":"YulTypedName","src":"98:6:34","type":""}],"src":"14:192:34"},{"body":{"nativeSrc":"306:92:34","nodeType":"YulBlock","src":"306:92:34","statements":[{"nativeSrc":"316:26:34","nodeType":"YulAssignment","src":"316:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"328:9:34","nodeType":"YulIdentifier","src":"328:9:34"},{"kind":"number","nativeSrc":"339:2:34","nodeType":"YulLiteral","src":"339:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"324:3:34","nodeType":"YulIdentifier","src":"324:3:34"},"nativeSrc":"324:18:34","nodeType":"YulFunctionCall","src":"324:18:34"},"variableNames":[{"name":"tail","nativeSrc":"316:4:34","nodeType":"YulIdentifier","src":"316:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"358:9:34","nodeType":"YulIdentifier","src":"358:9:34"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"383:6:34","nodeType":"YulIdentifier","src":"383:6:34"}],"functionName":{"name":"iszero","nativeSrc":"376:6:34","nodeType":"YulIdentifier","src":"376:6:34"},"nativeSrc":"376:14:34","nodeType":"YulFunctionCall","src":"376:14:34"}],"functionName":{"name":"iszero","nativeSrc":"369:6:34","nodeType":"YulIdentifier","src":"369:6:34"},"nativeSrc":"369:22:34","nodeType":"YulFunctionCall","src":"369:22:34"}],"functionName":{"name":"mstore","nativeSrc":"351:6:34","nodeType":"YulIdentifier","src":"351:6:34"},"nativeSrc":"351:41:34","nodeType":"YulFunctionCall","src":"351:41:34"},"nativeSrc":"351:41:34","nodeType":"YulExpressionStatement","src":"351:41:34"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"211:187:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"275:9:34","nodeType":"YulTypedName","src":"275:9:34","type":""},{"name":"value0","nativeSrc":"286:6:34","nodeType":"YulTypedName","src":"286:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"297:4:34","nodeType":"YulTypedName","src":"297:4:34","type":""}],"src":"211:187:34"},{"body":{"nativeSrc":"448:109:34","nodeType":"YulBlock","src":"448:109:34","statements":[{"body":{"nativeSrc":"535:16:34","nodeType":"YulBlock","src":"535:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"544:1:34","nodeType":"YulLiteral","src":"544:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"547:1:34","nodeType":"YulLiteral","src":"547:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"537:6:34","nodeType":"YulIdentifier","src":"537:6:34"},"nativeSrc":"537:12:34","nodeType":"YulFunctionCall","src":"537:12:34"},"nativeSrc":"537:12:34","nodeType":"YulExpressionStatement","src":"537:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"471:5:34","nodeType":"YulIdentifier","src":"471:5:34"},{"arguments":[{"name":"value","nativeSrc":"482:5:34","nodeType":"YulIdentifier","src":"482:5:34"},{"kind":"number","nativeSrc":"489:42:34","nodeType":"YulLiteral","src":"489:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"478:3:34","nodeType":"YulIdentifier","src":"478:3:34"},"nativeSrc":"478:54:34","nodeType":"YulFunctionCall","src":"478:54:34"}],"functionName":{"name":"eq","nativeSrc":"468:2:34","nodeType":"YulIdentifier","src":"468:2:34"},"nativeSrc":"468:65:34","nodeType":"YulFunctionCall","src":"468:65:34"}],"functionName":{"name":"iszero","nativeSrc":"461:6:34","nodeType":"YulIdentifier","src":"461:6:34"},"nativeSrc":"461:73:34","nodeType":"YulFunctionCall","src":"461:73:34"},"nativeSrc":"458:93:34","nodeType":"YulIf","src":"458:93:34"}]},"name":"validator_revert_address","nativeSrc":"403:154:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"437:5:34","nodeType":"YulTypedName","src":"437:5:34","type":""}],"src":"403:154:34"},{"body":{"nativeSrc":"700:529:34","nodeType":"YulBlock","src":"700:529:34","statements":[{"body":{"nativeSrc":"747:16:34","nodeType":"YulBlock","src":"747:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"756:1:34","nodeType":"YulLiteral","src":"756:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"759:1:34","nodeType":"YulLiteral","src":"759:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"749:6:34","nodeType":"YulIdentifier","src":"749:6:34"},"nativeSrc":"749:12:34","nodeType":"YulFunctionCall","src":"749:12:34"},"nativeSrc":"749:12:34","nodeType":"YulExpressionStatement","src":"749:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"721:7:34","nodeType":"YulIdentifier","src":"721:7:34"},{"name":"headStart","nativeSrc":"730:9:34","nodeType":"YulIdentifier","src":"730:9:34"}],"functionName":{"name":"sub","nativeSrc":"717:3:34","nodeType":"YulIdentifier","src":"717:3:34"},"nativeSrc":"717:23:34","nodeType":"YulFunctionCall","src":"717:23:34"},{"kind":"number","nativeSrc":"742:3:34","nodeType":"YulLiteral","src":"742:3:34","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"713:3:34","nodeType":"YulIdentifier","src":"713:3:34"},"nativeSrc":"713:33:34","nodeType":"YulFunctionCall","src":"713:33:34"},"nativeSrc":"710:53:34","nodeType":"YulIf","src":"710:53:34"},{"nativeSrc":"772:36:34","nodeType":"YulVariableDeclaration","src":"772:36:34","value":{"arguments":[{"name":"headStart","nativeSrc":"798:9:34","nodeType":"YulIdentifier","src":"798:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"785:12:34","nodeType":"YulIdentifier","src":"785:12:34"},"nativeSrc":"785:23:34","nodeType":"YulFunctionCall","src":"785:23:34"},"variables":[{"name":"value","nativeSrc":"776:5:34","nodeType":"YulTypedName","src":"776:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"842:5:34","nodeType":"YulIdentifier","src":"842:5:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"817:24:34","nodeType":"YulIdentifier","src":"817:24:34"},"nativeSrc":"817:31:34","nodeType":"YulFunctionCall","src":"817:31:34"},"nativeSrc":"817:31:34","nodeType":"YulExpressionStatement","src":"817:31:34"},{"nativeSrc":"857:15:34","nodeType":"YulAssignment","src":"857:15:34","value":{"name":"value","nativeSrc":"867:5:34","nodeType":"YulIdentifier","src":"867:5:34"},"variableNames":[{"name":"value0","nativeSrc":"857:6:34","nodeType":"YulIdentifier","src":"857:6:34"}]},{"nativeSrc":"881:47:34","nodeType":"YulVariableDeclaration","src":"881:47:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"913:9:34","nodeType":"YulIdentifier","src":"913:9:34"},{"kind":"number","nativeSrc":"924:2:34","nodeType":"YulLiteral","src":"924:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"909:3:34","nodeType":"YulIdentifier","src":"909:3:34"},"nativeSrc":"909:18:34","nodeType":"YulFunctionCall","src":"909:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"896:12:34","nodeType":"YulIdentifier","src":"896:12:34"},"nativeSrc":"896:32:34","nodeType":"YulFunctionCall","src":"896:32:34"},"variables":[{"name":"value_1","nativeSrc":"885:7:34","nodeType":"YulTypedName","src":"885:7:34","type":""}]},{"expression":{"arguments":[{"name":"value_1","nativeSrc":"962:7:34","nodeType":"YulIdentifier","src":"962:7:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"937:24:34","nodeType":"YulIdentifier","src":"937:24:34"},"nativeSrc":"937:33:34","nodeType":"YulFunctionCall","src":"937:33:34"},"nativeSrc":"937:33:34","nodeType":"YulExpressionStatement","src":"937:33:34"},{"nativeSrc":"979:17:34","nodeType":"YulAssignment","src":"979:17:34","value":{"name":"value_1","nativeSrc":"989:7:34","nodeType":"YulIdentifier","src":"989:7:34"},"variableNames":[{"name":"value1","nativeSrc":"979:6:34","nodeType":"YulIdentifier","src":"979:6:34"}]},{"nativeSrc":"1005:42:34","nodeType":"YulAssignment","src":"1005:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1032:9:34","nodeType":"YulIdentifier","src":"1032:9:34"},{"kind":"number","nativeSrc":"1043:2:34","nodeType":"YulLiteral","src":"1043:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"1028:3:34","nodeType":"YulIdentifier","src":"1028:3:34"},"nativeSrc":"1028:18:34","nodeType":"YulFunctionCall","src":"1028:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"1015:12:34","nodeType":"YulIdentifier","src":"1015:12:34"},"nativeSrc":"1015:32:34","nodeType":"YulFunctionCall","src":"1015:32:34"},"variableNames":[{"name":"value2","nativeSrc":"1005:6:34","nodeType":"YulIdentifier","src":"1005:6:34"}]},{"nativeSrc":"1056:42:34","nodeType":"YulAssignment","src":"1056:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1083:9:34","nodeType":"YulIdentifier","src":"1083:9:34"},{"kind":"number","nativeSrc":"1094:2:34","nodeType":"YulLiteral","src":"1094:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"1079:3:34","nodeType":"YulIdentifier","src":"1079:3:34"},"nativeSrc":"1079:18:34","nodeType":"YulFunctionCall","src":"1079:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"1066:12:34","nodeType":"YulIdentifier","src":"1066:12:34"},"nativeSrc":"1066:32:34","nodeType":"YulFunctionCall","src":"1066:32:34"},"variableNames":[{"name":"value3","nativeSrc":"1056:6:34","nodeType":"YulIdentifier","src":"1056:6:34"}]},{"nativeSrc":"1107:48:34","nodeType":"YulVariableDeclaration","src":"1107:48:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1139:9:34","nodeType":"YulIdentifier","src":"1139:9:34"},{"kind":"number","nativeSrc":"1150:3:34","nodeType":"YulLiteral","src":"1150:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"1135:3:34","nodeType":"YulIdentifier","src":"1135:3:34"},"nativeSrc":"1135:19:34","nodeType":"YulFunctionCall","src":"1135:19:34"}],"functionName":{"name":"calldataload","nativeSrc":"1122:12:34","nodeType":"YulIdentifier","src":"1122:12:34"},"nativeSrc":"1122:33:34","nodeType":"YulFunctionCall","src":"1122:33:34"},"variables":[{"name":"value_2","nativeSrc":"1111:7:34","nodeType":"YulTypedName","src":"1111:7:34","type":""}]},{"expression":{"arguments":[{"name":"value_2","nativeSrc":"1189:7:34","nodeType":"YulIdentifier","src":"1189:7:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1164:24:34","nodeType":"YulIdentifier","src":"1164:24:34"},"nativeSrc":"1164:33:34","nodeType":"YulFunctionCall","src":"1164:33:34"},"nativeSrc":"1164:33:34","nodeType":"YulExpressionStatement","src":"1164:33:34"},{"nativeSrc":"1206:17:34","nodeType":"YulAssignment","src":"1206:17:34","value":{"name":"value_2","nativeSrc":"1216:7:34","nodeType":"YulIdentifier","src":"1216:7:34"},"variableNames":[{"name":"value4","nativeSrc":"1206:6:34","nodeType":"YulIdentifier","src":"1206:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_address","nativeSrc":"562:667:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"634:9:34","nodeType":"YulTypedName","src":"634:9:34","type":""},{"name":"dataEnd","nativeSrc":"645:7:34","nodeType":"YulTypedName","src":"645:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"657:6:34","nodeType":"YulTypedName","src":"657:6:34","type":""},{"name":"value1","nativeSrc":"665:6:34","nodeType":"YulTypedName","src":"665:6:34","type":""},{"name":"value2","nativeSrc":"673:6:34","nodeType":"YulTypedName","src":"673:6:34","type":""},{"name":"value3","nativeSrc":"681:6:34","nodeType":"YulTypedName","src":"681:6:34","type":""},{"name":"value4","nativeSrc":"689:6:34","nodeType":"YulTypedName","src":"689:6:34","type":""}],"src":"562:667:34"},{"body":{"nativeSrc":"1333:149:34","nodeType":"YulBlock","src":"1333:149:34","statements":[{"nativeSrc":"1343:26:34","nodeType":"YulAssignment","src":"1343:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1355:9:34","nodeType":"YulIdentifier","src":"1355:9:34"},{"kind":"number","nativeSrc":"1366:2:34","nodeType":"YulLiteral","src":"1366:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1351:3:34","nodeType":"YulIdentifier","src":"1351:3:34"},"nativeSrc":"1351:18:34","nodeType":"YulFunctionCall","src":"1351:18:34"},"variableNames":[{"name":"tail","nativeSrc":"1343:4:34","nodeType":"YulIdentifier","src":"1343:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1385:9:34","nodeType":"YulIdentifier","src":"1385:9:34"},{"arguments":[{"name":"value0","nativeSrc":"1400:6:34","nodeType":"YulIdentifier","src":"1400:6:34"},{"kind":"number","nativeSrc":"1408:66:34","nodeType":"YulLiteral","src":"1408:66:34","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"1396:3:34","nodeType":"YulIdentifier","src":"1396:3:34"},"nativeSrc":"1396:79:34","nodeType":"YulFunctionCall","src":"1396:79:34"}],"functionName":{"name":"mstore","nativeSrc":"1378:6:34","nodeType":"YulIdentifier","src":"1378:6:34"},"nativeSrc":"1378:98:34","nodeType":"YulFunctionCall","src":"1378:98:34"},"nativeSrc":"1378:98:34","nodeType":"YulExpressionStatement","src":"1378:98:34"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"1234:248:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1302:9:34","nodeType":"YulTypedName","src":"1302:9:34","type":""},{"name":"value0","nativeSrc":"1313:6:34","nodeType":"YulTypedName","src":"1313:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1324:4:34","nodeType":"YulTypedName","src":"1324:4:34","type":""}],"src":"1234:248:34"},{"body":{"nativeSrc":"1557:177:34","nodeType":"YulBlock","src":"1557:177:34","statements":[{"body":{"nativeSrc":"1603:16:34","nodeType":"YulBlock","src":"1603:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1612:1:34","nodeType":"YulLiteral","src":"1612:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1615:1:34","nodeType":"YulLiteral","src":"1615:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1605:6:34","nodeType":"YulIdentifier","src":"1605:6:34"},"nativeSrc":"1605:12:34","nodeType":"YulFunctionCall","src":"1605:12:34"},"nativeSrc":"1605:12:34","nodeType":"YulExpressionStatement","src":"1605:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1578:7:34","nodeType":"YulIdentifier","src":"1578:7:34"},{"name":"headStart","nativeSrc":"1587:9:34","nodeType":"YulIdentifier","src":"1587:9:34"}],"functionName":{"name":"sub","nativeSrc":"1574:3:34","nodeType":"YulIdentifier","src":"1574:3:34"},"nativeSrc":"1574:23:34","nodeType":"YulFunctionCall","src":"1574:23:34"},{"kind":"number","nativeSrc":"1599:2:34","nodeType":"YulLiteral","src":"1599:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1570:3:34","nodeType":"YulIdentifier","src":"1570:3:34"},"nativeSrc":"1570:32:34","nodeType":"YulFunctionCall","src":"1570:32:34"},"nativeSrc":"1567:52:34","nodeType":"YulIf","src":"1567:52:34"},{"nativeSrc":"1628:36:34","nodeType":"YulVariableDeclaration","src":"1628:36:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1654:9:34","nodeType":"YulIdentifier","src":"1654:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"1641:12:34","nodeType":"YulIdentifier","src":"1641:12:34"},"nativeSrc":"1641:23:34","nodeType":"YulFunctionCall","src":"1641:23:34"},"variables":[{"name":"value","nativeSrc":"1632:5:34","nodeType":"YulTypedName","src":"1632:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1698:5:34","nodeType":"YulIdentifier","src":"1698:5:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"1673:24:34","nodeType":"YulIdentifier","src":"1673:24:34"},"nativeSrc":"1673:31:34","nodeType":"YulFunctionCall","src":"1673:31:34"},"nativeSrc":"1673:31:34","nodeType":"YulExpressionStatement","src":"1673:31:34"},{"nativeSrc":"1713:15:34","nodeType":"YulAssignment","src":"1713:15:34","value":{"name":"value","nativeSrc":"1723:5:34","nodeType":"YulIdentifier","src":"1723:5:34"},"variableNames":[{"name":"value0","nativeSrc":"1713:6:34","nodeType":"YulIdentifier","src":"1713:6:34"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"1487:247:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1523:9:34","nodeType":"YulTypedName","src":"1523:9:34","type":""},{"name":"dataEnd","nativeSrc":"1534:7:34","nodeType":"YulTypedName","src":"1534:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1546:6:34","nodeType":"YulTypedName","src":"1546:6:34","type":""}],"src":"1487:247:34"},{"body":{"nativeSrc":"1840:76:34","nodeType":"YulBlock","src":"1840:76:34","statements":[{"nativeSrc":"1850:26:34","nodeType":"YulAssignment","src":"1850:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1862:9:34","nodeType":"YulIdentifier","src":"1862:9:34"},{"kind":"number","nativeSrc":"1873:2:34","nodeType":"YulLiteral","src":"1873:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1858:3:34","nodeType":"YulIdentifier","src":"1858:3:34"},"nativeSrc":"1858:18:34","nodeType":"YulFunctionCall","src":"1858:18:34"},"variableNames":[{"name":"tail","nativeSrc":"1850:4:34","nodeType":"YulIdentifier","src":"1850:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1892:9:34","nodeType":"YulIdentifier","src":"1892:9:34"},{"name":"value0","nativeSrc":"1903:6:34","nodeType":"YulIdentifier","src":"1903:6:34"}],"functionName":{"name":"mstore","nativeSrc":"1885:6:34","nodeType":"YulIdentifier","src":"1885:6:34"},"nativeSrc":"1885:25:34","nodeType":"YulFunctionCall","src":"1885:25:34"},"nativeSrc":"1885:25:34","nodeType":"YulExpressionStatement","src":"1885:25:34"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1739:177:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1809:9:34","nodeType":"YulTypedName","src":"1809:9:34","type":""},{"name":"value0","nativeSrc":"1820:6:34","nodeType":"YulTypedName","src":"1820:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1831:4:34","nodeType":"YulTypedName","src":"1831:4:34","type":""}],"src":"1739:177:34"},{"body":{"nativeSrc":"2002:170:34","nodeType":"YulBlock","src":"2002:170:34","statements":[{"body":{"nativeSrc":"2048:16:34","nodeType":"YulBlock","src":"2048:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2057:1:34","nodeType":"YulLiteral","src":"2057:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2060:1:34","nodeType":"YulLiteral","src":"2060:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2050:6:34","nodeType":"YulIdentifier","src":"2050:6:34"},"nativeSrc":"2050:12:34","nodeType":"YulFunctionCall","src":"2050:12:34"},"nativeSrc":"2050:12:34","nodeType":"YulExpressionStatement","src":"2050:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2023:7:34","nodeType":"YulIdentifier","src":"2023:7:34"},{"name":"headStart","nativeSrc":"2032:9:34","nodeType":"YulIdentifier","src":"2032:9:34"}],"functionName":{"name":"sub","nativeSrc":"2019:3:34","nodeType":"YulIdentifier","src":"2019:3:34"},"nativeSrc":"2019:23:34","nodeType":"YulFunctionCall","src":"2019:23:34"},{"kind":"number","nativeSrc":"2044:2:34","nodeType":"YulLiteral","src":"2044:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2015:3:34","nodeType":"YulIdentifier","src":"2015:3:34"},"nativeSrc":"2015:32:34","nodeType":"YulFunctionCall","src":"2015:32:34"},"nativeSrc":"2012:52:34","nodeType":"YulIf","src":"2012:52:34"},{"nativeSrc":"2073:29:34","nodeType":"YulVariableDeclaration","src":"2073:29:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2092:9:34","nodeType":"YulIdentifier","src":"2092:9:34"}],"functionName":{"name":"mload","nativeSrc":"2086:5:34","nodeType":"YulIdentifier","src":"2086:5:34"},"nativeSrc":"2086:16:34","nodeType":"YulFunctionCall","src":"2086:16:34"},"variables":[{"name":"value","nativeSrc":"2077:5:34","nodeType":"YulTypedName","src":"2077:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2136:5:34","nodeType":"YulIdentifier","src":"2136:5:34"}],"functionName":{"name":"validator_revert_address","nativeSrc":"2111:24:34","nodeType":"YulIdentifier","src":"2111:24:34"},"nativeSrc":"2111:31:34","nodeType":"YulFunctionCall","src":"2111:31:34"},"nativeSrc":"2111:31:34","nodeType":"YulExpressionStatement","src":"2111:31:34"},{"nativeSrc":"2151:15:34","nodeType":"YulAssignment","src":"2151:15:34","value":{"name":"value","nativeSrc":"2161:5:34","nodeType":"YulIdentifier","src":"2161:5:34"},"variableNames":[{"name":"value0","nativeSrc":"2151:6:34","nodeType":"YulIdentifier","src":"2151:6:34"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"1921:251:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1968:9:34","nodeType":"YulTypedName","src":"1968:9:34","type":""},{"name":"dataEnd","nativeSrc":"1979:7:34","nodeType":"YulTypedName","src":"1979:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1991:6:34","nodeType":"YulTypedName","src":"1991:6:34","type":""}],"src":"1921:251:34"},{"body":{"nativeSrc":"2351:155:34","nodeType":"YulBlock","src":"2351:155:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2368:9:34","nodeType":"YulIdentifier","src":"2368:9:34"},{"kind":"number","nativeSrc":"2379:2:34","nodeType":"YulLiteral","src":"2379:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2361:6:34","nodeType":"YulIdentifier","src":"2361:6:34"},"nativeSrc":"2361:21:34","nodeType":"YulFunctionCall","src":"2361:21:34"},"nativeSrc":"2361:21:34","nodeType":"YulExpressionStatement","src":"2361:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2402:9:34","nodeType":"YulIdentifier","src":"2402:9:34"},{"kind":"number","nativeSrc":"2413:2:34","nodeType":"YulLiteral","src":"2413:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2398:3:34","nodeType":"YulIdentifier","src":"2398:3:34"},"nativeSrc":"2398:18:34","nodeType":"YulFunctionCall","src":"2398:18:34"},{"kind":"number","nativeSrc":"2418:1:34","nodeType":"YulLiteral","src":"2418:1:34","type":"","value":"6"}],"functionName":{"name":"mstore","nativeSrc":"2391:6:34","nodeType":"YulIdentifier","src":"2391:6:34"},"nativeSrc":"2391:29:34","nodeType":"YulFunctionCall","src":"2391:29:34"},"nativeSrc":"2391:29:34","nodeType":"YulExpressionStatement","src":"2391:29:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2440:9:34","nodeType":"YulIdentifier","src":"2440:9:34"},{"kind":"number","nativeSrc":"2451:2:34","nodeType":"YulLiteral","src":"2451:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2436:3:34","nodeType":"YulIdentifier","src":"2436:3:34"},"nativeSrc":"2436:18:34","nodeType":"YulFunctionCall","src":"2436:18:34"},{"hexValue":"616d6f756e74","kind":"string","nativeSrc":"2456:8:34","nodeType":"YulLiteral","src":"2456:8:34","type":"","value":"amount"}],"functionName":{"name":"mstore","nativeSrc":"2429:6:34","nodeType":"YulIdentifier","src":"2429:6:34"},"nativeSrc":"2429:36:34","nodeType":"YulFunctionCall","src":"2429:36:34"},"nativeSrc":"2429:36:34","nodeType":"YulExpressionStatement","src":"2429:36:34"},{"nativeSrc":"2474:26:34","nodeType":"YulAssignment","src":"2474:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2486:9:34","nodeType":"YulIdentifier","src":"2486:9:34"},{"kind":"number","nativeSrc":"2497:2:34","nodeType":"YulLiteral","src":"2497:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2482:3:34","nodeType":"YulIdentifier","src":"2482:3:34"},"nativeSrc":"2482:18:34","nodeType":"YulFunctionCall","src":"2482:18:34"},"variableNames":[{"name":"tail","nativeSrc":"2474:4:34","nodeType":"YulIdentifier","src":"2474:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2177:329:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2328:9:34","nodeType":"YulTypedName","src":"2328:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2342:4:34","nodeType":"YulTypedName","src":"2342:4:34","type":""}],"src":"2177:329:34"},{"body":{"nativeSrc":"2668:241:34","nodeType":"YulBlock","src":"2668:241:34","statements":[{"nativeSrc":"2678:26:34","nodeType":"YulAssignment","src":"2678:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2690:9:34","nodeType":"YulIdentifier","src":"2690:9:34"},{"kind":"number","nativeSrc":"2701:2:34","nodeType":"YulLiteral","src":"2701:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"2686:3:34","nodeType":"YulIdentifier","src":"2686:3:34"},"nativeSrc":"2686:18:34","nodeType":"YulFunctionCall","src":"2686:18:34"},"variableNames":[{"name":"tail","nativeSrc":"2678:4:34","nodeType":"YulIdentifier","src":"2678:4:34"}]},{"nativeSrc":"2713:52:34","nodeType":"YulVariableDeclaration","src":"2713:52:34","value":{"kind":"number","nativeSrc":"2723:42:34","nodeType":"YulLiteral","src":"2723:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"2717:2:34","nodeType":"YulTypedName","src":"2717:2:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2781:9:34","nodeType":"YulIdentifier","src":"2781:9:34"},{"arguments":[{"name":"value0","nativeSrc":"2796:6:34","nodeType":"YulIdentifier","src":"2796:6:34"},{"name":"_1","nativeSrc":"2804:2:34","nodeType":"YulIdentifier","src":"2804:2:34"}],"functionName":{"name":"and","nativeSrc":"2792:3:34","nodeType":"YulIdentifier","src":"2792:3:34"},"nativeSrc":"2792:15:34","nodeType":"YulFunctionCall","src":"2792:15:34"}],"functionName":{"name":"mstore","nativeSrc":"2774:6:34","nodeType":"YulIdentifier","src":"2774:6:34"},"nativeSrc":"2774:34:34","nodeType":"YulFunctionCall","src":"2774:34:34"},"nativeSrc":"2774:34:34","nodeType":"YulExpressionStatement","src":"2774:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2828:9:34","nodeType":"YulIdentifier","src":"2828:9:34"},{"kind":"number","nativeSrc":"2839:2:34","nodeType":"YulLiteral","src":"2839:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2824:3:34","nodeType":"YulIdentifier","src":"2824:3:34"},"nativeSrc":"2824:18:34","nodeType":"YulFunctionCall","src":"2824:18:34"},{"arguments":[{"name":"value1","nativeSrc":"2848:6:34","nodeType":"YulIdentifier","src":"2848:6:34"},{"name":"_1","nativeSrc":"2856:2:34","nodeType":"YulIdentifier","src":"2856:2:34"}],"functionName":{"name":"and","nativeSrc":"2844:3:34","nodeType":"YulIdentifier","src":"2844:3:34"},"nativeSrc":"2844:15:34","nodeType":"YulFunctionCall","src":"2844:15:34"}],"functionName":{"name":"mstore","nativeSrc":"2817:6:34","nodeType":"YulIdentifier","src":"2817:6:34"},"nativeSrc":"2817:43:34","nodeType":"YulFunctionCall","src":"2817:43:34"},"nativeSrc":"2817:43:34","nodeType":"YulExpressionStatement","src":"2817:43:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2880:9:34","nodeType":"YulIdentifier","src":"2880:9:34"},{"kind":"number","nativeSrc":"2891:2:34","nodeType":"YulLiteral","src":"2891:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2876:3:34","nodeType":"YulIdentifier","src":"2876:3:34"},"nativeSrc":"2876:18:34","nodeType":"YulFunctionCall","src":"2876:18:34"},{"name":"value2","nativeSrc":"2896:6:34","nodeType":"YulIdentifier","src":"2896:6:34"}],"functionName":{"name":"mstore","nativeSrc":"2869:6:34","nodeType":"YulIdentifier","src":"2869:6:34"},"nativeSrc":"2869:34:34","nodeType":"YulFunctionCall","src":"2869:34:34"},"nativeSrc":"2869:34:34","nodeType":"YulExpressionStatement","src":"2869:34:34"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"2511:398:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2621:9:34","nodeType":"YulTypedName","src":"2621:9:34","type":""},{"name":"value2","nativeSrc":"2632:6:34","nodeType":"YulTypedName","src":"2632:6:34","type":""},{"name":"value1","nativeSrc":"2640:6:34","nodeType":"YulTypedName","src":"2640:6:34","type":""},{"name":"value0","nativeSrc":"2648:6:34","nodeType":"YulTypedName","src":"2648:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2659:4:34","nodeType":"YulTypedName","src":"2659:4:34","type":""}],"src":"2511:398:34"}]},"contents":"{\n    { }\n    function abi_decode_tuple_t_struct$_Party_$6436_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        value0 := headStart\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        value2 := calldataload(add(headStart, 64))\n        value3 := calldataload(add(headStart, 96))\n        let value_2 := calldataload(add(headStart, 128))\n        validator_revert_address(value_2)\n        value4 := value_2\n    }\n    function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffff00000000000000000000000000000000000000000000000000000000))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_address(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_89c4783cb6cc307f98e95f2d5d5d8647bdb3d4bdd087209374f187b38e098895__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 6)\n        mstore(add(headStart, 64), \"amount\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n    {\n        tail := add(headStart, 96)\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n    }\n}","id":34,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100675760003560e01c806347338bc31161005057806347338bc3146100aa578063a64d0cd4146100bf578063d1190df91461011757600080fd5b80633170f63d1461006c57806340944de914610094575b600080fd5b61007f61007a36600461037f565b61012a565b60405190151581526020015b60405180910390f35b61007f6100a236600461037f565b608001351590565b6100bd6100b83660046103bc565b6101ef565b005b6100e67f80ac58cd0000000000000000000000000000000000000000000000000000000081565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161008b565b61007f61012536600461037f565b6102f2565b60003361013d604084016020850161041b565b6040517f081812fc0000000000000000000000000000000000000000000000000000000081526060850135600482015273ffffffffffffffffffffffffffffffffffffffff919091169063081812fc906024015b602060405180830381865afa1580156101ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d2919061043f565b73ffffffffffffffffffffffffffffffffffffffff161492915050565b821561025b576040517f94d40be700000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f616d6f756e740000000000000000000000000000000000000000000000000000604482015260640160405180910390fd5b6040517f42842e0e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528581166024830152604482018490528216906342842e0e90606401600060405180830381600087803b1580156102d357600080fd5b505af11580156102e7573d6000803e3d6000fd5b505050505050505050565b6000610301602083018361041b565b73ffffffffffffffffffffffffffffffffffffffff16610327604084016020850161041b565b6040517f6352211e0000000000000000000000000000000000000000000000000000000081526060850135600482015273ffffffffffffffffffffffffffffffffffffffff9190911690636352211e90602401610191565b600060a0828403121561039157600080fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff811681146103b957600080fd5b50565b600080600080600060a086880312156103d457600080fd5b85356103df81610397565b945060208601356103ef81610397565b93506040860135925060608601359150608086013561040d81610397565b809150509295509295909350565b60006020828403121561042d57600080fd5b813561043881610397565b9392505050565b60006020828403121561045157600080fd5b81516104388161039756fea2646970667358221220b06e3da58d258728f1004286fceef6f552766c64fdb0bf25b837a68a3d29030564736f6c63430008170033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x47338BC3 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x47338BC3 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xA64D0CD4 EQ PUSH2 0xBF JUMPI DUP1 PUSH4 0xD1190DF9 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3170F63D EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x40944DE9 EQ PUSH2 0x94 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x37F JUMP JUMPDEST PUSH2 0x12A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0xA2 CALLDATASIZE PUSH1 0x4 PUSH2 0x37F JUMP JUMPDEST PUSH1 0x80 ADD CALLDATALOAD ISZERO SWAP1 JUMP JUMPDEST PUSH2 0xBD PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3BC JUMP JUMPDEST PUSH2 0x1EF JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE6 PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8B JUMP JUMPDEST PUSH2 0x7F PUSH2 0x125 CALLDATASIZE PUSH1 0x4 PUSH2 0x37F JUMP JUMPDEST PUSH2 0x2F2 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x13D PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x81812FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x81812FC SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D2 SWAP2 SWAP1 PUSH2 0x43F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO PUSH2 0x25B JUMPI PUSH1 0x40 MLOAD PUSH32 0x94D40BE700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x6 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x616D6F756E740000000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x42842E0E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE DUP6 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP5 SWAP1 MSTORE DUP3 AND SWAP1 PUSH4 0x42842E0E SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x301 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x41B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x327 PUSH1 0x40 DUP5 ADD PUSH1 0x20 DUP6 ADD PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x6352211E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH2 0x191 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x391 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x3B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x3DF DUP2 PUSH2 0x397 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x3EF DUP2 PUSH2 0x397 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH2 0x40D DUP2 PUSH2 0x397 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x42D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x438 DUP2 PUSH2 0x397 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x451 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x438 DUP2 PUSH2 0x397 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 PUSH15 0x3DA58D258728F1004286FCEEF6F552 PUSH23 0x6C64FDB0BF25B837A68A3D29030564736F6C6343000817 STOP CALLER ","sourceMap":"155:1540:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;475:156;;;;;;:::i;:::-;;:::i;:::-;;;376:14:34;;369:22;351:41;;339:2;324:18;475:156:30;;;;;;;;967:112;;;;;;:::i;:::-;1056:12;;;:17;;967:112;1460:233;;;;;;:::i;:::-;;:::i;:::-;;278:47;;;;;;;;1408:66:34;1396:79;;;1378:98;;1366:2;1351:18;278:47:30;1234:248:34;728:143:30;;;;;;:::i;:::-;;:::i;475:156::-;542:4;615:10;569:11;;;;;;;;:::i;:::-;561:42;;;;;594:8;;;;561:42;;;1885:25:34;561:32:30;;;;;;;;1858:18:34;;561:42:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;;;475:156;-1:-1:-1;;475:156:30:o;1460:233::-;1590:11;;1586:51;;1610:27;;;;;2379:2:34;1610:27:30;;;2361:21:34;2418:1;2398:18;;;2391:29;2456:8;2436:18;;;2429:36;2482:18;;1610:27:30;;;;;;;1586:51;1643:45;;;;;:31;2792:15:34;;;1643:45:30;;;2774:34:34;2844:15;;;2824:18;;;2817:43;2876:18;;;2869:34;;;1643:31:30;;;;;2686:18:34;;1643:45:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1460:233;;;;;:::o;728:143::-;793:4;854:12;;;;:5;:12;:::i;:::-;812:54;;820:11;;;;;;;;:::i;:::-;812:38;;;;;841:8;;;;812:38;;;1885:25:34;812:28:30;;;;;;;;1858:18:34;;812:38:30;1739:177:34;14:192;98:6;151:3;139:9;130:7;126:23;122:33;119:53;;;168:1;165;158:12;119:53;-1:-1:-1;191:9:34;14:192;-1:-1:-1;14:192:34:o;403:154::-;489:42;482:5;478:54;471:5;468:65;458:93;;547:1;544;537:12;458:93;403:154;:::o;562:667::-;657:6;665;673;681;689;742:3;730:9;721:7;717:23;713:33;710:53;;;759:1;756;749:12;710:53;798:9;785:23;817:31;842:5;817:31;:::i;:::-;867:5;-1:-1:-1;924:2:34;909:18;;896:32;937:33;896:32;937:33;:::i;:::-;989:7;-1:-1:-1;1043:2:34;1028:18;;1015:32;;-1:-1:-1;1094:2:34;1079:18;;1066:32;;-1:-1:-1;1150:3:34;1135:19;;1122:33;1164;1122;1164;:::i;:::-;1216:7;1206:17;;;562:667;;;;;;;;:::o;1487:247::-;1546:6;1599:2;1587:9;1578:7;1574:23;1570:32;1567:52;;;1615:1;1612;1605:12;1567:52;1654:9;1641:23;1673:31;1698:5;1673:31;:::i;:::-;1723:5;1487:247;-1:-1:-1;;;1487:247:34:o;1921:251::-;1991:6;2044:2;2032:9;2023:7;2019:23;2015:32;2012:52;;;2060:1;2057;2050:12;2012:52;2092:9;2086:16;2111:31;2136:5;2111:31;:::i"},"methodIdentifiers":{"hasAllowance((address,address,bytes4,uint256,uint256))":"3170f63d","hasBalance((address,address,bytes4,uint256,uint256))":"d1190df9","hasValidParams((address,address,bytes4,uint256,uint256))":"40944de9","interfaceId()":"a64d0cd4","transfer(address,address,uint256,uint256,address)":"47338bc3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"AmountOrIDInvalid\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasBalance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasValidParams\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"interfaceId\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"hasAllowance((address,address,bytes4,uint256,uint256))\":{\"details\":\"Use call: \\\"msg.sender\\\" is Swap contract\",\"params\":{\"party\":\"Party params to check\"}},\"hasBalance((address,address,bytes4,uint256,uint256))\":{\"params\":{\"party\":\"Party params to check\"}},\"hasValidParams((address,address,bytes4,uint256,uint256))\":{\"params\":{\"party\":\"Party params to check\"}},\"transfer(address,address,uint256,uint256,address)\":{\"details\":\"Use delegatecall: \\\"this\\\" is Swap contract\",\"params\":{\"amount\":\"uint256, must be 0 for this contract\",\"from\":\"address Wallet address to transfer from\",\"id\":\"uint256 ID for ERC721\",\"to\":\"address Wallet address to transfer to\",\"token\":\"address Contract address of token\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"AmountOrIDInvalid(string)\":[{\"notice\":\"Revert if provided an invalid transfer argument\"}]},\"kind\":\"user\",\"methods\":{\"hasAllowance((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks allowance on an ERC721\"},\"hasBalance((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks balance on an ERC721\"},\"hasValidParams((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks params for transfer\"},\"interfaceId()\":{\"notice\":\"Indicates the ERC165 interfaceId supported by this adapter\"},\"transfer(address,address,uint256,uint256,address)\":{\"notice\":\"Function to wrap safeTransferFrom for ERC721\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/adapters/ERC721Adapter.sol\":\"ERC721Adapter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/adapters/ERC721Adapter.sol\":{\"keccak256\":\"0x80a5279918f7e06cd947913b672be48e13e46a25ed6b32f8251b6069a1bfeb4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2a7237a47a468bd2dc12652179d1fd02dbb359bb780bac95b3b0f75d0586c56\",\"dweb:/ipfs/QmTWSxm3fahvFcdvCMZQLdyXnYetjL6W1ZAHp1DbAkNspL\"]},\"contracts/interfaces/IAdapter.sol\":{\"keccak256\":\"0x3517dae3dd23781ca263902ebe2ac6cb6af6a529b06b70cdf4031bd65595545e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6190f4aef0d7e4dce1cc0588665136f5a688438fd1f122fa53568aac123c22c\",\"dweb:/ipfs/QmbrpiRTJMBUv43xuwivkV8pNVUFHqYkecSusUpQk3sMqB\"]}},\"version\":1}"}},"contracts/interfaces/IAdapter.sol":{"IAdapter":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"AmountOrIDInvalid","type":"error"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"party","type":"tuple"}],"name":"hasValidParams","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"interfaceId","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"hasAllowance((address,address,bytes4,uint256,uint256))":"3170f63d","hasBalance((address,address,bytes4,uint256,uint256))":"d1190df9","hasValidParams((address,address,bytes4,uint256,uint256))":"40944de9","interfaceId()":"a64d0cd4","transfer(address,address,uint256,uint256,address)":"47338bc3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"AmountOrIDInvalid\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasBalance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"party\",\"type\":\"tuple\"}],\"name\":\"hasValidParams\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"interfaceId\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"hasAllowance((address,address,bytes4,uint256,uint256))\":{\"params\":{\"party\":\"Party params to check\"}},\"hasBalance((address,address,bytes4,uint256,uint256))\":{\"params\":{\"party\":\"Party params to check\"}},\"hasValidParams((address,address,bytes4,uint256,uint256))\":{\"params\":{\"party\":\"Party params to check\"}},\"transfer(address,address,uint256,uint256,address)\":{\"params\":{\"amount\":\"uint256 Amount for ERC-20\",\"from\":\"address Wallet address to transfer from\",\"id\":\"token ID for ERC-721\",\"to\":\"address Wallet address to transfer to\",\"token\":\"address Contract address of token\"}}},\"title\":\"IAdapter: Adapter for various token kinds\",\"version\":1},\"userdoc\":{\"errors\":{\"AmountOrIDInvalid(string)\":[{\"notice\":\"Revert if provided an invalid transfer argument\"}]},\"kind\":\"user\",\"methods\":{\"hasAllowance((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks allowance on a token\"},\"hasBalance((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks balance on a token\"},\"hasValidParams((address,address,bytes4,uint256,uint256))\":{\"notice\":\"Checks params for transfer\"},\"interfaceId()\":{\"notice\":\"Return the ERC165 interfaceId this adapter supports\"},\"transfer(address,address,uint256,uint256,address)\":{\"notice\":\"Function to wrap token transfer for different token types\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAdapter.sol\":\"IAdapter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAdapter.sol\":{\"keccak256\":\"0x3517dae3dd23781ca263902ebe2ac6cb6af6a529b06b70cdf4031bd65595545e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6190f4aef0d7e4dce1cc0588665136f5a688438fd1f122fa53568aac123c22c\",\"dweb:/ipfs/QmbrpiRTJMBUv43xuwivkV8pNVUFHqYkecSusUpQk3sMqB\"]}},\"version\":1}"}},"contracts/interfaces/ISwap.sol":{"ISwap":{"abi":[{"inputs":[],"name":"AdaptersInvalid","type":"error"},{"inputs":[],"name":"AffiliateAmountInvalid","type":"error"},{"inputs":[],"name":"FeeInvalid","type":"error"},{"inputs":[],"name":"FeeWalletInvalid","type":"error"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"NonceAlreadyUsed","type":"error"},{"inputs":[],"name":"NonceTooLow","type":"error"},{"inputs":[],"name":"OrderExpired","type":"error"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"RoyaltyExceedsMax","type":"error"},{"inputs":[],"name":"SenderInvalid","type":"error"},{"inputs":[],"name":"SenderTokenInvalid","type":"error"},{"inputs":[],"name":"SignatoryInvalid","type":"error"},{"inputs":[],"name":"SignatoryUnauthorized","type":"error"},{"inputs":[],"name":"SignatureInvalid","type":"error"},{"inputs":[],"name":"TokenKindUnknown","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":true,"internalType":"address","name":"signerWallet","type":"address"}],"name":"Authorize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":true,"internalType":"address","name":"signerWallet","type":"address"}],"name":"Cancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":true,"internalType":"address","name":"signerWallet","type":"address"}],"name":"CancelUpTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"signer","type":"address"},{"indexed":true,"internalType":"address","name":"signerWallet","type":"address"}],"name":"Revoke","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"protocolFee","type":"uint256"}],"name":"SetProtocolFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"feeWallet","type":"address"}],"name":"SetProtocolFeeWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":true,"internalType":"address","name":"signerWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"signerAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"signerId","type":"uint256"},{"indexed":false,"internalType":"address","name":"signerToken","type":"address"},{"indexed":true,"internalType":"address","name":"senderWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"senderAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"senderId","type":"uint256"},{"indexed":false,"internalType":"address","name":"senderToken","type":"address"},{"indexed":false,"internalType":"address","name":"affiliateWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"affiliateAmount","type":"uint256"}],"name":"Swap","type":"event"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"adapters","outputs":[{"internalType":"contract IAdapter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorized","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"nonces","type":"uint256[]"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minimumNonce","type":"uint256"}],"name":"cancelUpTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"signer","type":"tuple"},{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"sender","type":"tuple"},{"internalType":"address","name":"affiliateWallet","type":"address"},{"internalType":"uint256","name":"affiliateAmount","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ISwap.Order","name":"","type":"tuple"}],"name":"check","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nonceUsed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revoke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"signatoryMinimumNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"maxRoyalty","type":"uint256"},{"components":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"signer","type":"tuple"},{"components":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"bytes4","name":"kind","type":"bytes4"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Party","name":"sender","type":"tuple"},{"internalType":"address","name":"affiliateWallet","type":"address"},{"internalType":"uint256","name":"affiliateAmount","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct ISwap.Order","name":"order","type":"tuple"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"adapters(bytes4)":"6e038752","authorize(address)":"b6a5d7de","authorized(address)":"b9181611","cancel(uint256[])":"2e340823","cancelUpTo(uint256)":"3c641910","check(address,(uint256,uint256,(address,address,bytes4,uint256,uint256),(address,address,bytes4,uint256,uint256),address,uint256,uint8,bytes32,bytes32))":"49b8a932","nonceUsed(address,uint256)":"1647795e","revoke()":"b6549f75","signatoryMinimumNonce(address)":"b0dd4943","swap(address,uint256,(uint256,uint256,(address,address,bytes4,uint256,uint256),(address,address,bytes4,uint256,uint256),address,uint256,uint8,bytes32,bytes32))":"48542105"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AdaptersInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AffiliateAmountInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FeeWalletInvalid\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"NonceAlreadyUsed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonceTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"RoyaltyExceedsMax\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderTokenInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatoryInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatoryUnauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenKindUnknown\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signerWallet\",\"type\":\"address\"}],\"name\":\"Authorize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signerWallet\",\"type\":\"address\"}],\"name\":\"Cancel\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signerWallet\",\"type\":\"address\"}],\"name\":\"CancelUpTo\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signerWallet\",\"type\":\"address\"}],\"name\":\"Revoke\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolFee\",\"type\":\"uint256\"}],\"name\":\"SetProtocolFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"feeWallet\",\"type\":\"address\"}],\"name\":\"SetProtocolFeeWallet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"signerWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"signerAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"signerId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"signerToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"senderWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"senderAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"senderId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"senderToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"affiliateWallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"affiliateAmount\",\"type\":\"uint256\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"adapters\",\"outputs\":[{\"internalType\":\"contract IAdapter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"authorize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"authorized\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"nonces\",\"type\":\"uint256[]\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minimumNonce\",\"type\":\"uint256\"}],\"name\":\"cancelUpTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"signer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"sender\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"affiliateWallet\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"affiliateAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct ISwap.Order\",\"name\":\"\",\"type\":\"tuple\"}],\"name\":\"check\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"nonceUsed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"signatoryMinimumNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxRoyalty\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"signer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"kind\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Party\",\"name\":\"sender\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"affiliateWallet\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"affiliateAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"internalType\":\"struct ISwap.Order\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ISwap.sol\":\"ISwap\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAdapter.sol\":{\"keccak256\":\"0x3517dae3dd23781ca263902ebe2ac6cb6af6a529b06b70cdf4031bd65595545e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6190f4aef0d7e4dce1cc0588665136f5a688438fd1f122fa53568aac123c22c\",\"dweb:/ipfs/QmbrpiRTJMBUv43xuwivkV8pNVUFHqYkecSusUpQk3sMqB\"]},\"contracts/interfaces/ISwap.sol\":{\"keccak256\":\"0x5bdf556fb0b10ee0b5c1cfcabfa72c0f62b41fabb71493c054c95ef092ebf64b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1cff90f80b279b7fde128cce56a48e1de7fe97c4cccc9abdecbd6d6110f5a\",\"dweb:/ipfs/QmWybhUpcWrUN3EjraP8M9beZX6nSkjK5UqPjQDRB1s3AY\"]}},\"version\":1}"}},"contracts/test/ERC721Royalty.sol":{"ERC721Royalty":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"royaltyReceiver","type":"address"},{"internalType":"uint96","name":"feeNumerator","type":"uint96"}],"name":"mintWithRoyalty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_23":{"entryPoint":null,"id":23,"parameterSlots":0,"returnSlots":0},"@_6715":{"entryPoint":null,"id":6715,"parameterSlots":0,"returnSlots":0},"@_928":{"entryPoint":null,"id":928,"parameterSlots":2,"returnSlots":0},"@_feeDenominator_2058":{"entryPoint":null,"id":2058,"parameterSlots":0,"returnSlots":1},"@_msgSender_2493":{"entryPoint":160,"id":2493,"parameterSlots":0,"returnSlots":1},"@_setDefaultRoyalty_2092":{"entryPoint":246,"id":2092,"parameterSlots":2,"returnSlots":0},"@_transferOwnership_111":{"entryPoint":164,"id":111,"parameterSlots":1,"returnSlots":0},"abi_encode_tuple_t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f66a1010ca1024f054dcd95a016427c9d452e7f1ceb553ccd3a5e37073a6ffff__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":589,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":674,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":529,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":507,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:3488:34","nodeType":"YulBlock","src":"0:3488:34","statements":[{"nativeSrc":"6:3:34","nodeType":"YulBlock","src":"6:3:34","statements":[]},{"body":{"nativeSrc":"46:95:34","nodeType":"YulBlock","src":"46:95:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63:1:34","nodeType":"YulLiteral","src":"63:1:34","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"70:3:34","nodeType":"YulLiteral","src":"70:3:34","type":"","value":"224"},{"kind":"number","nativeSrc":"75:10:34","nodeType":"YulLiteral","src":"75:10:34","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"66:3:34","nodeType":"YulIdentifier","src":"66:3:34"},"nativeSrc":"66:20:34","nodeType":"YulFunctionCall","src":"66:20:34"}],"functionName":{"name":"mstore","nativeSrc":"56:6:34","nodeType":"YulIdentifier","src":"56:6:34"},"nativeSrc":"56:31:34","nodeType":"YulFunctionCall","src":"56:31:34"},"nativeSrc":"56:31:34","nodeType":"YulExpressionStatement","src":"56:31:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103:1:34","nodeType":"YulLiteral","src":"103:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"106:4:34","nodeType":"YulLiteral","src":"106:4:34","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"96:6:34","nodeType":"YulIdentifier","src":"96:6:34"},"nativeSrc":"96:15:34","nodeType":"YulFunctionCall","src":"96:15:34"},"nativeSrc":"96:15:34","nodeType":"YulExpressionStatement","src":"96:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127:1:34","nodeType":"YulLiteral","src":"127:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"130:4:34","nodeType":"YulLiteral","src":"130:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"120:6:34","nodeType":"YulIdentifier","src":"120:6:34"},"nativeSrc":"120:15:34","nodeType":"YulFunctionCall","src":"120:15:34"},"nativeSrc":"120:15:34","nodeType":"YulExpressionStatement","src":"120:15:34"}]},"name":"panic_error_0x41","nativeSrc":"14:127:34","nodeType":"YulFunctionDefinition","src":"14:127:34"},{"body":{"nativeSrc":"201:325:34","nodeType":"YulBlock","src":"201:325:34","statements":[{"nativeSrc":"211:22:34","nodeType":"YulAssignment","src":"211:22:34","value":{"arguments":[{"kind":"number","nativeSrc":"225:1:34","nodeType":"YulLiteral","src":"225:1:34","type":"","value":"1"},{"name":"data","nativeSrc":"228:4:34","nodeType":"YulIdentifier","src":"228:4:34"}],"functionName":{"name":"shr","nativeSrc":"221:3:34","nodeType":"YulIdentifier","src":"221:3:34"},"nativeSrc":"221:12:34","nodeType":"YulFunctionCall","src":"221:12:34"},"variableNames":[{"name":"length","nativeSrc":"211:6:34","nodeType":"YulIdentifier","src":"211:6:34"}]},{"nativeSrc":"242:38:34","nodeType":"YulVariableDeclaration","src":"242:38:34","value":{"arguments":[{"name":"data","nativeSrc":"272:4:34","nodeType":"YulIdentifier","src":"272:4:34"},{"kind":"number","nativeSrc":"278:1:34","nodeType":"YulLiteral","src":"278:1:34","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"268:3:34","nodeType":"YulIdentifier","src":"268:3:34"},"nativeSrc":"268:12:34","nodeType":"YulFunctionCall","src":"268:12:34"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"246:18:34","nodeType":"YulTypedName","src":"246:18:34","type":""}]},{"body":{"nativeSrc":"319:31:34","nodeType":"YulBlock","src":"319:31:34","statements":[{"nativeSrc":"321:27:34","nodeType":"YulAssignment","src":"321:27:34","value":{"arguments":[{"name":"length","nativeSrc":"335:6:34","nodeType":"YulIdentifier","src":"335:6:34"},{"kind":"number","nativeSrc":"343:4:34","nodeType":"YulLiteral","src":"343:4:34","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"331:3:34","nodeType":"YulIdentifier","src":"331:3:34"},"nativeSrc":"331:17:34","nodeType":"YulFunctionCall","src":"331:17:34"},"variableNames":[{"name":"length","nativeSrc":"321:6:34","nodeType":"YulIdentifier","src":"321:6:34"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"299:18:34","nodeType":"YulIdentifier","src":"299:18:34"}],"functionName":{"name":"iszero","nativeSrc":"292:6:34","nodeType":"YulIdentifier","src":"292:6:34"},"nativeSrc":"292:26:34","nodeType":"YulFunctionCall","src":"292:26:34"},"nativeSrc":"289:61:34","nodeType":"YulIf","src":"289:61:34"},{"body":{"nativeSrc":"409:111:34","nodeType":"YulBlock","src":"409:111:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"430:1:34","nodeType":"YulLiteral","src":"430:1:34","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"437:3:34","nodeType":"YulLiteral","src":"437:3:34","type":"","value":"224"},{"kind":"number","nativeSrc":"442:10:34","nodeType":"YulLiteral","src":"442:10:34","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nativeSrc":"433:3:34","nodeType":"YulIdentifier","src":"433:3:34"},"nativeSrc":"433:20:34","nodeType":"YulFunctionCall","src":"433:20:34"}],"functionName":{"name":"mstore","nativeSrc":"423:6:34","nodeType":"YulIdentifier","src":"423:6:34"},"nativeSrc":"423:31:34","nodeType":"YulFunctionCall","src":"423:31:34"},"nativeSrc":"423:31:34","nodeType":"YulExpressionStatement","src":"423:31:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"474:1:34","nodeType":"YulLiteral","src":"474:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"477:4:34","nodeType":"YulLiteral","src":"477:4:34","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"467:6:34","nodeType":"YulIdentifier","src":"467:6:34"},"nativeSrc":"467:15:34","nodeType":"YulFunctionCall","src":"467:15:34"},"nativeSrc":"467:15:34","nodeType":"YulExpressionStatement","src":"467:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"502:1:34","nodeType":"YulLiteral","src":"502:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"505:4:34","nodeType":"YulLiteral","src":"505:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"495:6:34","nodeType":"YulIdentifier","src":"495:6:34"},"nativeSrc":"495:15:34","nodeType":"YulFunctionCall","src":"495:15:34"},"nativeSrc":"495:15:34","nodeType":"YulExpressionStatement","src":"495:15:34"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"365:18:34","nodeType":"YulIdentifier","src":"365:18:34"},{"arguments":[{"name":"length","nativeSrc":"388:6:34","nodeType":"YulIdentifier","src":"388:6:34"},{"kind":"number","nativeSrc":"396:2:34","nodeType":"YulLiteral","src":"396:2:34","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"385:2:34","nodeType":"YulIdentifier","src":"385:2:34"},"nativeSrc":"385:14:34","nodeType":"YulFunctionCall","src":"385:14:34"}],"functionName":{"name":"eq","nativeSrc":"362:2:34","nodeType":"YulIdentifier","src":"362:2:34"},"nativeSrc":"362:38:34","nodeType":"YulFunctionCall","src":"362:38:34"},"nativeSrc":"359:161:34","nodeType":"YulIf","src":"359:161:34"}]},"name":"extract_byte_array_length","nativeSrc":"146:380:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"181:4:34","nodeType":"YulTypedName","src":"181:4:34","type":""}],"returnVariables":[{"name":"length","nativeSrc":"190:6:34","nodeType":"YulTypedName","src":"190:6:34","type":""}],"src":"146:380:34"},{"body":{"nativeSrc":"587:65:34","nodeType":"YulBlock","src":"587:65:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"604:1:34","nodeType":"YulLiteral","src":"604:1:34","type":"","value":"0"},{"name":"ptr","nativeSrc":"607:3:34","nodeType":"YulIdentifier","src":"607:3:34"}],"functionName":{"name":"mstore","nativeSrc":"597:6:34","nodeType":"YulIdentifier","src":"597:6:34"},"nativeSrc":"597:14:34","nodeType":"YulFunctionCall","src":"597:14:34"},"nativeSrc":"597:14:34","nodeType":"YulExpressionStatement","src":"597:14:34"},{"nativeSrc":"620:26:34","nodeType":"YulAssignment","src":"620:26:34","value":{"arguments":[{"kind":"number","nativeSrc":"638:1:34","nodeType":"YulLiteral","src":"638:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"641:4:34","nodeType":"YulLiteral","src":"641:4:34","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"628:9:34","nodeType":"YulIdentifier","src":"628:9:34"},"nativeSrc":"628:18:34","nodeType":"YulFunctionCall","src":"628:18:34"},"variableNames":[{"name":"data","nativeSrc":"620:4:34","nodeType":"YulIdentifier","src":"620:4:34"}]}]},"name":"array_dataslot_string_storage","nativeSrc":"531:121:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"570:3:34","nodeType":"YulTypedName","src":"570:3:34","type":""}],"returnVariables":[{"name":"data","nativeSrc":"578:4:34","nodeType":"YulTypedName","src":"578:4:34","type":""}],"src":"531:121:34"},{"body":{"nativeSrc":"738:462:34","nodeType":"YulBlock","src":"738:462:34","statements":[{"body":{"nativeSrc":"771:423:34","nodeType":"YulBlock","src":"771:423:34","statements":[{"nativeSrc":"785:11:34","nodeType":"YulVariableDeclaration","src":"785:11:34","value":{"kind":"number","nativeSrc":"795:1:34","nodeType":"YulLiteral","src":"795:1:34","type":"","value":"0"},"variables":[{"name":"_1","nativeSrc":"789:2:34","nodeType":"YulTypedName","src":"789:2:34","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"816:1:34","nodeType":"YulLiteral","src":"816:1:34","type":"","value":"0"},{"name":"array","nativeSrc":"819:5:34","nodeType":"YulIdentifier","src":"819:5:34"}],"functionName":{"name":"mstore","nativeSrc":"809:6:34","nodeType":"YulIdentifier","src":"809:6:34"},"nativeSrc":"809:16:34","nodeType":"YulFunctionCall","src":"809:16:34"},"nativeSrc":"809:16:34","nodeType":"YulExpressionStatement","src":"809:16:34"},{"nativeSrc":"838:30:34","nodeType":"YulVariableDeclaration","src":"838:30:34","value":{"arguments":[{"kind":"number","nativeSrc":"860:1:34","nodeType":"YulLiteral","src":"860:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"863:4:34","nodeType":"YulLiteral","src":"863:4:34","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"850:9:34","nodeType":"YulIdentifier","src":"850:9:34"},"nativeSrc":"850:18:34","nodeType":"YulFunctionCall","src":"850:18:34"},"variables":[{"name":"data","nativeSrc":"842:4:34","nodeType":"YulTypedName","src":"842:4:34","type":""}]},{"nativeSrc":"881:57:34","nodeType":"YulVariableDeclaration","src":"881:57:34","value":{"arguments":[{"name":"data","nativeSrc":"904:4:34","nodeType":"YulIdentifier","src":"904:4:34"},{"arguments":[{"kind":"number","nativeSrc":"914:1:34","nodeType":"YulLiteral","src":"914:1:34","type":"","value":"5"},{"arguments":[{"name":"startIndex","nativeSrc":"921:10:34","nodeType":"YulIdentifier","src":"921:10:34"},{"kind":"number","nativeSrc":"933:2:34","nodeType":"YulLiteral","src":"933:2:34","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"917:3:34","nodeType":"YulIdentifier","src":"917:3:34"},"nativeSrc":"917:19:34","nodeType":"YulFunctionCall","src":"917:19:34"}],"functionName":{"name":"shr","nativeSrc":"910:3:34","nodeType":"YulIdentifier","src":"910:3:34"},"nativeSrc":"910:27:34","nodeType":"YulFunctionCall","src":"910:27:34"}],"functionName":{"name":"add","nativeSrc":"900:3:34","nodeType":"YulIdentifier","src":"900:3:34"},"nativeSrc":"900:38:34","nodeType":"YulFunctionCall","src":"900:38:34"},"variables":[{"name":"deleteStart","nativeSrc":"885:11:34","nodeType":"YulTypedName","src":"885:11:34","type":""}]},{"body":{"nativeSrc":"975:23:34","nodeType":"YulBlock","src":"975:23:34","statements":[{"nativeSrc":"977:19:34","nodeType":"YulAssignment","src":"977:19:34","value":{"name":"data","nativeSrc":"992:4:34","nodeType":"YulIdentifier","src":"992:4:34"},"variableNames":[{"name":"deleteStart","nativeSrc":"977:11:34","nodeType":"YulIdentifier","src":"977:11:34"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"957:10:34","nodeType":"YulIdentifier","src":"957:10:34"},{"kind":"number","nativeSrc":"969:4:34","nodeType":"YulLiteral","src":"969:4:34","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"954:2:34","nodeType":"YulIdentifier","src":"954:2:34"},"nativeSrc":"954:20:34","nodeType":"YulFunctionCall","src":"954:20:34"},"nativeSrc":"951:47:34","nodeType":"YulIf","src":"951:47:34"},{"nativeSrc":"1011:41:34","nodeType":"YulVariableDeclaration","src":"1011:41:34","value":{"arguments":[{"name":"data","nativeSrc":"1025:4:34","nodeType":"YulIdentifier","src":"1025:4:34"},{"arguments":[{"kind":"number","nativeSrc":"1035:1:34","nodeType":"YulLiteral","src":"1035:1:34","type":"","value":"5"},{"arguments":[{"name":"len","nativeSrc":"1042:3:34","nodeType":"YulIdentifier","src":"1042:3:34"},{"kind":"number","nativeSrc":"1047:2:34","nodeType":"YulLiteral","src":"1047:2:34","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1038:3:34","nodeType":"YulIdentifier","src":"1038:3:34"},"nativeSrc":"1038:12:34","nodeType":"YulFunctionCall","src":"1038:12:34"}],"functionName":{"name":"shr","nativeSrc":"1031:3:34","nodeType":"YulIdentifier","src":"1031:3:34"},"nativeSrc":"1031:20:34","nodeType":"YulFunctionCall","src":"1031:20:34"}],"functionName":{"name":"add","nativeSrc":"1021:3:34","nodeType":"YulIdentifier","src":"1021:3:34"},"nativeSrc":"1021:31:34","nodeType":"YulFunctionCall","src":"1021:31:34"},"variables":[{"name":"_2","nativeSrc":"1015:2:34","nodeType":"YulTypedName","src":"1015:2:34","type":""}]},{"nativeSrc":"1065:24:34","nodeType":"YulVariableDeclaration","src":"1065:24:34","value":{"name":"deleteStart","nativeSrc":"1078:11:34","nodeType":"YulIdentifier","src":"1078:11:34"},"variables":[{"name":"start","nativeSrc":"1069:5:34","nodeType":"YulTypedName","src":"1069:5:34","type":""}]},{"body":{"nativeSrc":"1163:21:34","nodeType":"YulBlock","src":"1163:21:34","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"1172:5:34","nodeType":"YulIdentifier","src":"1172:5:34"},{"name":"_1","nativeSrc":"1179:2:34","nodeType":"YulIdentifier","src":"1179:2:34"}],"functionName":{"name":"sstore","nativeSrc":"1165:6:34","nodeType":"YulIdentifier","src":"1165:6:34"},"nativeSrc":"1165:17:34","nodeType":"YulFunctionCall","src":"1165:17:34"},"nativeSrc":"1165:17:34","nodeType":"YulExpressionStatement","src":"1165:17:34"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"1113:5:34","nodeType":"YulIdentifier","src":"1113:5:34"},{"name":"_2","nativeSrc":"1120:2:34","nodeType":"YulIdentifier","src":"1120:2:34"}],"functionName":{"name":"lt","nativeSrc":"1110:2:34","nodeType":"YulIdentifier","src":"1110:2:34"},"nativeSrc":"1110:13:34","nodeType":"YulFunctionCall","src":"1110:13:34"},"nativeSrc":"1102:82:34","nodeType":"YulForLoop","post":{"nativeSrc":"1124:26:34","nodeType":"YulBlock","src":"1124:26:34","statements":[{"nativeSrc":"1126:22:34","nodeType":"YulAssignment","src":"1126:22:34","value":{"arguments":[{"name":"start","nativeSrc":"1139:5:34","nodeType":"YulIdentifier","src":"1139:5:34"},{"kind":"number","nativeSrc":"1146:1:34","nodeType":"YulLiteral","src":"1146:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"1135:3:34","nodeType":"YulIdentifier","src":"1135:3:34"},"nativeSrc":"1135:13:34","nodeType":"YulFunctionCall","src":"1135:13:34"},"variableNames":[{"name":"start","nativeSrc":"1126:5:34","nodeType":"YulIdentifier","src":"1126:5:34"}]}]},"pre":{"nativeSrc":"1106:3:34","nodeType":"YulBlock","src":"1106:3:34","statements":[]},"src":"1102:82:34"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"754:3:34","nodeType":"YulIdentifier","src":"754:3:34"},{"kind":"number","nativeSrc":"759:2:34","nodeType":"YulLiteral","src":"759:2:34","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"751:2:34","nodeType":"YulIdentifier","src":"751:2:34"},"nativeSrc":"751:11:34","nodeType":"YulFunctionCall","src":"751:11:34"},"nativeSrc":"748:446:34","nodeType":"YulIf","src":"748:446:34"}]},"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"657:543:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"710:5:34","nodeType":"YulTypedName","src":"710:5:34","type":""},{"name":"len","nativeSrc":"717:3:34","nodeType":"YulTypedName","src":"717:3:34","type":""},{"name":"startIndex","nativeSrc":"722:10:34","nodeType":"YulTypedName","src":"722:10:34","type":""}],"src":"657:543:34"},{"body":{"nativeSrc":"1290:81:34","nodeType":"YulBlock","src":"1290:81:34","statements":[{"nativeSrc":"1300:65:34","nodeType":"YulAssignment","src":"1300:65:34","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"1315:4:34","nodeType":"YulIdentifier","src":"1315:4:34"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1333:1:34","nodeType":"YulLiteral","src":"1333:1:34","type":"","value":"3"},{"name":"len","nativeSrc":"1336:3:34","nodeType":"YulIdentifier","src":"1336:3:34"}],"functionName":{"name":"shl","nativeSrc":"1329:3:34","nodeType":"YulIdentifier","src":"1329:3:34"},"nativeSrc":"1329:11:34","nodeType":"YulFunctionCall","src":"1329:11:34"},{"arguments":[{"kind":"number","nativeSrc":"1346:1:34","nodeType":"YulLiteral","src":"1346:1:34","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"1342:3:34","nodeType":"YulIdentifier","src":"1342:3:34"},"nativeSrc":"1342:6:34","nodeType":"YulFunctionCall","src":"1342:6:34"}],"functionName":{"name":"shr","nativeSrc":"1325:3:34","nodeType":"YulIdentifier","src":"1325:3:34"},"nativeSrc":"1325:24:34","nodeType":"YulFunctionCall","src":"1325:24:34"}],"functionName":{"name":"not","nativeSrc":"1321:3:34","nodeType":"YulIdentifier","src":"1321:3:34"},"nativeSrc":"1321:29:34","nodeType":"YulFunctionCall","src":"1321:29:34"}],"functionName":{"name":"and","nativeSrc":"1311:3:34","nodeType":"YulIdentifier","src":"1311:3:34"},"nativeSrc":"1311:40:34","nodeType":"YulFunctionCall","src":"1311:40:34"},{"arguments":[{"kind":"number","nativeSrc":"1357:1:34","nodeType":"YulLiteral","src":"1357:1:34","type":"","value":"1"},{"name":"len","nativeSrc":"1360:3:34","nodeType":"YulIdentifier","src":"1360:3:34"}],"functionName":{"name":"shl","nativeSrc":"1353:3:34","nodeType":"YulIdentifier","src":"1353:3:34"},"nativeSrc":"1353:11:34","nodeType":"YulFunctionCall","src":"1353:11:34"}],"functionName":{"name":"or","nativeSrc":"1308:2:34","nodeType":"YulIdentifier","src":"1308:2:34"},"nativeSrc":"1308:57:34","nodeType":"YulFunctionCall","src":"1308:57:34"},"variableNames":[{"name":"used","nativeSrc":"1300:4:34","nodeType":"YulIdentifier","src":"1300:4:34"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"1205:166:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"1267:4:34","nodeType":"YulTypedName","src":"1267:4:34","type":""},{"name":"len","nativeSrc":"1273:3:34","nodeType":"YulTypedName","src":"1273:3:34","type":""}],"returnVariables":[{"name":"used","nativeSrc":"1281:4:34","nodeType":"YulTypedName","src":"1281:4:34","type":""}],"src":"1205:166:34"},{"body":{"nativeSrc":"1472:1249:34","nodeType":"YulBlock","src":"1472:1249:34","statements":[{"nativeSrc":"1482:24:34","nodeType":"YulVariableDeclaration","src":"1482:24:34","value":{"arguments":[{"name":"src","nativeSrc":"1502:3:34","nodeType":"YulIdentifier","src":"1502:3:34"}],"functionName":{"name":"mload","nativeSrc":"1496:5:34","nodeType":"YulIdentifier","src":"1496:5:34"},"nativeSrc":"1496:10:34","nodeType":"YulFunctionCall","src":"1496:10:34"},"variables":[{"name":"newLen","nativeSrc":"1486:6:34","nodeType":"YulTypedName","src":"1486:6:34","type":""}]},{"body":{"nativeSrc":"1549:22:34","nodeType":"YulBlock","src":"1549:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1551:16:34","nodeType":"YulIdentifier","src":"1551:16:34"},"nativeSrc":"1551:18:34","nodeType":"YulFunctionCall","src":"1551:18:34"},"nativeSrc":"1551:18:34","nodeType":"YulExpressionStatement","src":"1551:18:34"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"1521:6:34","nodeType":"YulIdentifier","src":"1521:6:34"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1537:2:34","nodeType":"YulLiteral","src":"1537:2:34","type":"","value":"64"},{"kind":"number","nativeSrc":"1541:1:34","nodeType":"YulLiteral","src":"1541:1:34","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"1533:3:34","nodeType":"YulIdentifier","src":"1533:3:34"},"nativeSrc":"1533:10:34","nodeType":"YulFunctionCall","src":"1533:10:34"},{"kind":"number","nativeSrc":"1545:1:34","nodeType":"YulLiteral","src":"1545:1:34","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1529:3:34","nodeType":"YulIdentifier","src":"1529:3:34"},"nativeSrc":"1529:18:34","nodeType":"YulFunctionCall","src":"1529:18:34"}],"functionName":{"name":"gt","nativeSrc":"1518:2:34","nodeType":"YulIdentifier","src":"1518:2:34"},"nativeSrc":"1518:30:34","nodeType":"YulFunctionCall","src":"1518:30:34"},"nativeSrc":"1515:56:34","nodeType":"YulIf","src":"1515:56:34"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"1624:4:34","nodeType":"YulIdentifier","src":"1624:4:34"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"1662:4:34","nodeType":"YulIdentifier","src":"1662:4:34"}],"functionName":{"name":"sload","nativeSrc":"1656:5:34","nodeType":"YulIdentifier","src":"1656:5:34"},"nativeSrc":"1656:11:34","nodeType":"YulFunctionCall","src":"1656:11:34"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"1630:25:34","nodeType":"YulIdentifier","src":"1630:25:34"},"nativeSrc":"1630:38:34","nodeType":"YulFunctionCall","src":"1630:38:34"},{"name":"newLen","nativeSrc":"1670:6:34","nodeType":"YulIdentifier","src":"1670:6:34"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nativeSrc":"1580:43:34","nodeType":"YulIdentifier","src":"1580:43:34"},"nativeSrc":"1580:97:34","nodeType":"YulFunctionCall","src":"1580:97:34"},"nativeSrc":"1580:97:34","nodeType":"YulExpressionStatement","src":"1580:97:34"},{"nativeSrc":"1686:18:34","nodeType":"YulVariableDeclaration","src":"1686:18:34","value":{"kind":"number","nativeSrc":"1703:1:34","nodeType":"YulLiteral","src":"1703:1:34","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"1690:9:34","nodeType":"YulTypedName","src":"1690:9:34","type":""}]},{"nativeSrc":"1713:23:34","nodeType":"YulVariableDeclaration","src":"1713:23:34","value":{"kind":"number","nativeSrc":"1732:4:34","nodeType":"YulLiteral","src":"1732:4:34","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nativeSrc":"1717:11:34","nodeType":"YulTypedName","src":"1717:11:34","type":""}]},{"nativeSrc":"1745:17:34","nodeType":"YulAssignment","src":"1745:17:34","value":{"kind":"number","nativeSrc":"1758:4:34","nodeType":"YulLiteral","src":"1758:4:34","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"1745:9:34","nodeType":"YulIdentifier","src":"1745:9:34"}]},{"cases":[{"body":{"nativeSrc":"1808:656:34","nodeType":"YulBlock","src":"1808:656:34","statements":[{"nativeSrc":"1822:35:34","nodeType":"YulVariableDeclaration","src":"1822:35:34","value":{"arguments":[{"name":"newLen","nativeSrc":"1841:6:34","nodeType":"YulIdentifier","src":"1841:6:34"},{"arguments":[{"kind":"number","nativeSrc":"1853:2:34","nodeType":"YulLiteral","src":"1853:2:34","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1849:3:34","nodeType":"YulIdentifier","src":"1849:3:34"},"nativeSrc":"1849:7:34","nodeType":"YulFunctionCall","src":"1849:7:34"}],"functionName":{"name":"and","nativeSrc":"1837:3:34","nodeType":"YulIdentifier","src":"1837:3:34"},"nativeSrc":"1837:20:34","nodeType":"YulFunctionCall","src":"1837:20:34"},"variables":[{"name":"loopEnd","nativeSrc":"1826:7:34","nodeType":"YulTypedName","src":"1826:7:34","type":""}]},{"nativeSrc":"1870:49:34","nodeType":"YulVariableDeclaration","src":"1870:49:34","value":{"arguments":[{"name":"slot","nativeSrc":"1914:4:34","nodeType":"YulIdentifier","src":"1914:4:34"}],"functionName":{"name":"array_dataslot_string_storage","nativeSrc":"1884:29:34","nodeType":"YulIdentifier","src":"1884:29:34"},"nativeSrc":"1884:35:34","nodeType":"YulFunctionCall","src":"1884:35:34"},"variables":[{"name":"dstPtr","nativeSrc":"1874:6:34","nodeType":"YulTypedName","src":"1874:6:34","type":""}]},{"nativeSrc":"1932:10:34","nodeType":"YulVariableDeclaration","src":"1932:10:34","value":{"kind":"number","nativeSrc":"1941:1:34","nodeType":"YulLiteral","src":"1941:1:34","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"1936:1:34","nodeType":"YulTypedName","src":"1936:1:34","type":""}]},{"body":{"nativeSrc":"2019:172:34","nodeType":"YulBlock","src":"2019:172:34","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"2044:6:34","nodeType":"YulIdentifier","src":"2044:6:34"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2062:3:34","nodeType":"YulIdentifier","src":"2062:3:34"},{"name":"srcOffset","nativeSrc":"2067:9:34","nodeType":"YulIdentifier","src":"2067:9:34"}],"functionName":{"name":"add","nativeSrc":"2058:3:34","nodeType":"YulIdentifier","src":"2058:3:34"},"nativeSrc":"2058:19:34","nodeType":"YulFunctionCall","src":"2058:19:34"}],"functionName":{"name":"mload","nativeSrc":"2052:5:34","nodeType":"YulIdentifier","src":"2052:5:34"},"nativeSrc":"2052:26:34","nodeType":"YulFunctionCall","src":"2052:26:34"}],"functionName":{"name":"sstore","nativeSrc":"2037:6:34","nodeType":"YulIdentifier","src":"2037:6:34"},"nativeSrc":"2037:42:34","nodeType":"YulFunctionCall","src":"2037:42:34"},"nativeSrc":"2037:42:34","nodeType":"YulExpressionStatement","src":"2037:42:34"},{"nativeSrc":"2096:24:34","nodeType":"YulAssignment","src":"2096:24:34","value":{"arguments":[{"name":"dstPtr","nativeSrc":"2110:6:34","nodeType":"YulIdentifier","src":"2110:6:34"},{"kind":"number","nativeSrc":"2118:1:34","nodeType":"YulLiteral","src":"2118:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2106:3:34","nodeType":"YulIdentifier","src":"2106:3:34"},"nativeSrc":"2106:14:34","nodeType":"YulFunctionCall","src":"2106:14:34"},"variableNames":[{"name":"dstPtr","nativeSrc":"2096:6:34","nodeType":"YulIdentifier","src":"2096:6:34"}]},{"nativeSrc":"2137:40:34","nodeType":"YulAssignment","src":"2137:40:34","value":{"arguments":[{"name":"srcOffset","nativeSrc":"2154:9:34","nodeType":"YulIdentifier","src":"2154:9:34"},{"name":"srcOffset_1","nativeSrc":"2165:11:34","nodeType":"YulIdentifier","src":"2165:11:34"}],"functionName":{"name":"add","nativeSrc":"2150:3:34","nodeType":"YulIdentifier","src":"2150:3:34"},"nativeSrc":"2150:27:34","nodeType":"YulFunctionCall","src":"2150:27:34"},"variableNames":[{"name":"srcOffset","nativeSrc":"2137:9:34","nodeType":"YulIdentifier","src":"2137:9:34"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"1966:1:34","nodeType":"YulIdentifier","src":"1966:1:34"},{"name":"loopEnd","nativeSrc":"1969:7:34","nodeType":"YulIdentifier","src":"1969:7:34"}],"functionName":{"name":"lt","nativeSrc":"1963:2:34","nodeType":"YulIdentifier","src":"1963:2:34"},"nativeSrc":"1963:14:34","nodeType":"YulFunctionCall","src":"1963:14:34"},"nativeSrc":"1955:236:34","nodeType":"YulForLoop","post":{"nativeSrc":"1978:28:34","nodeType":"YulBlock","src":"1978:28:34","statements":[{"nativeSrc":"1980:24:34","nodeType":"YulAssignment","src":"1980:24:34","value":{"arguments":[{"name":"i","nativeSrc":"1989:1:34","nodeType":"YulIdentifier","src":"1989:1:34"},{"name":"srcOffset_1","nativeSrc":"1992:11:34","nodeType":"YulIdentifier","src":"1992:11:34"}],"functionName":{"name":"add","nativeSrc":"1985:3:34","nodeType":"YulIdentifier","src":"1985:3:34"},"nativeSrc":"1985:19:34","nodeType":"YulFunctionCall","src":"1985:19:34"},"variableNames":[{"name":"i","nativeSrc":"1980:1:34","nodeType":"YulIdentifier","src":"1980:1:34"}]}]},"pre":{"nativeSrc":"1959:3:34","nodeType":"YulBlock","src":"1959:3:34","statements":[]},"src":"1955:236:34"},{"body":{"nativeSrc":"2239:166:34","nodeType":"YulBlock","src":"2239:166:34","statements":[{"nativeSrc":"2257:43:34","nodeType":"YulVariableDeclaration","src":"2257:43:34","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2284:3:34","nodeType":"YulIdentifier","src":"2284:3:34"},{"name":"srcOffset","nativeSrc":"2289:9:34","nodeType":"YulIdentifier","src":"2289:9:34"}],"functionName":{"name":"add","nativeSrc":"2280:3:34","nodeType":"YulIdentifier","src":"2280:3:34"},"nativeSrc":"2280:19:34","nodeType":"YulFunctionCall","src":"2280:19:34"}],"functionName":{"name":"mload","nativeSrc":"2274:5:34","nodeType":"YulIdentifier","src":"2274:5:34"},"nativeSrc":"2274:26:34","nodeType":"YulFunctionCall","src":"2274:26:34"},"variables":[{"name":"lastValue","nativeSrc":"2261:9:34","nodeType":"YulTypedName","src":"2261:9:34","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"2324:6:34","nodeType":"YulIdentifier","src":"2324:6:34"},{"arguments":[{"name":"lastValue","nativeSrc":"2336:9:34","nodeType":"YulIdentifier","src":"2336:9:34"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2363:1:34","nodeType":"YulLiteral","src":"2363:1:34","type":"","value":"3"},{"name":"newLen","nativeSrc":"2366:6:34","nodeType":"YulIdentifier","src":"2366:6:34"}],"functionName":{"name":"shl","nativeSrc":"2359:3:34","nodeType":"YulIdentifier","src":"2359:3:34"},"nativeSrc":"2359:14:34","nodeType":"YulFunctionCall","src":"2359:14:34"},{"kind":"number","nativeSrc":"2375:3:34","nodeType":"YulLiteral","src":"2375:3:34","type":"","value":"248"}],"functionName":{"name":"and","nativeSrc":"2355:3:34","nodeType":"YulIdentifier","src":"2355:3:34"},"nativeSrc":"2355:24:34","nodeType":"YulFunctionCall","src":"2355:24:34"},{"arguments":[{"kind":"number","nativeSrc":"2385:1:34","nodeType":"YulLiteral","src":"2385:1:34","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2381:3:34","nodeType":"YulIdentifier","src":"2381:3:34"},"nativeSrc":"2381:6:34","nodeType":"YulFunctionCall","src":"2381:6:34"}],"functionName":{"name":"shr","nativeSrc":"2351:3:34","nodeType":"YulIdentifier","src":"2351:3:34"},"nativeSrc":"2351:37:34","nodeType":"YulFunctionCall","src":"2351:37:34"}],"functionName":{"name":"not","nativeSrc":"2347:3:34","nodeType":"YulIdentifier","src":"2347:3:34"},"nativeSrc":"2347:42:34","nodeType":"YulFunctionCall","src":"2347:42:34"}],"functionName":{"name":"and","nativeSrc":"2332:3:34","nodeType":"YulIdentifier","src":"2332:3:34"},"nativeSrc":"2332:58:34","nodeType":"YulFunctionCall","src":"2332:58:34"}],"functionName":{"name":"sstore","nativeSrc":"2317:6:34","nodeType":"YulIdentifier","src":"2317:6:34"},"nativeSrc":"2317:74:34","nodeType":"YulFunctionCall","src":"2317:74:34"},"nativeSrc":"2317:74:34","nodeType":"YulExpressionStatement","src":"2317:74:34"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"2210:7:34","nodeType":"YulIdentifier","src":"2210:7:34"},{"name":"newLen","nativeSrc":"2219:6:34","nodeType":"YulIdentifier","src":"2219:6:34"}],"functionName":{"name":"lt","nativeSrc":"2207:2:34","nodeType":"YulIdentifier","src":"2207:2:34"},"nativeSrc":"2207:19:34","nodeType":"YulFunctionCall","src":"2207:19:34"},"nativeSrc":"2204:201:34","nodeType":"YulIf","src":"2204:201:34"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2425:4:34","nodeType":"YulIdentifier","src":"2425:4:34"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2439:1:34","nodeType":"YulLiteral","src":"2439:1:34","type":"","value":"1"},{"name":"newLen","nativeSrc":"2442:6:34","nodeType":"YulIdentifier","src":"2442:6:34"}],"functionName":{"name":"shl","nativeSrc":"2435:3:34","nodeType":"YulIdentifier","src":"2435:3:34"},"nativeSrc":"2435:14:34","nodeType":"YulFunctionCall","src":"2435:14:34"},{"kind":"number","nativeSrc":"2451:1:34","nodeType":"YulLiteral","src":"2451:1:34","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2431:3:34","nodeType":"YulIdentifier","src":"2431:3:34"},"nativeSrc":"2431:22:34","nodeType":"YulFunctionCall","src":"2431:22:34"}],"functionName":{"name":"sstore","nativeSrc":"2418:6:34","nodeType":"YulIdentifier","src":"2418:6:34"},"nativeSrc":"2418:36:34","nodeType":"YulFunctionCall","src":"2418:36:34"},"nativeSrc":"2418:36:34","nodeType":"YulExpressionStatement","src":"2418:36:34"}]},"nativeSrc":"1801:663:34","nodeType":"YulCase","src":"1801:663:34","value":{"kind":"number","nativeSrc":"1806:1:34","nodeType":"YulLiteral","src":"1806:1:34","type":"","value":"1"}},{"body":{"nativeSrc":"2481:234:34","nodeType":"YulBlock","src":"2481:234:34","statements":[{"nativeSrc":"2495:14:34","nodeType":"YulVariableDeclaration","src":"2495:14:34","value":{"kind":"number","nativeSrc":"2508:1:34","nodeType":"YulLiteral","src":"2508:1:34","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"2499:5:34","nodeType":"YulTypedName","src":"2499:5:34","type":""}]},{"body":{"nativeSrc":"2544:67:34","nodeType":"YulBlock","src":"2544:67:34","statements":[{"nativeSrc":"2562:35:34","nodeType":"YulAssignment","src":"2562:35:34","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"2581:3:34","nodeType":"YulIdentifier","src":"2581:3:34"},{"name":"srcOffset","nativeSrc":"2586:9:34","nodeType":"YulIdentifier","src":"2586:9:34"}],"functionName":{"name":"add","nativeSrc":"2577:3:34","nodeType":"YulIdentifier","src":"2577:3:34"},"nativeSrc":"2577:19:34","nodeType":"YulFunctionCall","src":"2577:19:34"}],"functionName":{"name":"mload","nativeSrc":"2571:5:34","nodeType":"YulIdentifier","src":"2571:5:34"},"nativeSrc":"2571:26:34","nodeType":"YulFunctionCall","src":"2571:26:34"},"variableNames":[{"name":"value","nativeSrc":"2562:5:34","nodeType":"YulIdentifier","src":"2562:5:34"}]}]},"condition":{"name":"newLen","nativeSrc":"2525:6:34","nodeType":"YulIdentifier","src":"2525:6:34"},"nativeSrc":"2522:89:34","nodeType":"YulIf","src":"2522:89:34"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2631:4:34","nodeType":"YulIdentifier","src":"2631:4:34"},{"arguments":[{"name":"value","nativeSrc":"2690:5:34","nodeType":"YulIdentifier","src":"2690:5:34"},{"name":"newLen","nativeSrc":"2697:6:34","nodeType":"YulIdentifier","src":"2697:6:34"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"2637:52:34","nodeType":"YulIdentifier","src":"2637:52:34"},"nativeSrc":"2637:67:34","nodeType":"YulFunctionCall","src":"2637:67:34"}],"functionName":{"name":"sstore","nativeSrc":"2624:6:34","nodeType":"YulIdentifier","src":"2624:6:34"},"nativeSrc":"2624:81:34","nodeType":"YulFunctionCall","src":"2624:81:34"},"nativeSrc":"2624:81:34","nodeType":"YulExpressionStatement","src":"2624:81:34"}]},"nativeSrc":"2473:242:34","nodeType":"YulCase","src":"2473:242:34","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"1781:6:34","nodeType":"YulIdentifier","src":"1781:6:34"},{"kind":"number","nativeSrc":"1789:2:34","nodeType":"YulLiteral","src":"1789:2:34","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"1778:2:34","nodeType":"YulIdentifier","src":"1778:2:34"},"nativeSrc":"1778:14:34","nodeType":"YulFunctionCall","src":"1778:14:34"},"nativeSrc":"1771:944:34","nodeType":"YulSwitch","src":"1771:944:34"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"1376:1345:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"1457:4:34","nodeType":"YulTypedName","src":"1457:4:34","type":""},{"name":"src","nativeSrc":"1463:3:34","nodeType":"YulTypedName","src":"1463:3:34","type":""}],"src":"1376:1345:34"},{"body":{"nativeSrc":"2900:232:34","nodeType":"YulBlock","src":"2900:232:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"2917:9:34","nodeType":"YulIdentifier","src":"2917:9:34"},{"kind":"number","nativeSrc":"2928:2:34","nodeType":"YulLiteral","src":"2928:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"2910:6:34","nodeType":"YulIdentifier","src":"2910:6:34"},"nativeSrc":"2910:21:34","nodeType":"YulFunctionCall","src":"2910:21:34"},"nativeSrc":"2910:21:34","nodeType":"YulExpressionStatement","src":"2910:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2951:9:34","nodeType":"YulIdentifier","src":"2951:9:34"},{"kind":"number","nativeSrc":"2962:2:34","nodeType":"YulLiteral","src":"2962:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2947:3:34","nodeType":"YulIdentifier","src":"2947:3:34"},"nativeSrc":"2947:18:34","nodeType":"YulFunctionCall","src":"2947:18:34"},{"kind":"number","nativeSrc":"2967:2:34","nodeType":"YulLiteral","src":"2967:2:34","type":"","value":"42"}],"functionName":{"name":"mstore","nativeSrc":"2940:6:34","nodeType":"YulIdentifier","src":"2940:6:34"},"nativeSrc":"2940:30:34","nodeType":"YulFunctionCall","src":"2940:30:34"},"nativeSrc":"2940:30:34","nodeType":"YulExpressionStatement","src":"2940:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2990:9:34","nodeType":"YulIdentifier","src":"2990:9:34"},{"kind":"number","nativeSrc":"3001:2:34","nodeType":"YulLiteral","src":"3001:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2986:3:34","nodeType":"YulIdentifier","src":"2986:3:34"},"nativeSrc":"2986:18:34","nodeType":"YulFunctionCall","src":"2986:18:34"},{"hexValue":"455243323938313a20726f79616c7479206665652077696c6c20657863656564","kind":"string","nativeSrc":"3006:34:34","nodeType":"YulLiteral","src":"3006:34:34","type":"","value":"ERC2981: royalty fee will exceed"}],"functionName":{"name":"mstore","nativeSrc":"2979:6:34","nodeType":"YulIdentifier","src":"2979:6:34"},"nativeSrc":"2979:62:34","nodeType":"YulFunctionCall","src":"2979:62:34"},"nativeSrc":"2979:62:34","nodeType":"YulExpressionStatement","src":"2979:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3061:9:34","nodeType":"YulIdentifier","src":"3061:9:34"},{"kind":"number","nativeSrc":"3072:2:34","nodeType":"YulLiteral","src":"3072:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3057:3:34","nodeType":"YulIdentifier","src":"3057:3:34"},"nativeSrc":"3057:18:34","nodeType":"YulFunctionCall","src":"3057:18:34"},{"hexValue":"2073616c655072696365","kind":"string","nativeSrc":"3077:12:34","nodeType":"YulLiteral","src":"3077:12:34","type":"","value":" salePrice"}],"functionName":{"name":"mstore","nativeSrc":"3050:6:34","nodeType":"YulIdentifier","src":"3050:6:34"},"nativeSrc":"3050:40:34","nodeType":"YulFunctionCall","src":"3050:40:34"},"nativeSrc":"3050:40:34","nodeType":"YulExpressionStatement","src":"3050:40:34"},{"nativeSrc":"3099:27:34","nodeType":"YulAssignment","src":"3099:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3111:9:34","nodeType":"YulIdentifier","src":"3111:9:34"},{"kind":"number","nativeSrc":"3122:3:34","nodeType":"YulLiteral","src":"3122:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"3107:3:34","nodeType":"YulIdentifier","src":"3107:3:34"},"nativeSrc":"3107:19:34","nodeType":"YulFunctionCall","src":"3107:19:34"},"variableNames":[{"name":"tail","nativeSrc":"3099:4:34","nodeType":"YulIdentifier","src":"3099:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2726:406:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2877:9:34","nodeType":"YulTypedName","src":"2877:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2891:4:34","nodeType":"YulTypedName","src":"2891:4:34","type":""}],"src":"2726:406:34"},{"body":{"nativeSrc":"3311:175:34","nodeType":"YulBlock","src":"3311:175:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3328:9:34","nodeType":"YulIdentifier","src":"3328:9:34"},{"kind":"number","nativeSrc":"3339:2:34","nodeType":"YulLiteral","src":"3339:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"3321:6:34","nodeType":"YulIdentifier","src":"3321:6:34"},"nativeSrc":"3321:21:34","nodeType":"YulFunctionCall","src":"3321:21:34"},"nativeSrc":"3321:21:34","nodeType":"YulExpressionStatement","src":"3321:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3362:9:34","nodeType":"YulIdentifier","src":"3362:9:34"},{"kind":"number","nativeSrc":"3373:2:34","nodeType":"YulLiteral","src":"3373:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3358:3:34","nodeType":"YulIdentifier","src":"3358:3:34"},"nativeSrc":"3358:18:34","nodeType":"YulFunctionCall","src":"3358:18:34"},{"kind":"number","nativeSrc":"3378:2:34","nodeType":"YulLiteral","src":"3378:2:34","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"3351:6:34","nodeType":"YulIdentifier","src":"3351:6:34"},"nativeSrc":"3351:30:34","nodeType":"YulFunctionCall","src":"3351:30:34"},"nativeSrc":"3351:30:34","nodeType":"YulExpressionStatement","src":"3351:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3401:9:34","nodeType":"YulIdentifier","src":"3401:9:34"},{"kind":"number","nativeSrc":"3412:2:34","nodeType":"YulLiteral","src":"3412:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3397:3:34","nodeType":"YulIdentifier","src":"3397:3:34"},"nativeSrc":"3397:18:34","nodeType":"YulFunctionCall","src":"3397:18:34"},{"hexValue":"455243323938313a20696e76616c6964207265636569766572","kind":"string","nativeSrc":"3417:27:34","nodeType":"YulLiteral","src":"3417:27:34","type":"","value":"ERC2981: invalid receiver"}],"functionName":{"name":"mstore","nativeSrc":"3390:6:34","nodeType":"YulIdentifier","src":"3390:6:34"},"nativeSrc":"3390:55:34","nodeType":"YulFunctionCall","src":"3390:55:34"},"nativeSrc":"3390:55:34","nodeType":"YulExpressionStatement","src":"3390:55:34"},{"nativeSrc":"3454:26:34","nodeType":"YulAssignment","src":"3454:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3466:9:34","nodeType":"YulIdentifier","src":"3466:9:34"},{"kind":"number","nativeSrc":"3477:2:34","nodeType":"YulLiteral","src":"3477:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"3462:3:34","nodeType":"YulIdentifier","src":"3462:3:34"},"nativeSrc":"3462:18:34","nodeType":"YulFunctionCall","src":"3462:18:34"},"variableNames":[{"name":"tail","nativeSrc":"3454:4:34","nodeType":"YulIdentifier","src":"3454:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_f66a1010ca1024f054dcd95a016427c9d452e7f1ceb553ccd3a5e37073a6ffff__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"3137:349:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3288:9:34","nodeType":"YulTypedName","src":"3288:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3302:4:34","nodeType":"YulTypedName","src":"3302:4:34","type":""}],"src":"3137:349:34"}]},"contents":"{\n    { }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, shl(224, 0x4e487b71))\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(0, array)\n            let data := keccak256(0, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n    {\n        let newLen := mload(src)\n        if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n        let srcOffset := 0\n        let srcOffset_1 := 0x20\n        srcOffset := 0x20\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n            {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, srcOffset_1)\n            }\n            if lt(loopEnd, newLen)\n            {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, newLen), 1))\n        }\n        default {\n            let value := 0\n            if newLen\n            {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"ERC2981: royalty fee will exceed\")\n        mstore(add(headStart, 96), \" salePrice\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_f66a1010ca1024f054dcd95a016427c9d452e7f1ceb553ccd3a5e37073a6ffff__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC2981: invalid receiver\")\n        tail := add(headStart, 96)\n    }\n}","id":34,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040518060400160405280600a8152602001692a32b9ba102a37b5b2b760b11b81525060405180604001604052806002815260200161151560f21b8152508160029081620000619190620002a2565b506003620000708282620002a2565b5050506200008d62000087620000a060201b60201c565b620000a4565b6200009a336064620000f6565b6200036e565b3390565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6127106001600160601b03821611156200016a5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001c25760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000161565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200022657607f821691505b6020821081036200024757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200029d576000816000526020600020601f850160051c81016020861015620002785750805b601f850160051c820191505b81811015620002995782815560010162000284565b5050505b505050565b81516001600160401b03811115620002be57620002be620001fb565b620002d681620002cf845462000211565b846200024d565b602080601f8311600181146200030e5760008415620002f55750858301515b600019600386901b1c1916600185901b17855562000299565b600085815260208120601f198616915b828110156200033f578886015182559484019460019091019084016200031e565b50858210156200035e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6122a5806200037e6000396000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c806370a08231116100cd578063b88d4fde11610081578063e985e9c511610066578063e985e9c514610321578063f2fde38b1461036a578063ffc38f561461037d57600080fd5b8063b88d4fde146102fb578063c87b56dd1461030e57600080fd5b80638da5cb5b116100b25780638da5cb5b146102c257806395d89b41146102e0578063a22cb465146102e857600080fd5b806370a08231146102a7578063715018a6146102ba57600080fd5b80632a55205a1161012457806342966c681161010957806342966c68146102605780636352211e146102735780636a6278421461028657600080fd5b80632a55205a1461020e57806342842e0e1461024d57600080fd5b8063081812fc11610155578063081812fc146101ae578063095ea7b3146101e657806323b872dd146101fb57600080fd5b806301ffc9a71461017157806306fdde0314610199575b600080fd5b61018461017f366004611da0565b610390565b60405190151581526020015b60405180910390f35b6101a16103a1565b6040516101909190611e2b565b6101c16101bc366004611e3e565b610433565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610190565b6101f96101f4366004611e7b565b610467565b005b6101f9610209366004611ea5565b610623565b61022161021c366004611ee1565b6106c4565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610190565b6101f961025b366004611ea5565b6107bb565b6101f961026e366004611e3e565b6107d6565b6101c1610281366004611e3e565b6107ea565b610299610294366004611f03565b610876565b604051908152602001610190565b6102996102b5366004611f03565b6108aa565b6101f9610978565b60085473ffffffffffffffffffffffffffffffffffffffff166101c1565b6101a161098c565b6101f96102f6366004611f1e565b61099b565b6101f9610309366004611f89565b6109aa565b6101a161031c366004611e3e565b610a52565b61018461032f366004612083565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b6101f9610378366004611f03565b610ac6565b6101f961038b3660046120b6565b610b7a565b600061039b82610b9a565b92915050565b6060600280546103b09061210e565b80601f01602080910402602001604051908101604052809291908181526020018280546103dc9061210e565b80156104295780601f106103fe57610100808354040283529160200191610429565b820191906000526020600020905b81548152906001019060200180831161040c57829003601f168201915b5050505050905090565b600061043e82610c3c565b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610472826107ea565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610588575073ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff165b610614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161052b565b61061e8383610cc7565b505050565b61062d3382610d67565b6106b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161052b565b61061e838383610e27565b600082815260016020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116808352740100000000000000000000000000000000000000009091046bffffffffffffffffffffffff1692820192909252829161077f57506040805180820190915260005473ffffffffffffffffffffffffffffffffffffffff811682527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1660208201525b6020810151600090612710906107a3906bffffffffffffffffffffffff1687612161565b6107ad919061219f565b915196919550909350505050565b61061e838383604051806020016040528060008152506109aa565b6107de611122565b6107e7816111a3565b50565b60008181526004602052604081205473ffffffffffffffffffffffffffffffffffffffff168061039b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161052b565b6000610880611122565b61088e600980546001019055565b600061089960095490565b905061039b83826111bd565b919050565b600073ffffffffffffffffffffffffffffffffffffffff821661094f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e65720000000000000000000000000000000000000000000000606482015260840161052b565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205490565b610980611122565b61098a60006111d7565b565b6060600380546103b09061210e565b6109a633838361124e565b5050565b6109b43383610d67565b610a40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161052b565b610a4c8484848461137b565b50505050565b6060610a5d82610c3c565b6000610a7460408051602081019091526000815290565b90506000815111610a945760405180602001604052806000815250610abf565b80610a9e8461141e565b604051602001610aaf9291906121da565b6040516020818303038152906040525b9392505050565b610ace611122565b73ffffffffffffffffffffffffffffffffffffffff8116610b71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161052b565b6107e7816111d7565b610b82611122565b6000610b8d84610876565b9050610a4c8184846114dc565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480610c2d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061039b575061039b82611666565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff166107e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161052b565b600081815260066020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190610d21826107ea565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d73836107ea565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610de1575073ffffffffffffffffffffffffffffffffffffffff80821660009081526007602090815260408083209388168352929052205460ff165b80610e1f57508373ffffffffffffffffffffffffffffffffffffffff16610e0784610433565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610e47826107ea565b73ffffffffffffffffffffffffffffffffffffffff1614610eea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161052b565b73ffffffffffffffffffffffffffffffffffffffff8216610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161052b565b8273ffffffffffffffffffffffffffffffffffffffff16610fac826107ea565b73ffffffffffffffffffffffffffffffffffffffff161461104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161052b565b600081815260066020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526005855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600490945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60085473ffffffffffffffffffffffffffffffffffffffff16331461098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161052b565b6111ac816116fd565b600090815260016020526040812055565b6109a68282604051806020016040528060008152506117d5565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161052b565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526007602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611386848484610e27565b61139284848484611878565b610a4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161052b565b6060600061142b83611a6b565b600101905060008167ffffffffffffffff81111561144b5761144b611f5a565b6040519080825280601f01601f191660200182016040528015611475576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461147f57509392505050565b6127106bffffffffffffffffffffffff8216111561157c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c2065786365656460448201527f2073616c65507269636500000000000000000000000000000000000000000000606482015260840161052b565b73ffffffffffffffffffffffffffffffffffffffff82166115f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d65746572730000000000604482015260640161052b565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff93841681526bffffffffffffffffffffffff9283166020808301918252600096875260019052919094209351905190911674010000000000000000000000000000000000000000029116179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000148061039b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461039b565b6000611708826107ea565b9050611713826107ea565b600083815260066020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526005845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526004909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6117df8383611b4d565b6117ec6000848484611878565b61061e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161052b565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611a60576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906118ef903390899088908890600401612209565b6020604051808303816000875af1925050508015611948575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261194591810190612252565b60015b611a15573d808015611976576040519150601f19603f3d011682016040523d82523d6000602084013e61197b565b606091505b508051600003611a0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161052b565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610e1f565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611ab4577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611ae0576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611afe57662386f26fc10000830492506010015b6305f5e1008310611b16576305f5e100830492506008015b6127108310611b2a57612710830492506004015b60648310611b3c576064830492506002015b600a831061039b5760010192915050565b73ffffffffffffffffffffffffffffffffffffffff8216611bca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161052b565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161052b565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611ce2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161052b565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260056020908152604080832080546001019055848352600490915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146107e757600080fd5b600060208284031215611db257600080fd5b8135610abf81611d72565b60005b83811015611dd8578181015183820152602001611dc0565b50506000910152565b60008151808452611df9816020860160208601611dbd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610abf6020830184611de1565b600060208284031215611e5057600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146108a557600080fd5b60008060408385031215611e8e57600080fd5b611e9783611e57565b946020939093013593505050565b600080600060608486031215611eba57600080fd5b611ec384611e57565b9250611ed160208501611e57565b9150604084013590509250925092565b60008060408385031215611ef457600080fd5b50508035926020909101359150565b600060208284031215611f1557600080fd5b610abf82611e57565b60008060408385031215611f3157600080fd5b611f3a83611e57565b915060208301358015158114611f4f57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060008060808587031215611f9f57600080fd5b611fa885611e57565b9350611fb660208601611e57565b925060408501359150606085013567ffffffffffffffff80821115611fda57600080fd5b818701915087601f830112611fee57600080fd5b81358181111561200057612000611f5a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561204657612046611f5a565b816040528281528a602084870101111561205f57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561209657600080fd5b61209f83611e57565b91506120ad60208401611e57565b90509250929050565b6000806000606084860312156120cb57600080fd5b6120d484611e57565b92506120e260208501611e57565b915060408401356bffffffffffffffffffffffff8116811461210357600080fd5b809150509250925092565b600181811c9082168061212257607f821691505b60208210810361215b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b808202811582820484141761039b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000826121d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600083516121ec818460208801611dbd565b835190830190612200818360208801611dbd565b01949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526122486080830184611de1565b9695505050505050565b60006020828403121561226457600080fd5b8151610abf81611d7256fea26469706673582212205a753b77fe147600d9609cb2e1f891e67783e1274c3fed07d7cfb91db9288c1d64736f6c63430008170033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x2A32B9BA102A37B5B2B7 PUSH1 0xB1 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1515 PUSH1 0xF2 SHL DUP2 MSTORE POP DUP2 PUSH1 0x2 SWAP1 DUP2 PUSH3 0x61 SWAP2 SWAP1 PUSH3 0x2A2 JUMP JUMPDEST POP PUSH1 0x3 PUSH3 0x70 DUP3 DUP3 PUSH3 0x2A2 JUMP JUMPDEST POP POP POP PUSH3 0x8D PUSH3 0x87 PUSH3 0xA0 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0xA4 JUMP JUMPDEST PUSH3 0x9A CALLER PUSH1 0x64 PUSH3 0xF6 JUMP JUMPDEST PUSH3 0x36E JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x2710 PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB DUP3 AND GT ISZERO PUSH3 0x16A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243323938313A20726F79616C7479206665652077696C6C20657863656564 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x2073616C655072696365 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x1C2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243323938313A20696E76616C696420726563656976657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0x161 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND DUP1 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 SWAP1 SWAP3 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 MUL OR PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x226 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x247 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x29D JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x278 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x299 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x284 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x2BE JUMPI PUSH3 0x2BE PUSH3 0x1FB JUMP JUMPDEST PUSH3 0x2D6 DUP2 PUSH3 0x2CF DUP5 SLOAD PUSH3 0x211 JUMP JUMPDEST DUP5 PUSH3 0x24D JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x30E JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x2F5 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x299 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x33F JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x31E JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x35E JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x22A5 DUP1 PUSH3 0x37E 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 0x16C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xCD JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xE985E9C5 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x321 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xFFC38F56 EQ PUSH2 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x30E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2A55205A GT PUSH2 0x124 JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x109 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x286 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2A55205A EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x24D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x81812FC GT PUSH2 0x155 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x199 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x184 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x1DA0 JUMP JUMPDEST PUSH2 0x390 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A1 PUSH2 0x3A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x190 SWAP2 SWAP1 PUSH2 0x1E2B JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x433 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x190 JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E7B JUMP JUMPDEST PUSH2 0x467 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1F9 PUSH2 0x209 CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0x623 JUMP JUMPDEST PUSH2 0x221 PUSH2 0x21C CALLDATASIZE PUSH1 0x4 PUSH2 0x1EE1 JUMP JUMPDEST PUSH2 0x6C4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x190 JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x7D6 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x7EA JUMP JUMPDEST PUSH2 0x299 PUSH2 0x294 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F03 JUMP JUMPDEST PUSH2 0x876 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x190 JUMP JUMPDEST PUSH2 0x299 PUSH2 0x2B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F03 JUMP JUMPDEST PUSH2 0x8AA JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x978 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C1 JUMP JUMPDEST PUSH2 0x1A1 PUSH2 0x98C JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x2F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F1E JUMP JUMPDEST PUSH2 0x99B JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x309 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0x9AA JUMP JUMPDEST PUSH2 0x1A1 PUSH2 0x31C CALLDATASIZE PUSH1 0x4 PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0xA52 JUMP JUMPDEST PUSH2 0x184 PUSH2 0x32F CALLDATASIZE PUSH1 0x4 PUSH2 0x2083 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x378 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F03 JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x38B CALLDATASIZE PUSH1 0x4 PUSH2 0x20B6 JUMP JUMPDEST PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39B DUP3 PUSH2 0xB9A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x3B0 SWAP1 PUSH2 0x210E 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 0x3DC SWAP1 PUSH2 0x210E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x429 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x429 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 0x40C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43E DUP3 PUSH2 0xC3C JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x472 DUP3 PUSH2 0x7EA JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x534 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND EQ DUP1 PUSH2 0x588 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST PUSH2 0x614 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH2 0x61E DUP4 DUP4 PUSH2 0xCC7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x62D CALLER DUP3 PUSH2 0xD67 JUMP JUMPDEST PUSH2 0x6B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH2 0x61E DUP4 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP1 DUP4 MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP2 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 SWAP2 PUSH2 0x77F JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP3 MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x7A3 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0x7AD SWAP2 SWAP1 PUSH2 0x219F JUMP JUMPDEST SWAP2 MLOAD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x61E DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x9AA JUMP JUMPDEST PUSH2 0x7DE PUSH2 0x1122 JUMP JUMPDEST PUSH2 0x7E7 DUP2 PUSH2 0x11A3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 PUSH2 0x39B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x880 PUSH2 0x1122 JUMP JUMPDEST PUSH2 0x88E PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x899 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x39B DUP4 DUP3 PUSH2 0x11BD JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x94F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x980 PUSH2 0x1122 JUMP JUMPDEST PUSH2 0x98A PUSH1 0x0 PUSH2 0x11D7 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x3B0 SWAP1 PUSH2 0x210E JUMP JUMPDEST PUSH2 0x9A6 CALLER DUP4 DUP4 PUSH2 0x124E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x9B4 CALLER DUP4 PUSH2 0xD67 JUMP JUMPDEST PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH2 0xA4C DUP5 DUP5 DUP5 DUP5 PUSH2 0x137B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA5D DUP3 PUSH2 0xC3C JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA74 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xA94 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xABF JUMP JUMPDEST DUP1 PUSH2 0xA9E DUP5 PUSH2 0x141E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAAF SWAP3 SWAP2 SWAP1 PUSH2 0x21DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xACE PUSH2 0x1122 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xB71 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH2 0x7E7 DUP2 PUSH2 0x11D7 JUMP JUMPDEST PUSH2 0xB82 PUSH2 0x1122 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB8D DUP5 PUSH2 0x876 JUMP JUMPDEST SWAP1 POP PUSH2 0xA4C DUP2 DUP5 DUP5 PUSH2 0x14DC JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xC2D JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0x39B JUMPI POP PUSH2 0x39B DUP3 PUSH2 0x1666 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7E7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0xD21 DUP3 PUSH2 0x7EA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD73 DUP4 PUSH2 0x7EA JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xDE1 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0xE1F JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE07 DUP5 PUSH2 0x433 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE47 DUP3 PUSH2 0x7EA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEEA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xF8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xFAC DUP3 PUSH2 0x7EA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x104F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x5 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0x4 SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x98A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH2 0x11AC DUP2 PUSH2 0x16FD JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x9A6 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x17D5 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1386 DUP5 DUP5 DUP5 PUSH2 0xE27 JUMP JUMPDEST PUSH2 0x1392 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1878 JUMP JUMPDEST PUSH2 0xA4C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x142B DUP4 PUSH2 0x1A6B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x144B JUMPI PUSH2 0x144B PUSH2 0x1F5A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1475 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x147F JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2710 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND GT ISZERO PUSH2 0x157C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243323938313A20726F79616C7479206665652077696C6C20657863656564 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x2073616C65507269636500000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x15F9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243323938313A20496E76616C696420706172616D65746572730000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 SWAP7 DUP8 MSTORE PUSH1 0x1 SWAP1 MSTORE SWAP2 SWAP1 SWAP5 KECCAK256 SWAP4 MLOAD SWAP1 MLOAD SWAP1 SWAP2 AND PUSH21 0x10000000000000000000000000000000000000000 MUL SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x2A55205A00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x39B JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ PUSH2 0x39B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1708 DUP3 PUSH2 0x7EA JUMP JUMPDEST SWAP1 POP PUSH2 0x1713 DUP3 PUSH2 0x7EA JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP1 DUP6 MSTORE PUSH1 0x5 DUP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SSTORE DUP8 DUP6 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE MLOAD SWAP3 SWAP4 POP DUP5 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP4 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x17DF DUP4 DUP4 PUSH2 0x1B4D JUMP JUMPDEST PUSH2 0x17EC PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x1878 JUMP JUMPDEST PUSH2 0x61E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE ISZERO PUSH2 0x1A60 JUMPI PUSH1 0x40 MLOAD PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x18EF SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2209 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1948 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1945 SWAP2 DUP2 ADD SWAP1 PUSH2 0x2252 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1A15 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1976 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x197B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1A0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 EQ SWAP1 POP PUSH2 0xE1F JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1AB4 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1AE0 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1AFE JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1B16 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1B2A JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1B3C JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x39B JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x1BCA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x1C56 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x1CE2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND DUP5 OR SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x7E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xABF DUP2 PUSH2 0x1D72 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1DD8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1DC0 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1DF9 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1DBD JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xABF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DE1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x8A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E97 DUP4 PUSH2 0x1E57 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1EBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EC3 DUP5 PUSH2 0x1E57 JUMP JUMPDEST SWAP3 POP PUSH2 0x1ED1 PUSH1 0x20 DUP6 ADD PUSH2 0x1E57 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1EF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xABF DUP3 PUSH2 0x1E57 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F31 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F3A DUP4 PUSH2 0x1E57 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1F4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1F9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FA8 DUP6 PUSH2 0x1E57 JUMP JUMPDEST SWAP4 POP PUSH2 0x1FB6 PUSH1 0x20 DUP7 ADD PUSH2 0x1E57 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1FDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1FEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2000 JUMPI PUSH2 0x2000 PUSH2 0x1F5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2046 JUMPI PUSH2 0x2046 PUSH2 0x1F5A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x205F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2096 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x209F DUP4 PUSH2 0x1E57 JUMP JUMPDEST SWAP2 POP PUSH2 0x20AD PUSH1 0x20 DUP5 ADD PUSH2 0x1E57 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x20CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x20D4 DUP5 PUSH2 0x1E57 JUMP JUMPDEST SWAP3 POP PUSH2 0x20E2 PUSH1 0x20 DUP6 ADD PUSH2 0x1E57 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2103 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2122 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x215B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x39B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x21D5 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x21EC DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1DBD JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x2200 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1DBD JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2248 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x1DE1 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xABF DUP2 PUSH2 0x1D72 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GAS PUSH22 0x3B77FE147600D9609CB2E1F891E67783E1274C3FED07 0xD7 0xCF 0xB9 SAR 0xB9 0x28 DUP13 SAR PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"281:1042:33:-:0;;;414:87;;;;;;;;;;1390:113:9;;;;;;;;;;;;;-1:-1:-1;;;1390:113:9;;;;;;;;;;;;;;;;-1:-1:-1;;;1390:113:9;;;1464:5;1456;:13;;;;;;:::i;:::-;-1:-1:-1;1479:7:9;:17;1489:7;1479;:17;:::i;:::-;;1390:113;;936:32:0;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;461:35:33::1;480:10;492:3;461:18;:35::i;:::-;281:1042:::0;;655:96:15;734:10;;655:96::o;2426:187:0:-;2518:6;;;-1:-1:-1;;;;;2534:17:0;;;-1:-1:-1;;;;;;2534:17:0;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;2730:327:13:-;2457:5;-1:-1:-1;;;;;2832:33:13;;;;2824:88;;;;-1:-1:-1;;;2824:88:13;;2928:2:34;2824:88:13;;;2910:21:34;2967:2;2947:18;;;2940:30;3006:34;2986:18;;;2979:62;-1:-1:-1;;;3057:18:34;;;3050:40;3107:19;;2824:88:13;;;;;;;;;-1:-1:-1;;;;;2930:22:13;;2922:60;;;;-1:-1:-1;;;2922:60:13;;3339:2:34;2922:60:13;;;3321:21:34;3378:2;3358:18;;;3351:30;3417:27;3397:18;;;3390:55;3462:18;;2922:60:13;3137:349:34;2922:60:13;3015:35;;;;;;;;;-1:-1:-1;;;;;3015:35:13;;;;;;-1:-1:-1;;;;;3015:35:13;;;;;;;;;;-1:-1:-1;;;2993:57:13;;;;-1:-1:-1;2993:57:13;2730:327::o;14:127:34:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:543::-;759:2;754:3;751:11;748:446;;;795:1;819:5;816:1;809:16;863:4;860:1;850:18;933:2;921:10;917:19;914:1;910:27;904:4;900:38;969:4;957:10;954:20;951:47;;;-1:-1:-1;992:4:34;951:47;1047:2;1042:3;1038:12;1035:1;1031:20;1025:4;1021:31;1011:41;;1102:82;1120:2;1113:5;1110:13;1102:82;;;1165:17;;;1146:1;1135:13;1102:82;;;1106:3;;;748:446;657:543;;;:::o;1376:1345::-;1496:10;;-1:-1:-1;;;;;1518:30:34;;1515:56;;;1551:18;;:::i;:::-;1580:97;1670:6;1630:38;1662:4;1656:11;1630:38;:::i;:::-;1624:4;1580:97;:::i;:::-;1732:4;;1789:2;1778:14;;1806:1;1801:663;;;;2508:1;2525:6;2522:89;;;-1:-1:-1;2577:19:34;;;2571:26;2522:89;-1:-1:-1;;1333:1:34;1329:11;;;1325:24;1321:29;1311:40;1357:1;1353:11;;;1308:57;2624:81;;1771:944;;1801:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1837:20:34;;;1955:236;1969:7;1966:1;1963:14;1955:236;;;2058:19;;;2052:26;2037:42;;2150:27;;;;2118:1;2106:14;;;;1985:19;;1955:236;;;1959:3;2219:6;2210:7;2207:19;2204:201;;;2280:19;;;2274:26;-1:-1:-1;;2363:1:34;2359:14;;;2375:3;2355:24;2351:37;2347:42;2332:58;2317:74;;2204:201;-1:-1:-1;;;;;2451:1:34;2435:14;;;2431:22;2418:36;;-1:-1:-1;1376:1345:34:o;3137:349::-;281:1042:33;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_1776":{"entryPoint":null,"id":1776,"parameterSlots":4,"returnSlots":0},"@_approve_1642":{"entryPoint":3271,"id":1642,"parameterSlots":2,"returnSlots":0},"@_baseURI_1079":{"entryPoint":null,"id":1079,"parameterSlots":0,"returnSlots":1},"@_beforeTokenTransfer_1763":{"entryPoint":null,"id":1763,"parameterSlots":4,"returnSlots":0},"@_burn_1533":{"entryPoint":5885,"id":1533,"parameterSlots":1,"returnSlots":0},"@_burn_6748":{"entryPoint":4515,"id":6748,"parameterSlots":1,"returnSlots":0},"@_checkOnERC721Received_1750":{"entryPoint":6264,"id":1750,"parameterSlots":4,"returnSlots":1},"@_checkOwner_54":{"entryPoint":4386,"id":54,"parameterSlots":0,"returnSlots":0},"@_exists_1311":{"entryPoint":null,"id":1311,"parameterSlots":1,"returnSlots":1},"@_feeDenominator_2058":{"entryPoint":null,"id":2058,"parameterSlots":0,"returnSlots":1},"@_isApprovedOrOwner_1345":{"entryPoint":3431,"id":1345,"parameterSlots":2,"returnSlots":1},"@_mint_1466":{"entryPoint":6989,"id":1466,"parameterSlots":2,"returnSlots":0},"@_msgSender_2493":{"entryPoint":null,"id":2493,"parameterSlots":0,"returnSlots":1},"@_ownerOf_1293":{"entryPoint":null,"id":1293,"parameterSlots":1,"returnSlots":1},"@_requireMinted_1688":{"entryPoint":3132,"id":1688,"parameterSlots":1,"returnSlots":0},"@_resetTokenRoyalty_2150":{"entryPoint":null,"id":2150,"parameterSlots":1,"returnSlots":0},"@_safeMint_1360":{"entryPoint":4541,"id":1360,"parameterSlots":2,"returnSlots":0},"@_safeMint_1389":{"entryPoint":6101,"id":1389,"parameterSlots":3,"returnSlots":0},"@_safeTransfer_1280":{"entryPoint":4987,"id":1280,"parameterSlots":4,"returnSlots":0},"@_setApprovalForAll_1674":{"entryPoint":4686,"id":1674,"parameterSlots":3,"returnSlots":0},"@_setTokenRoyalty_2138":{"entryPoint":5340,"id":2138,"parameterSlots":3,"returnSlots":0},"@_transferOwnership_111":{"entryPoint":4567,"id":111,"parameterSlots":1,"returnSlots":0},"@_transfer_1618":{"entryPoint":3623,"id":1618,"parameterSlots":3,"returnSlots":0},"@approve_1122":{"entryPoint":1127,"id":1122,"parameterSlots":2,"returnSlots":0},"@balanceOf_983":{"entryPoint":2218,"id":983,"parameterSlots":1,"returnSlots":1},"@burn_6760":{"entryPoint":2006,"id":6760,"parameterSlots":1,"returnSlots":0},"@current_2529":{"entryPoint":null,"id":2529,"parameterSlots":1,"returnSlots":1},"@getApproved_1140":{"entryPoint":1075,"id":1140,"parameterSlots":1,"returnSlots":1},"@increment_2543":{"entryPoint":null,"id":2543,"parameterSlots":1,"returnSlots":0},"@isApprovedForAll_1175":{"entryPoint":null,"id":1175,"parameterSlots":2,"returnSlots":1},"@isContract_2169":{"entryPoint":null,"id":2169,"parameterSlots":1,"returnSlots":1},"@log10_4548":{"entryPoint":6763,"id":4548,"parameterSlots":1,"returnSlots":1},"@mintWithRoyalty_6812":{"entryPoint":2938,"id":6812,"parameterSlots":3,"returnSlots":0},"@mint_6788":{"entryPoint":2166,"id":6788,"parameterSlots":1,"returnSlots":1},"@name_1021":{"entryPoint":929,"id":1021,"parameterSlots":0,"returnSlots":1},"@ownerOf_1011":{"entryPoint":2026,"id":1011,"parameterSlots":1,"returnSlots":1},"@owner_40":{"entryPoint":null,"id":40,"parameterSlots":0,"returnSlots":1},"@renounceOwnership_68":{"entryPoint":2424,"id":68,"parameterSlots":0,"returnSlots":0},"@royaltyInfo_2049":{"entryPoint":1732,"id":2049,"parameterSlots":2,"returnSlots":2},"@safeTransferFrom_1221":{"entryPoint":1979,"id":1221,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_1251":{"entryPoint":2474,"id":1251,"parameterSlots":4,"returnSlots":0},"@setApprovalForAll_1157":{"entryPoint":2459,"id":1157,"parameterSlots":2,"returnSlots":0},"@supportsInterface_1999":{"entryPoint":5734,"id":1999,"parameterSlots":1,"returnSlots":1},"@supportsInterface_3832":{"entryPoint":null,"id":3832,"parameterSlots":1,"returnSlots":1},"@supportsInterface_6731":{"entryPoint":912,"id":6731,"parameterSlots":1,"returnSlots":1},"@supportsInterface_959":{"entryPoint":2970,"id":959,"parameterSlots":1,"returnSlots":1},"@symbol_1031":{"entryPoint":2444,"id":1031,"parameterSlots":0,"returnSlots":1},"@toString_2970":{"entryPoint":5150,"id":2970,"parameterSlots":1,"returnSlots":1},"@tokenURI_1070":{"entryPoint":2642,"id":1070,"parameterSlots":1,"returnSlots":1},"@transferFrom_1202":{"entryPoint":1571,"id":1202,"parameterSlots":3,"returnSlots":0},"@transferOwnership_91":{"entryPoint":2758,"id":91,"parameterSlots":1,"returnSlots":0},"abi_decode_address":{"entryPoint":7767,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":7939,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":8323,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":7845,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr":{"entryPoint":8073,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_addresst_addresst_uint96":{"entryPoint":8374,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bool":{"entryPoint":7966,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":7803,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":7584,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":8786,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":7742,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256":{"entryPoint":7905,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_string":{"entryPoint":7649,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":8666,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8713,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7723,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d20a09dd8b4080dbbc254e38d9f607ef83a2c7a38b671ae8f8f162ffe46e2084__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":8607,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":8545,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":7613,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":8462,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":8026,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bytes4":{"entryPoint":7538,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14395:34","nodeType":"YulBlock","src":"0:14395:34","statements":[{"nativeSrc":"6:3:34","nodeType":"YulBlock","src":"6:3:34","statements":[]},{"body":{"nativeSrc":"58:133:34","nodeType":"YulBlock","src":"58:133:34","statements":[{"body":{"nativeSrc":"169:16:34","nodeType":"YulBlock","src":"169:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178:1:34","nodeType":"YulLiteral","src":"178:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"181:1:34","nodeType":"YulLiteral","src":"181:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"171:6:34","nodeType":"YulIdentifier","src":"171:6:34"},"nativeSrc":"171:12:34","nodeType":"YulFunctionCall","src":"171:12:34"},"nativeSrc":"171:12:34","nodeType":"YulExpressionStatement","src":"171:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"81:5:34","nodeType":"YulIdentifier","src":"81:5:34"},{"arguments":[{"name":"value","nativeSrc":"92:5:34","nodeType":"YulIdentifier","src":"92:5:34"},{"kind":"number","nativeSrc":"99:66:34","nodeType":"YulLiteral","src":"99:66:34","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"88:3:34","nodeType":"YulIdentifier","src":"88:3:34"},"nativeSrc":"88:78:34","nodeType":"YulFunctionCall","src":"88:78:34"}],"functionName":{"name":"eq","nativeSrc":"78:2:34","nodeType":"YulIdentifier","src":"78:2:34"},"nativeSrc":"78:89:34","nodeType":"YulFunctionCall","src":"78:89:34"}],"functionName":{"name":"iszero","nativeSrc":"71:6:34","nodeType":"YulIdentifier","src":"71:6:34"},"nativeSrc":"71:97:34","nodeType":"YulFunctionCall","src":"71:97:34"},"nativeSrc":"68:117:34","nodeType":"YulIf","src":"68:117:34"}]},"name":"validator_revert_bytes4","nativeSrc":"14:177:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47:5:34","nodeType":"YulTypedName","src":"47:5:34","type":""}],"src":"14:177:34"},{"body":{"nativeSrc":"265:176:34","nodeType":"YulBlock","src":"265:176:34","statements":[{"body":{"nativeSrc":"311:16:34","nodeType":"YulBlock","src":"311:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"320:1:34","nodeType":"YulLiteral","src":"320:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"323:1:34","nodeType":"YulLiteral","src":"323:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"313:6:34","nodeType":"YulIdentifier","src":"313:6:34"},"nativeSrc":"313:12:34","nodeType":"YulFunctionCall","src":"313:12:34"},"nativeSrc":"313:12:34","nodeType":"YulExpressionStatement","src":"313:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"286:7:34","nodeType":"YulIdentifier","src":"286:7:34"},{"name":"headStart","nativeSrc":"295:9:34","nodeType":"YulIdentifier","src":"295:9:34"}],"functionName":{"name":"sub","nativeSrc":"282:3:34","nodeType":"YulIdentifier","src":"282:3:34"},"nativeSrc":"282:23:34","nodeType":"YulFunctionCall","src":"282:23:34"},{"kind":"number","nativeSrc":"307:2:34","nodeType":"YulLiteral","src":"307:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"278:3:34","nodeType":"YulIdentifier","src":"278:3:34"},"nativeSrc":"278:32:34","nodeType":"YulFunctionCall","src":"278:32:34"},"nativeSrc":"275:52:34","nodeType":"YulIf","src":"275:52:34"},{"nativeSrc":"336:36:34","nodeType":"YulVariableDeclaration","src":"336:36:34","value":{"arguments":[{"name":"headStart","nativeSrc":"362:9:34","nodeType":"YulIdentifier","src":"362:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"349:12:34","nodeType":"YulIdentifier","src":"349:12:34"},"nativeSrc":"349:23:34","nodeType":"YulFunctionCall","src":"349:23:34"},"variables":[{"name":"value","nativeSrc":"340:5:34","nodeType":"YulTypedName","src":"340:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"405:5:34","nodeType":"YulIdentifier","src":"405:5:34"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"381:23:34","nodeType":"YulIdentifier","src":"381:23:34"},"nativeSrc":"381:30:34","nodeType":"YulFunctionCall","src":"381:30:34"},"nativeSrc":"381:30:34","nodeType":"YulExpressionStatement","src":"381:30:34"},{"nativeSrc":"420:15:34","nodeType":"YulAssignment","src":"420:15:34","value":{"name":"value","nativeSrc":"430:5:34","nodeType":"YulIdentifier","src":"430:5:34"},"variableNames":[{"name":"value0","nativeSrc":"420:6:34","nodeType":"YulIdentifier","src":"420:6:34"}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"196:245:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"231:9:34","nodeType":"YulTypedName","src":"231:9:34","type":""},{"name":"dataEnd","nativeSrc":"242:7:34","nodeType":"YulTypedName","src":"242:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"254:6:34","nodeType":"YulTypedName","src":"254:6:34","type":""}],"src":"196:245:34"},{"body":{"nativeSrc":"541:92:34","nodeType":"YulBlock","src":"541:92:34","statements":[{"nativeSrc":"551:26:34","nodeType":"YulAssignment","src":"551:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"563:9:34","nodeType":"YulIdentifier","src":"563:9:34"},{"kind":"number","nativeSrc":"574:2:34","nodeType":"YulLiteral","src":"574:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"559:3:34","nodeType":"YulIdentifier","src":"559:3:34"},"nativeSrc":"559:18:34","nodeType":"YulFunctionCall","src":"559:18:34"},"variableNames":[{"name":"tail","nativeSrc":"551:4:34","nodeType":"YulIdentifier","src":"551:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"593:9:34","nodeType":"YulIdentifier","src":"593:9:34"},{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"618:6:34","nodeType":"YulIdentifier","src":"618:6:34"}],"functionName":{"name":"iszero","nativeSrc":"611:6:34","nodeType":"YulIdentifier","src":"611:6:34"},"nativeSrc":"611:14:34","nodeType":"YulFunctionCall","src":"611:14:34"}],"functionName":{"name":"iszero","nativeSrc":"604:6:34","nodeType":"YulIdentifier","src":"604:6:34"},"nativeSrc":"604:22:34","nodeType":"YulFunctionCall","src":"604:22:34"}],"functionName":{"name":"mstore","nativeSrc":"586:6:34","nodeType":"YulIdentifier","src":"586:6:34"},"nativeSrc":"586:41:34","nodeType":"YulFunctionCall","src":"586:41:34"},"nativeSrc":"586:41:34","nodeType":"YulExpressionStatement","src":"586:41:34"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"446:187:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"510:9:34","nodeType":"YulTypedName","src":"510:9:34","type":""},{"name":"value0","nativeSrc":"521:6:34","nodeType":"YulTypedName","src":"521:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"532:4:34","nodeType":"YulTypedName","src":"532:4:34","type":""}],"src":"446:187:34"},{"body":{"nativeSrc":"704:184:34","nodeType":"YulBlock","src":"704:184:34","statements":[{"nativeSrc":"714:10:34","nodeType":"YulVariableDeclaration","src":"714:10:34","value":{"kind":"number","nativeSrc":"723:1:34","nodeType":"YulLiteral","src":"723:1:34","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"718:1:34","nodeType":"YulTypedName","src":"718:1:34","type":""}]},{"body":{"nativeSrc":"783:63:34","nodeType":"YulBlock","src":"783:63:34","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"808:3:34","nodeType":"YulIdentifier","src":"808:3:34"},{"name":"i","nativeSrc":"813:1:34","nodeType":"YulIdentifier","src":"813:1:34"}],"functionName":{"name":"add","nativeSrc":"804:3:34","nodeType":"YulIdentifier","src":"804:3:34"},"nativeSrc":"804:11:34","nodeType":"YulFunctionCall","src":"804:11:34"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"827:3:34","nodeType":"YulIdentifier","src":"827:3:34"},{"name":"i","nativeSrc":"832:1:34","nodeType":"YulIdentifier","src":"832:1:34"}],"functionName":{"name":"add","nativeSrc":"823:3:34","nodeType":"YulIdentifier","src":"823:3:34"},"nativeSrc":"823:11:34","nodeType":"YulFunctionCall","src":"823:11:34"}],"functionName":{"name":"mload","nativeSrc":"817:5:34","nodeType":"YulIdentifier","src":"817:5:34"},"nativeSrc":"817:18:34","nodeType":"YulFunctionCall","src":"817:18:34"}],"functionName":{"name":"mstore","nativeSrc":"797:6:34","nodeType":"YulIdentifier","src":"797:6:34"},"nativeSrc":"797:39:34","nodeType":"YulFunctionCall","src":"797:39:34"},"nativeSrc":"797:39:34","nodeType":"YulExpressionStatement","src":"797:39:34"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"744:1:34","nodeType":"YulIdentifier","src":"744:1:34"},{"name":"length","nativeSrc":"747:6:34","nodeType":"YulIdentifier","src":"747:6:34"}],"functionName":{"name":"lt","nativeSrc":"741:2:34","nodeType":"YulIdentifier","src":"741:2:34"},"nativeSrc":"741:13:34","nodeType":"YulFunctionCall","src":"741:13:34"},"nativeSrc":"733:113:34","nodeType":"YulForLoop","post":{"nativeSrc":"755:19:34","nodeType":"YulBlock","src":"755:19:34","statements":[{"nativeSrc":"757:15:34","nodeType":"YulAssignment","src":"757:15:34","value":{"arguments":[{"name":"i","nativeSrc":"766:1:34","nodeType":"YulIdentifier","src":"766:1:34"},{"kind":"number","nativeSrc":"769:2:34","nodeType":"YulLiteral","src":"769:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"762:3:34","nodeType":"YulIdentifier","src":"762:3:34"},"nativeSrc":"762:10:34","nodeType":"YulFunctionCall","src":"762:10:34"},"variableNames":[{"name":"i","nativeSrc":"757:1:34","nodeType":"YulIdentifier","src":"757:1:34"}]}]},"pre":{"nativeSrc":"737:3:34","nodeType":"YulBlock","src":"737:3:34","statements":[]},"src":"733:113:34"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"866:3:34","nodeType":"YulIdentifier","src":"866:3:34"},{"name":"length","nativeSrc":"871:6:34","nodeType":"YulIdentifier","src":"871:6:34"}],"functionName":{"name":"add","nativeSrc":"862:3:34","nodeType":"YulIdentifier","src":"862:3:34"},"nativeSrc":"862:16:34","nodeType":"YulFunctionCall","src":"862:16:34"},{"kind":"number","nativeSrc":"880:1:34","nodeType":"YulLiteral","src":"880:1:34","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"855:6:34","nodeType":"YulIdentifier","src":"855:6:34"},"nativeSrc":"855:27:34","nodeType":"YulFunctionCall","src":"855:27:34"},"nativeSrc":"855:27:34","nodeType":"YulExpressionStatement","src":"855:27:34"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"638:250:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"682:3:34","nodeType":"YulTypedName","src":"682:3:34","type":""},{"name":"dst","nativeSrc":"687:3:34","nodeType":"YulTypedName","src":"687:3:34","type":""},{"name":"length","nativeSrc":"692:6:34","nodeType":"YulTypedName","src":"692:6:34","type":""}],"src":"638:250:34"},{"body":{"nativeSrc":"943:280:34","nodeType":"YulBlock","src":"943:280:34","statements":[{"nativeSrc":"953:26:34","nodeType":"YulVariableDeclaration","src":"953:26:34","value":{"arguments":[{"name":"value","nativeSrc":"973:5:34","nodeType":"YulIdentifier","src":"973:5:34"}],"functionName":{"name":"mload","nativeSrc":"967:5:34","nodeType":"YulIdentifier","src":"967:5:34"},"nativeSrc":"967:12:34","nodeType":"YulFunctionCall","src":"967:12:34"},"variables":[{"name":"length","nativeSrc":"957:6:34","nodeType":"YulTypedName","src":"957:6:34","type":""}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"995:3:34","nodeType":"YulIdentifier","src":"995:3:34"},{"name":"length","nativeSrc":"1000:6:34","nodeType":"YulIdentifier","src":"1000:6:34"}],"functionName":{"name":"mstore","nativeSrc":"988:6:34","nodeType":"YulIdentifier","src":"988:6:34"},"nativeSrc":"988:19:34","nodeType":"YulFunctionCall","src":"988:19:34"},"nativeSrc":"988:19:34","nodeType":"YulExpressionStatement","src":"988:19:34"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1055:5:34","nodeType":"YulIdentifier","src":"1055:5:34"},{"kind":"number","nativeSrc":"1062:4:34","nodeType":"YulLiteral","src":"1062:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1051:3:34","nodeType":"YulIdentifier","src":"1051:3:34"},"nativeSrc":"1051:16:34","nodeType":"YulFunctionCall","src":"1051:16:34"},{"arguments":[{"name":"pos","nativeSrc":"1073:3:34","nodeType":"YulIdentifier","src":"1073:3:34"},{"kind":"number","nativeSrc":"1078:4:34","nodeType":"YulLiteral","src":"1078:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1069:3:34","nodeType":"YulIdentifier","src":"1069:3:34"},"nativeSrc":"1069:14:34","nodeType":"YulFunctionCall","src":"1069:14:34"},{"name":"length","nativeSrc":"1085:6:34","nodeType":"YulIdentifier","src":"1085:6:34"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1016:34:34","nodeType":"YulIdentifier","src":"1016:34:34"},"nativeSrc":"1016:76:34","nodeType":"YulFunctionCall","src":"1016:76:34"},"nativeSrc":"1016:76:34","nodeType":"YulExpressionStatement","src":"1016:76:34"},{"nativeSrc":"1101:116:34","nodeType":"YulAssignment","src":"1101:116:34","value":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"1116:3:34","nodeType":"YulIdentifier","src":"1116:3:34"},{"arguments":[{"arguments":[{"name":"length","nativeSrc":"1129:6:34","nodeType":"YulIdentifier","src":"1129:6:34"},{"kind":"number","nativeSrc":"1137:2:34","nodeType":"YulLiteral","src":"1137:2:34","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1125:3:34","nodeType":"YulIdentifier","src":"1125:3:34"},"nativeSrc":"1125:15:34","nodeType":"YulFunctionCall","src":"1125:15:34"},{"kind":"number","nativeSrc":"1142:66:34","nodeType":"YulLiteral","src":"1142:66:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"}],"functionName":{"name":"and","nativeSrc":"1121:3:34","nodeType":"YulIdentifier","src":"1121:3:34"},"nativeSrc":"1121:88:34","nodeType":"YulFunctionCall","src":"1121:88:34"}],"functionName":{"name":"add","nativeSrc":"1112:3:34","nodeType":"YulIdentifier","src":"1112:3:34"},"nativeSrc":"1112:98:34","nodeType":"YulFunctionCall","src":"1112:98:34"},{"kind":"number","nativeSrc":"1212:4:34","nodeType":"YulLiteral","src":"1212:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1108:3:34","nodeType":"YulIdentifier","src":"1108:3:34"},"nativeSrc":"1108:109:34","nodeType":"YulFunctionCall","src":"1108:109:34"},"variableNames":[{"name":"end","nativeSrc":"1101:3:34","nodeType":"YulIdentifier","src":"1101:3:34"}]}]},"name":"abi_encode_string","nativeSrc":"893:330:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"920:5:34","nodeType":"YulTypedName","src":"920:5:34","type":""},{"name":"pos","nativeSrc":"927:3:34","nodeType":"YulTypedName","src":"927:3:34","type":""}],"returnVariables":[{"name":"end","nativeSrc":"935:3:34","nodeType":"YulTypedName","src":"935:3:34","type":""}],"src":"893:330:34"},{"body":{"nativeSrc":"1349:99:34","nodeType":"YulBlock","src":"1349:99:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1366:9:34","nodeType":"YulIdentifier","src":"1366:9:34"},{"kind":"number","nativeSrc":"1377:2:34","nodeType":"YulLiteral","src":"1377:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"1359:6:34","nodeType":"YulIdentifier","src":"1359:6:34"},"nativeSrc":"1359:21:34","nodeType":"YulFunctionCall","src":"1359:21:34"},"nativeSrc":"1359:21:34","nodeType":"YulExpressionStatement","src":"1359:21:34"},{"nativeSrc":"1389:53:34","nodeType":"YulAssignment","src":"1389:53:34","value":{"arguments":[{"name":"value0","nativeSrc":"1415:6:34","nodeType":"YulIdentifier","src":"1415:6:34"},{"arguments":[{"name":"headStart","nativeSrc":"1427:9:34","nodeType":"YulIdentifier","src":"1427:9:34"},{"kind":"number","nativeSrc":"1438:2:34","nodeType":"YulLiteral","src":"1438:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1423:3:34","nodeType":"YulIdentifier","src":"1423:3:34"},"nativeSrc":"1423:18:34","nodeType":"YulFunctionCall","src":"1423:18:34"}],"functionName":{"name":"abi_encode_string","nativeSrc":"1397:17:34","nodeType":"YulIdentifier","src":"1397:17:34"},"nativeSrc":"1397:45:34","nodeType":"YulFunctionCall","src":"1397:45:34"},"variableNames":[{"name":"tail","nativeSrc":"1389:4:34","nodeType":"YulIdentifier","src":"1389:4:34"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"1228:220:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1318:9:34","nodeType":"YulTypedName","src":"1318:9:34","type":""},{"name":"value0","nativeSrc":"1329:6:34","nodeType":"YulTypedName","src":"1329:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1340:4:34","nodeType":"YulTypedName","src":"1340:4:34","type":""}],"src":"1228:220:34"},{"body":{"nativeSrc":"1523:110:34","nodeType":"YulBlock","src":"1523:110:34","statements":[{"body":{"nativeSrc":"1569:16:34","nodeType":"YulBlock","src":"1569:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1578:1:34","nodeType":"YulLiteral","src":"1578:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"1581:1:34","nodeType":"YulLiteral","src":"1581:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1571:6:34","nodeType":"YulIdentifier","src":"1571:6:34"},"nativeSrc":"1571:12:34","nodeType":"YulFunctionCall","src":"1571:12:34"},"nativeSrc":"1571:12:34","nodeType":"YulExpressionStatement","src":"1571:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1544:7:34","nodeType":"YulIdentifier","src":"1544:7:34"},{"name":"headStart","nativeSrc":"1553:9:34","nodeType":"YulIdentifier","src":"1553:9:34"}],"functionName":{"name":"sub","nativeSrc":"1540:3:34","nodeType":"YulIdentifier","src":"1540:3:34"},"nativeSrc":"1540:23:34","nodeType":"YulFunctionCall","src":"1540:23:34"},{"kind":"number","nativeSrc":"1565:2:34","nodeType":"YulLiteral","src":"1565:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1536:3:34","nodeType":"YulIdentifier","src":"1536:3:34"},"nativeSrc":"1536:32:34","nodeType":"YulFunctionCall","src":"1536:32:34"},"nativeSrc":"1533:52:34","nodeType":"YulIf","src":"1533:52:34"},{"nativeSrc":"1594:33:34","nodeType":"YulAssignment","src":"1594:33:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1617:9:34","nodeType":"YulIdentifier","src":"1617:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"1604:12:34","nodeType":"YulIdentifier","src":"1604:12:34"},"nativeSrc":"1604:23:34","nodeType":"YulFunctionCall","src":"1604:23:34"},"variableNames":[{"name":"value0","nativeSrc":"1594:6:34","nodeType":"YulIdentifier","src":"1594:6:34"}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1453:180:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1489:9:34","nodeType":"YulTypedName","src":"1489:9:34","type":""},{"name":"dataEnd","nativeSrc":"1500:7:34","nodeType":"YulTypedName","src":"1500:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1512:6:34","nodeType":"YulTypedName","src":"1512:6:34","type":""}],"src":"1453:180:34"},{"body":{"nativeSrc":"1739:125:34","nodeType":"YulBlock","src":"1739:125:34","statements":[{"nativeSrc":"1749:26:34","nodeType":"YulAssignment","src":"1749:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"1761:9:34","nodeType":"YulIdentifier","src":"1761:9:34"},{"kind":"number","nativeSrc":"1772:2:34","nodeType":"YulLiteral","src":"1772:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1757:3:34","nodeType":"YulIdentifier","src":"1757:3:34"},"nativeSrc":"1757:18:34","nodeType":"YulFunctionCall","src":"1757:18:34"},"variableNames":[{"name":"tail","nativeSrc":"1749:4:34","nodeType":"YulIdentifier","src":"1749:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"1791:9:34","nodeType":"YulIdentifier","src":"1791:9:34"},{"arguments":[{"name":"value0","nativeSrc":"1806:6:34","nodeType":"YulIdentifier","src":"1806:6:34"},{"kind":"number","nativeSrc":"1814:42:34","nodeType":"YulLiteral","src":"1814:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1802:3:34","nodeType":"YulIdentifier","src":"1802:3:34"},"nativeSrc":"1802:55:34","nodeType":"YulFunctionCall","src":"1802:55:34"}],"functionName":{"name":"mstore","nativeSrc":"1784:6:34","nodeType":"YulIdentifier","src":"1784:6:34"},"nativeSrc":"1784:74:34","nodeType":"YulFunctionCall","src":"1784:74:34"},"nativeSrc":"1784:74:34","nodeType":"YulExpressionStatement","src":"1784:74:34"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"1638:226:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1708:9:34","nodeType":"YulTypedName","src":"1708:9:34","type":""},{"name":"value0","nativeSrc":"1719:6:34","nodeType":"YulTypedName","src":"1719:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1730:4:34","nodeType":"YulTypedName","src":"1730:4:34","type":""}],"src":"1638:226:34"},{"body":{"nativeSrc":"1918:147:34","nodeType":"YulBlock","src":"1918:147:34","statements":[{"nativeSrc":"1928:29:34","nodeType":"YulAssignment","src":"1928:29:34","value":{"arguments":[{"name":"offset","nativeSrc":"1950:6:34","nodeType":"YulIdentifier","src":"1950:6:34"}],"functionName":{"name":"calldataload","nativeSrc":"1937:12:34","nodeType":"YulIdentifier","src":"1937:12:34"},"nativeSrc":"1937:20:34","nodeType":"YulFunctionCall","src":"1937:20:34"},"variableNames":[{"name":"value","nativeSrc":"1928:5:34","nodeType":"YulIdentifier","src":"1928:5:34"}]},{"body":{"nativeSrc":"2043:16:34","nodeType":"YulBlock","src":"2043:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2052:1:34","nodeType":"YulLiteral","src":"2052:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2055:1:34","nodeType":"YulLiteral","src":"2055:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2045:6:34","nodeType":"YulIdentifier","src":"2045:6:34"},"nativeSrc":"2045:12:34","nodeType":"YulFunctionCall","src":"2045:12:34"},"nativeSrc":"2045:12:34","nodeType":"YulExpressionStatement","src":"2045:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1979:5:34","nodeType":"YulIdentifier","src":"1979:5:34"},{"arguments":[{"name":"value","nativeSrc":"1990:5:34","nodeType":"YulIdentifier","src":"1990:5:34"},{"kind":"number","nativeSrc":"1997:42:34","nodeType":"YulLiteral","src":"1997:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1986:3:34","nodeType":"YulIdentifier","src":"1986:3:34"},"nativeSrc":"1986:54:34","nodeType":"YulFunctionCall","src":"1986:54:34"}],"functionName":{"name":"eq","nativeSrc":"1976:2:34","nodeType":"YulIdentifier","src":"1976:2:34"},"nativeSrc":"1976:65:34","nodeType":"YulFunctionCall","src":"1976:65:34"}],"functionName":{"name":"iszero","nativeSrc":"1969:6:34","nodeType":"YulIdentifier","src":"1969:6:34"},"nativeSrc":"1969:73:34","nodeType":"YulFunctionCall","src":"1969:73:34"},"nativeSrc":"1966:93:34","nodeType":"YulIf","src":"1966:93:34"}]},"name":"abi_decode_address","nativeSrc":"1869:196:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1897:6:34","nodeType":"YulTypedName","src":"1897:6:34","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1908:5:34","nodeType":"YulTypedName","src":"1908:5:34","type":""}],"src":"1869:196:34"},{"body":{"nativeSrc":"2157:167:34","nodeType":"YulBlock","src":"2157:167:34","statements":[{"body":{"nativeSrc":"2203:16:34","nodeType":"YulBlock","src":"2203:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2212:1:34","nodeType":"YulLiteral","src":"2212:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2215:1:34","nodeType":"YulLiteral","src":"2215:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2205:6:34","nodeType":"YulIdentifier","src":"2205:6:34"},"nativeSrc":"2205:12:34","nodeType":"YulFunctionCall","src":"2205:12:34"},"nativeSrc":"2205:12:34","nodeType":"YulExpressionStatement","src":"2205:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2178:7:34","nodeType":"YulIdentifier","src":"2178:7:34"},{"name":"headStart","nativeSrc":"2187:9:34","nodeType":"YulIdentifier","src":"2187:9:34"}],"functionName":{"name":"sub","nativeSrc":"2174:3:34","nodeType":"YulIdentifier","src":"2174:3:34"},"nativeSrc":"2174:23:34","nodeType":"YulFunctionCall","src":"2174:23:34"},{"kind":"number","nativeSrc":"2199:2:34","nodeType":"YulLiteral","src":"2199:2:34","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2170:3:34","nodeType":"YulIdentifier","src":"2170:3:34"},"nativeSrc":"2170:32:34","nodeType":"YulFunctionCall","src":"2170:32:34"},"nativeSrc":"2167:52:34","nodeType":"YulIf","src":"2167:52:34"},{"nativeSrc":"2228:39:34","nodeType":"YulAssignment","src":"2228:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2257:9:34","nodeType":"YulIdentifier","src":"2257:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2238:18:34","nodeType":"YulIdentifier","src":"2238:18:34"},"nativeSrc":"2238:29:34","nodeType":"YulFunctionCall","src":"2238:29:34"},"variableNames":[{"name":"value0","nativeSrc":"2228:6:34","nodeType":"YulIdentifier","src":"2228:6:34"}]},{"nativeSrc":"2276:42:34","nodeType":"YulAssignment","src":"2276:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2303:9:34","nodeType":"YulIdentifier","src":"2303:9:34"},{"kind":"number","nativeSrc":"2314:2:34","nodeType":"YulLiteral","src":"2314:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2299:3:34","nodeType":"YulIdentifier","src":"2299:3:34"},"nativeSrc":"2299:18:34","nodeType":"YulFunctionCall","src":"2299:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"2286:12:34","nodeType":"YulIdentifier","src":"2286:12:34"},"nativeSrc":"2286:32:34","nodeType":"YulFunctionCall","src":"2286:32:34"},"variableNames":[{"name":"value1","nativeSrc":"2276:6:34","nodeType":"YulIdentifier","src":"2276:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2070:254:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2115:9:34","nodeType":"YulTypedName","src":"2115:9:34","type":""},{"name":"dataEnd","nativeSrc":"2126:7:34","nodeType":"YulTypedName","src":"2126:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2138:6:34","nodeType":"YulTypedName","src":"2138:6:34","type":""},{"name":"value1","nativeSrc":"2146:6:34","nodeType":"YulTypedName","src":"2146:6:34","type":""}],"src":"2070:254:34"},{"body":{"nativeSrc":"2433:224:34","nodeType":"YulBlock","src":"2433:224:34","statements":[{"body":{"nativeSrc":"2479:16:34","nodeType":"YulBlock","src":"2479:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2488:1:34","nodeType":"YulLiteral","src":"2488:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2491:1:34","nodeType":"YulLiteral","src":"2491:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2481:6:34","nodeType":"YulIdentifier","src":"2481:6:34"},"nativeSrc":"2481:12:34","nodeType":"YulFunctionCall","src":"2481:12:34"},"nativeSrc":"2481:12:34","nodeType":"YulExpressionStatement","src":"2481:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2454:7:34","nodeType":"YulIdentifier","src":"2454:7:34"},{"name":"headStart","nativeSrc":"2463:9:34","nodeType":"YulIdentifier","src":"2463:9:34"}],"functionName":{"name":"sub","nativeSrc":"2450:3:34","nodeType":"YulIdentifier","src":"2450:3:34"},"nativeSrc":"2450:23:34","nodeType":"YulFunctionCall","src":"2450:23:34"},{"kind":"number","nativeSrc":"2475:2:34","nodeType":"YulLiteral","src":"2475:2:34","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"2446:3:34","nodeType":"YulIdentifier","src":"2446:3:34"},"nativeSrc":"2446:32:34","nodeType":"YulFunctionCall","src":"2446:32:34"},"nativeSrc":"2443:52:34","nodeType":"YulIf","src":"2443:52:34"},{"nativeSrc":"2504:39:34","nodeType":"YulAssignment","src":"2504:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2533:9:34","nodeType":"YulIdentifier","src":"2533:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2514:18:34","nodeType":"YulIdentifier","src":"2514:18:34"},"nativeSrc":"2514:29:34","nodeType":"YulFunctionCall","src":"2514:29:34"},"variableNames":[{"name":"value0","nativeSrc":"2504:6:34","nodeType":"YulIdentifier","src":"2504:6:34"}]},{"nativeSrc":"2552:48:34","nodeType":"YulAssignment","src":"2552:48:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2585:9:34","nodeType":"YulIdentifier","src":"2585:9:34"},{"kind":"number","nativeSrc":"2596:2:34","nodeType":"YulLiteral","src":"2596:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2581:3:34","nodeType":"YulIdentifier","src":"2581:3:34"},"nativeSrc":"2581:18:34","nodeType":"YulFunctionCall","src":"2581:18:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"2562:18:34","nodeType":"YulIdentifier","src":"2562:18:34"},"nativeSrc":"2562:38:34","nodeType":"YulFunctionCall","src":"2562:38:34"},"variableNames":[{"name":"value1","nativeSrc":"2552:6:34","nodeType":"YulIdentifier","src":"2552:6:34"}]},{"nativeSrc":"2609:42:34","nodeType":"YulAssignment","src":"2609:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2636:9:34","nodeType":"YulIdentifier","src":"2636:9:34"},{"kind":"number","nativeSrc":"2647:2:34","nodeType":"YulLiteral","src":"2647:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"2632:3:34","nodeType":"YulIdentifier","src":"2632:3:34"},"nativeSrc":"2632:18:34","nodeType":"YulFunctionCall","src":"2632:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"2619:12:34","nodeType":"YulIdentifier","src":"2619:12:34"},"nativeSrc":"2619:32:34","nodeType":"YulFunctionCall","src":"2619:32:34"},"variableNames":[{"name":"value2","nativeSrc":"2609:6:34","nodeType":"YulIdentifier","src":"2609:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"2329:328:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2383:9:34","nodeType":"YulTypedName","src":"2383:9:34","type":""},{"name":"dataEnd","nativeSrc":"2394:7:34","nodeType":"YulTypedName","src":"2394:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2406:6:34","nodeType":"YulTypedName","src":"2406:6:34","type":""},{"name":"value1","nativeSrc":"2414:6:34","nodeType":"YulTypedName","src":"2414:6:34","type":""},{"name":"value2","nativeSrc":"2422:6:34","nodeType":"YulTypedName","src":"2422:6:34","type":""}],"src":"2329:328:34"},{"body":{"nativeSrc":"2749:161:34","nodeType":"YulBlock","src":"2749:161:34","statements":[{"body":{"nativeSrc":"2795:16:34","nodeType":"YulBlock","src":"2795:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2804:1:34","nodeType":"YulLiteral","src":"2804:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"2807:1:34","nodeType":"YulLiteral","src":"2807:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2797:6:34","nodeType":"YulIdentifier","src":"2797:6:34"},"nativeSrc":"2797:12:34","nodeType":"YulFunctionCall","src":"2797:12:34"},"nativeSrc":"2797:12:34","nodeType":"YulExpressionStatement","src":"2797:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2770:7:34","nodeType":"YulIdentifier","src":"2770:7:34"},{"name":"headStart","nativeSrc":"2779:9:34","nodeType":"YulIdentifier","src":"2779:9:34"}],"functionName":{"name":"sub","nativeSrc":"2766:3:34","nodeType":"YulIdentifier","src":"2766:3:34"},"nativeSrc":"2766:23:34","nodeType":"YulFunctionCall","src":"2766:23:34"},{"kind":"number","nativeSrc":"2791:2:34","nodeType":"YulLiteral","src":"2791:2:34","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2762:3:34","nodeType":"YulIdentifier","src":"2762:3:34"},"nativeSrc":"2762:32:34","nodeType":"YulFunctionCall","src":"2762:32:34"},"nativeSrc":"2759:52:34","nodeType":"YulIf","src":"2759:52:34"},{"nativeSrc":"2820:33:34","nodeType":"YulAssignment","src":"2820:33:34","value":{"arguments":[{"name":"headStart","nativeSrc":"2843:9:34","nodeType":"YulIdentifier","src":"2843:9:34"}],"functionName":{"name":"calldataload","nativeSrc":"2830:12:34","nodeType":"YulIdentifier","src":"2830:12:34"},"nativeSrc":"2830:23:34","nodeType":"YulFunctionCall","src":"2830:23:34"},"variableNames":[{"name":"value0","nativeSrc":"2820:6:34","nodeType":"YulIdentifier","src":"2820:6:34"}]},{"nativeSrc":"2862:42:34","nodeType":"YulAssignment","src":"2862:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2889:9:34","nodeType":"YulIdentifier","src":"2889:9:34"},{"kind":"number","nativeSrc":"2900:2:34","nodeType":"YulLiteral","src":"2900:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2885:3:34","nodeType":"YulIdentifier","src":"2885:3:34"},"nativeSrc":"2885:18:34","nodeType":"YulFunctionCall","src":"2885:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"2872:12:34","nodeType":"YulIdentifier","src":"2872:12:34"},"nativeSrc":"2872:32:34","nodeType":"YulFunctionCall","src":"2872:32:34"},"variableNames":[{"name":"value1","nativeSrc":"2862:6:34","nodeType":"YulIdentifier","src":"2862:6:34"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nativeSrc":"2662:248:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2707:9:34","nodeType":"YulTypedName","src":"2707:9:34","type":""},{"name":"dataEnd","nativeSrc":"2718:7:34","nodeType":"YulTypedName","src":"2718:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2730:6:34","nodeType":"YulTypedName","src":"2730:6:34","type":""},{"name":"value1","nativeSrc":"2738:6:34","nodeType":"YulTypedName","src":"2738:6:34","type":""}],"src":"2662:248:34"},{"body":{"nativeSrc":"3044:168:34","nodeType":"YulBlock","src":"3044:168:34","statements":[{"nativeSrc":"3054:26:34","nodeType":"YulAssignment","src":"3054:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3066:9:34","nodeType":"YulIdentifier","src":"3066:9:34"},{"kind":"number","nativeSrc":"3077:2:34","nodeType":"YulLiteral","src":"3077:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3062:3:34","nodeType":"YulIdentifier","src":"3062:3:34"},"nativeSrc":"3062:18:34","nodeType":"YulFunctionCall","src":"3062:18:34"},"variableNames":[{"name":"tail","nativeSrc":"3054:4:34","nodeType":"YulIdentifier","src":"3054:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3096:9:34","nodeType":"YulIdentifier","src":"3096:9:34"},{"arguments":[{"name":"value0","nativeSrc":"3111:6:34","nodeType":"YulIdentifier","src":"3111:6:34"},{"kind":"number","nativeSrc":"3119:42:34","nodeType":"YulLiteral","src":"3119:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3107:3:34","nodeType":"YulIdentifier","src":"3107:3:34"},"nativeSrc":"3107:55:34","nodeType":"YulFunctionCall","src":"3107:55:34"}],"functionName":{"name":"mstore","nativeSrc":"3089:6:34","nodeType":"YulIdentifier","src":"3089:6:34"},"nativeSrc":"3089:74:34","nodeType":"YulFunctionCall","src":"3089:74:34"},"nativeSrc":"3089:74:34","nodeType":"YulExpressionStatement","src":"3089:74:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3183:9:34","nodeType":"YulIdentifier","src":"3183:9:34"},{"kind":"number","nativeSrc":"3194:2:34","nodeType":"YulLiteral","src":"3194:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3179:3:34","nodeType":"YulIdentifier","src":"3179:3:34"},"nativeSrc":"3179:18:34","nodeType":"YulFunctionCall","src":"3179:18:34"},{"name":"value1","nativeSrc":"3199:6:34","nodeType":"YulIdentifier","src":"3199:6:34"}],"functionName":{"name":"mstore","nativeSrc":"3172:6:34","nodeType":"YulIdentifier","src":"3172:6:34"},"nativeSrc":"3172:34:34","nodeType":"YulFunctionCall","src":"3172:34:34"},"nativeSrc":"3172:34:34","nodeType":"YulExpressionStatement","src":"3172:34:34"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"2915:297:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3005:9:34","nodeType":"YulTypedName","src":"3005:9:34","type":""},{"name":"value1","nativeSrc":"3016:6:34","nodeType":"YulTypedName","src":"3016:6:34","type":""},{"name":"value0","nativeSrc":"3024:6:34","nodeType":"YulTypedName","src":"3024:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3035:4:34","nodeType":"YulTypedName","src":"3035:4:34","type":""}],"src":"2915:297:34"},{"body":{"nativeSrc":"3287:116:34","nodeType":"YulBlock","src":"3287:116:34","statements":[{"body":{"nativeSrc":"3333:16:34","nodeType":"YulBlock","src":"3333:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3342:1:34","nodeType":"YulLiteral","src":"3342:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3345:1:34","nodeType":"YulLiteral","src":"3345:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3335:6:34","nodeType":"YulIdentifier","src":"3335:6:34"},"nativeSrc":"3335:12:34","nodeType":"YulFunctionCall","src":"3335:12:34"},"nativeSrc":"3335:12:34","nodeType":"YulExpressionStatement","src":"3335:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3308:7:34","nodeType":"YulIdentifier","src":"3308:7:34"},{"name":"headStart","nativeSrc":"3317:9:34","nodeType":"YulIdentifier","src":"3317:9:34"}],"functionName":{"name":"sub","nativeSrc":"3304:3:34","nodeType":"YulIdentifier","src":"3304:3:34"},"nativeSrc":"3304:23:34","nodeType":"YulFunctionCall","src":"3304:23:34"},{"kind":"number","nativeSrc":"3329:2:34","nodeType":"YulLiteral","src":"3329:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3300:3:34","nodeType":"YulIdentifier","src":"3300:3:34"},"nativeSrc":"3300:32:34","nodeType":"YulFunctionCall","src":"3300:32:34"},"nativeSrc":"3297:52:34","nodeType":"YulIf","src":"3297:52:34"},{"nativeSrc":"3358:39:34","nodeType":"YulAssignment","src":"3358:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3387:9:34","nodeType":"YulIdentifier","src":"3387:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3368:18:34","nodeType":"YulIdentifier","src":"3368:18:34"},"nativeSrc":"3368:29:34","nodeType":"YulFunctionCall","src":"3368:29:34"},"variableNames":[{"name":"value0","nativeSrc":"3358:6:34","nodeType":"YulIdentifier","src":"3358:6:34"}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"3217:186:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3253:9:34","nodeType":"YulTypedName","src":"3253:9:34","type":""},{"name":"dataEnd","nativeSrc":"3264:7:34","nodeType":"YulTypedName","src":"3264:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3276:6:34","nodeType":"YulTypedName","src":"3276:6:34","type":""}],"src":"3217:186:34"},{"body":{"nativeSrc":"3509:76:34","nodeType":"YulBlock","src":"3509:76:34","statements":[{"nativeSrc":"3519:26:34","nodeType":"YulAssignment","src":"3519:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3531:9:34","nodeType":"YulIdentifier","src":"3531:9:34"},{"kind":"number","nativeSrc":"3542:2:34","nodeType":"YulLiteral","src":"3542:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3527:3:34","nodeType":"YulIdentifier","src":"3527:3:34"},"nativeSrc":"3527:18:34","nodeType":"YulFunctionCall","src":"3527:18:34"},"variableNames":[{"name":"tail","nativeSrc":"3519:4:34","nodeType":"YulIdentifier","src":"3519:4:34"}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"3561:9:34","nodeType":"YulIdentifier","src":"3561:9:34"},{"name":"value0","nativeSrc":"3572:6:34","nodeType":"YulIdentifier","src":"3572:6:34"}],"functionName":{"name":"mstore","nativeSrc":"3554:6:34","nodeType":"YulIdentifier","src":"3554:6:34"},"nativeSrc":"3554:25:34","nodeType":"YulFunctionCall","src":"3554:25:34"},"nativeSrc":"3554:25:34","nodeType":"YulExpressionStatement","src":"3554:25:34"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3408:177:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3478:9:34","nodeType":"YulTypedName","src":"3478:9:34","type":""},{"name":"value0","nativeSrc":"3489:6:34","nodeType":"YulTypedName","src":"3489:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3500:4:34","nodeType":"YulTypedName","src":"3500:4:34","type":""}],"src":"3408:177:34"},{"body":{"nativeSrc":"3674:263:34","nodeType":"YulBlock","src":"3674:263:34","statements":[{"body":{"nativeSrc":"3720:16:34","nodeType":"YulBlock","src":"3720:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3729:1:34","nodeType":"YulLiteral","src":"3729:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3732:1:34","nodeType":"YulLiteral","src":"3732:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3722:6:34","nodeType":"YulIdentifier","src":"3722:6:34"},"nativeSrc":"3722:12:34","nodeType":"YulFunctionCall","src":"3722:12:34"},"nativeSrc":"3722:12:34","nodeType":"YulExpressionStatement","src":"3722:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3695:7:34","nodeType":"YulIdentifier","src":"3695:7:34"},{"name":"headStart","nativeSrc":"3704:9:34","nodeType":"YulIdentifier","src":"3704:9:34"}],"functionName":{"name":"sub","nativeSrc":"3691:3:34","nodeType":"YulIdentifier","src":"3691:3:34"},"nativeSrc":"3691:23:34","nodeType":"YulFunctionCall","src":"3691:23:34"},{"kind":"number","nativeSrc":"3716:2:34","nodeType":"YulLiteral","src":"3716:2:34","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3687:3:34","nodeType":"YulIdentifier","src":"3687:3:34"},"nativeSrc":"3687:32:34","nodeType":"YulFunctionCall","src":"3687:32:34"},"nativeSrc":"3684:52:34","nodeType":"YulIf","src":"3684:52:34"},{"nativeSrc":"3745:39:34","nodeType":"YulAssignment","src":"3745:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"3774:9:34","nodeType":"YulIdentifier","src":"3774:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"3755:18:34","nodeType":"YulIdentifier","src":"3755:18:34"},"nativeSrc":"3755:29:34","nodeType":"YulFunctionCall","src":"3755:29:34"},"variableNames":[{"name":"value0","nativeSrc":"3745:6:34","nodeType":"YulIdentifier","src":"3745:6:34"}]},{"nativeSrc":"3793:45:34","nodeType":"YulVariableDeclaration","src":"3793:45:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3823:9:34","nodeType":"YulIdentifier","src":"3823:9:34"},{"kind":"number","nativeSrc":"3834:2:34","nodeType":"YulLiteral","src":"3834:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3819:3:34","nodeType":"YulIdentifier","src":"3819:3:34"},"nativeSrc":"3819:18:34","nodeType":"YulFunctionCall","src":"3819:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"3806:12:34","nodeType":"YulIdentifier","src":"3806:12:34"},"nativeSrc":"3806:32:34","nodeType":"YulFunctionCall","src":"3806:32:34"},"variables":[{"name":"value","nativeSrc":"3797:5:34","nodeType":"YulTypedName","src":"3797:5:34","type":""}]},{"body":{"nativeSrc":"3891:16:34","nodeType":"YulBlock","src":"3891:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3900:1:34","nodeType":"YulLiteral","src":"3900:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3903:1:34","nodeType":"YulLiteral","src":"3903:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3893:6:34","nodeType":"YulIdentifier","src":"3893:6:34"},"nativeSrc":"3893:12:34","nodeType":"YulFunctionCall","src":"3893:12:34"},"nativeSrc":"3893:12:34","nodeType":"YulExpressionStatement","src":"3893:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3860:5:34","nodeType":"YulIdentifier","src":"3860:5:34"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3881:5:34","nodeType":"YulIdentifier","src":"3881:5:34"}],"functionName":{"name":"iszero","nativeSrc":"3874:6:34","nodeType":"YulIdentifier","src":"3874:6:34"},"nativeSrc":"3874:13:34","nodeType":"YulFunctionCall","src":"3874:13:34"}],"functionName":{"name":"iszero","nativeSrc":"3867:6:34","nodeType":"YulIdentifier","src":"3867:6:34"},"nativeSrc":"3867:21:34","nodeType":"YulFunctionCall","src":"3867:21:34"}],"functionName":{"name":"eq","nativeSrc":"3857:2:34","nodeType":"YulIdentifier","src":"3857:2:34"},"nativeSrc":"3857:32:34","nodeType":"YulFunctionCall","src":"3857:32:34"}],"functionName":{"name":"iszero","nativeSrc":"3850:6:34","nodeType":"YulIdentifier","src":"3850:6:34"},"nativeSrc":"3850:40:34","nodeType":"YulFunctionCall","src":"3850:40:34"},"nativeSrc":"3847:60:34","nodeType":"YulIf","src":"3847:60:34"},{"nativeSrc":"3916:15:34","nodeType":"YulAssignment","src":"3916:15:34","value":{"name":"value","nativeSrc":"3926:5:34","nodeType":"YulIdentifier","src":"3926:5:34"},"variableNames":[{"name":"value1","nativeSrc":"3916:6:34","nodeType":"YulIdentifier","src":"3916:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"3590:347:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3632:9:34","nodeType":"YulTypedName","src":"3632:9:34","type":""},{"name":"dataEnd","nativeSrc":"3643:7:34","nodeType":"YulTypedName","src":"3643:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3655:6:34","nodeType":"YulTypedName","src":"3655:6:34","type":""},{"name":"value1","nativeSrc":"3663:6:34","nodeType":"YulTypedName","src":"3663:6:34","type":""}],"src":"3590:347:34"},{"body":{"nativeSrc":"3974:152:34","nodeType":"YulBlock","src":"3974:152:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3991:1:34","nodeType":"YulLiteral","src":"3991:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"3994:77:34","nodeType":"YulLiteral","src":"3994:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"3984:6:34","nodeType":"YulIdentifier","src":"3984:6:34"},"nativeSrc":"3984:88:34","nodeType":"YulFunctionCall","src":"3984:88:34"},"nativeSrc":"3984:88:34","nodeType":"YulExpressionStatement","src":"3984:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4088:1:34","nodeType":"YulLiteral","src":"4088:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"4091:4:34","nodeType":"YulLiteral","src":"4091:4:34","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"4081:6:34","nodeType":"YulIdentifier","src":"4081:6:34"},"nativeSrc":"4081:15:34","nodeType":"YulFunctionCall","src":"4081:15:34"},"nativeSrc":"4081:15:34","nodeType":"YulExpressionStatement","src":"4081:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4112:1:34","nodeType":"YulLiteral","src":"4112:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"4115:4:34","nodeType":"YulLiteral","src":"4115:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"4105:6:34","nodeType":"YulIdentifier","src":"4105:6:34"},"nativeSrc":"4105:15:34","nodeType":"YulFunctionCall","src":"4105:15:34"},"nativeSrc":"4105:15:34","nodeType":"YulExpressionStatement","src":"4105:15:34"}]},"name":"panic_error_0x41","nativeSrc":"3942:184:34","nodeType":"YulFunctionDefinition","src":"3942:184:34"},{"body":{"nativeSrc":"4261:1067:34","nodeType":"YulBlock","src":"4261:1067:34","statements":[{"body":{"nativeSrc":"4308:16:34","nodeType":"YulBlock","src":"4308:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4317:1:34","nodeType":"YulLiteral","src":"4317:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"4320:1:34","nodeType":"YulLiteral","src":"4320:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4310:6:34","nodeType":"YulIdentifier","src":"4310:6:34"},"nativeSrc":"4310:12:34","nodeType":"YulFunctionCall","src":"4310:12:34"},"nativeSrc":"4310:12:34","nodeType":"YulExpressionStatement","src":"4310:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4282:7:34","nodeType":"YulIdentifier","src":"4282:7:34"},{"name":"headStart","nativeSrc":"4291:9:34","nodeType":"YulIdentifier","src":"4291:9:34"}],"functionName":{"name":"sub","nativeSrc":"4278:3:34","nodeType":"YulIdentifier","src":"4278:3:34"},"nativeSrc":"4278:23:34","nodeType":"YulFunctionCall","src":"4278:23:34"},{"kind":"number","nativeSrc":"4303:3:34","nodeType":"YulLiteral","src":"4303:3:34","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"4274:3:34","nodeType":"YulIdentifier","src":"4274:3:34"},"nativeSrc":"4274:33:34","nodeType":"YulFunctionCall","src":"4274:33:34"},"nativeSrc":"4271:53:34","nodeType":"YulIf","src":"4271:53:34"},{"nativeSrc":"4333:39:34","nodeType":"YulAssignment","src":"4333:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"4362:9:34","nodeType":"YulIdentifier","src":"4362:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4343:18:34","nodeType":"YulIdentifier","src":"4343:18:34"},"nativeSrc":"4343:29:34","nodeType":"YulFunctionCall","src":"4343:29:34"},"variableNames":[{"name":"value0","nativeSrc":"4333:6:34","nodeType":"YulIdentifier","src":"4333:6:34"}]},{"nativeSrc":"4381:48:34","nodeType":"YulAssignment","src":"4381:48:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4414:9:34","nodeType":"YulIdentifier","src":"4414:9:34"},{"kind":"number","nativeSrc":"4425:2:34","nodeType":"YulLiteral","src":"4425:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4410:3:34","nodeType":"YulIdentifier","src":"4410:3:34"},"nativeSrc":"4410:18:34","nodeType":"YulFunctionCall","src":"4410:18:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"4391:18:34","nodeType":"YulIdentifier","src":"4391:18:34"},"nativeSrc":"4391:38:34","nodeType":"YulFunctionCall","src":"4391:38:34"},"variableNames":[{"name":"value1","nativeSrc":"4381:6:34","nodeType":"YulIdentifier","src":"4381:6:34"}]},{"nativeSrc":"4438:42:34","nodeType":"YulAssignment","src":"4438:42:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4465:9:34","nodeType":"YulIdentifier","src":"4465:9:34"},{"kind":"number","nativeSrc":"4476:2:34","nodeType":"YulLiteral","src":"4476:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4461:3:34","nodeType":"YulIdentifier","src":"4461:3:34"},"nativeSrc":"4461:18:34","nodeType":"YulFunctionCall","src":"4461:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"4448:12:34","nodeType":"YulIdentifier","src":"4448:12:34"},"nativeSrc":"4448:32:34","nodeType":"YulFunctionCall","src":"4448:32:34"},"variableNames":[{"name":"value2","nativeSrc":"4438:6:34","nodeType":"YulIdentifier","src":"4438:6:34"}]},{"nativeSrc":"4489:46:34","nodeType":"YulVariableDeclaration","src":"4489:46:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4520:9:34","nodeType":"YulIdentifier","src":"4520:9:34"},{"kind":"number","nativeSrc":"4531:2:34","nodeType":"YulLiteral","src":"4531:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"4516:3:34","nodeType":"YulIdentifier","src":"4516:3:34"},"nativeSrc":"4516:18:34","nodeType":"YulFunctionCall","src":"4516:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"4503:12:34","nodeType":"YulIdentifier","src":"4503:12:34"},"nativeSrc":"4503:32:34","nodeType":"YulFunctionCall","src":"4503:32:34"},"variables":[{"name":"offset","nativeSrc":"4493:6:34","nodeType":"YulTypedName","src":"4493:6:34","type":""}]},{"nativeSrc":"4544:28:34","nodeType":"YulVariableDeclaration","src":"4544:28:34","value":{"kind":"number","nativeSrc":"4554:18:34","nodeType":"YulLiteral","src":"4554:18:34","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"4548:2:34","nodeType":"YulTypedName","src":"4548:2:34","type":""}]},{"body":{"nativeSrc":"4599:16:34","nodeType":"YulBlock","src":"4599:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4608:1:34","nodeType":"YulLiteral","src":"4608:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"4611:1:34","nodeType":"YulLiteral","src":"4611:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4601:6:34","nodeType":"YulIdentifier","src":"4601:6:34"},"nativeSrc":"4601:12:34","nodeType":"YulFunctionCall","src":"4601:12:34"},"nativeSrc":"4601:12:34","nodeType":"YulExpressionStatement","src":"4601:12:34"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4587:6:34","nodeType":"YulIdentifier","src":"4587:6:34"},{"name":"_1","nativeSrc":"4595:2:34","nodeType":"YulIdentifier","src":"4595:2:34"}],"functionName":{"name":"gt","nativeSrc":"4584:2:34","nodeType":"YulIdentifier","src":"4584:2:34"},"nativeSrc":"4584:14:34","nodeType":"YulFunctionCall","src":"4584:14:34"},"nativeSrc":"4581:34:34","nodeType":"YulIf","src":"4581:34:34"},{"nativeSrc":"4624:32:34","nodeType":"YulVariableDeclaration","src":"4624:32:34","value":{"arguments":[{"name":"headStart","nativeSrc":"4638:9:34","nodeType":"YulIdentifier","src":"4638:9:34"},{"name":"offset","nativeSrc":"4649:6:34","nodeType":"YulIdentifier","src":"4649:6:34"}],"functionName":{"name":"add","nativeSrc":"4634:3:34","nodeType":"YulIdentifier","src":"4634:3:34"},"nativeSrc":"4634:22:34","nodeType":"YulFunctionCall","src":"4634:22:34"},"variables":[{"name":"_2","nativeSrc":"4628:2:34","nodeType":"YulTypedName","src":"4628:2:34","type":""}]},{"body":{"nativeSrc":"4704:16:34","nodeType":"YulBlock","src":"4704:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4713:1:34","nodeType":"YulLiteral","src":"4713:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"4716:1:34","nodeType":"YulLiteral","src":"4716:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4706:6:34","nodeType":"YulIdentifier","src":"4706:6:34"},"nativeSrc":"4706:12:34","nodeType":"YulFunctionCall","src":"4706:12:34"},"nativeSrc":"4706:12:34","nodeType":"YulExpressionStatement","src":"4706:12:34"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"4683:2:34","nodeType":"YulIdentifier","src":"4683:2:34"},{"kind":"number","nativeSrc":"4687:4:34","nodeType":"YulLiteral","src":"4687:4:34","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4679:3:34","nodeType":"YulIdentifier","src":"4679:3:34"},"nativeSrc":"4679:13:34","nodeType":"YulFunctionCall","src":"4679:13:34"},{"name":"dataEnd","nativeSrc":"4694:7:34","nodeType":"YulIdentifier","src":"4694:7:34"}],"functionName":{"name":"slt","nativeSrc":"4675:3:34","nodeType":"YulIdentifier","src":"4675:3:34"},"nativeSrc":"4675:27:34","nodeType":"YulFunctionCall","src":"4675:27:34"}],"functionName":{"name":"iszero","nativeSrc":"4668:6:34","nodeType":"YulIdentifier","src":"4668:6:34"},"nativeSrc":"4668:35:34","nodeType":"YulFunctionCall","src":"4668:35:34"},"nativeSrc":"4665:55:34","nodeType":"YulIf","src":"4665:55:34"},{"nativeSrc":"4729:26:34","nodeType":"YulVariableDeclaration","src":"4729:26:34","value":{"arguments":[{"name":"_2","nativeSrc":"4752:2:34","nodeType":"YulIdentifier","src":"4752:2:34"}],"functionName":{"name":"calldataload","nativeSrc":"4739:12:34","nodeType":"YulIdentifier","src":"4739:12:34"},"nativeSrc":"4739:16:34","nodeType":"YulFunctionCall","src":"4739:16:34"},"variables":[{"name":"_3","nativeSrc":"4733:2:34","nodeType":"YulTypedName","src":"4733:2:34","type":""}]},{"body":{"nativeSrc":"4778:22:34","nodeType":"YulBlock","src":"4778:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4780:16:34","nodeType":"YulIdentifier","src":"4780:16:34"},"nativeSrc":"4780:18:34","nodeType":"YulFunctionCall","src":"4780:18:34"},"nativeSrc":"4780:18:34","nodeType":"YulExpressionStatement","src":"4780:18:34"}]},"condition":{"arguments":[{"name":"_3","nativeSrc":"4770:2:34","nodeType":"YulIdentifier","src":"4770:2:34"},{"name":"_1","nativeSrc":"4774:2:34","nodeType":"YulIdentifier","src":"4774:2:34"}],"functionName":{"name":"gt","nativeSrc":"4767:2:34","nodeType":"YulIdentifier","src":"4767:2:34"},"nativeSrc":"4767:10:34","nodeType":"YulFunctionCall","src":"4767:10:34"},"nativeSrc":"4764:36:34","nodeType":"YulIf","src":"4764:36:34"},{"nativeSrc":"4809:76:34","nodeType":"YulVariableDeclaration","src":"4809:76:34","value":{"kind":"number","nativeSrc":"4819:66:34","nodeType":"YulLiteral","src":"4819:66:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0"},"variables":[{"name":"_4","nativeSrc":"4813:2:34","nodeType":"YulTypedName","src":"4813:2:34","type":""}]},{"nativeSrc":"4894:23:34","nodeType":"YulVariableDeclaration","src":"4894:23:34","value":{"arguments":[{"kind":"number","nativeSrc":"4914:2:34","nodeType":"YulLiteral","src":"4914:2:34","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"4908:5:34","nodeType":"YulIdentifier","src":"4908:5:34"},"nativeSrc":"4908:9:34","nodeType":"YulFunctionCall","src":"4908:9:34"},"variables":[{"name":"memPtr","nativeSrc":"4898:6:34","nodeType":"YulTypedName","src":"4898:6:34","type":""}]},{"nativeSrc":"4926:71:34","nodeType":"YulVariableDeclaration","src":"4926:71:34","value":{"arguments":[{"name":"memPtr","nativeSrc":"4948:6:34","nodeType":"YulIdentifier","src":"4948:6:34"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nativeSrc":"4972:2:34","nodeType":"YulIdentifier","src":"4972:2:34"},{"kind":"number","nativeSrc":"4976:4:34","nodeType":"YulLiteral","src":"4976:4:34","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4968:3:34","nodeType":"YulIdentifier","src":"4968:3:34"},"nativeSrc":"4968:13:34","nodeType":"YulFunctionCall","src":"4968:13:34"},{"name":"_4","nativeSrc":"4983:2:34","nodeType":"YulIdentifier","src":"4983:2:34"}],"functionName":{"name":"and","nativeSrc":"4964:3:34","nodeType":"YulIdentifier","src":"4964:3:34"},"nativeSrc":"4964:22:34","nodeType":"YulFunctionCall","src":"4964:22:34"},{"kind":"number","nativeSrc":"4988:2:34","nodeType":"YulLiteral","src":"4988:2:34","type":"","value":"63"}],"functionName":{"name":"add","nativeSrc":"4960:3:34","nodeType":"YulIdentifier","src":"4960:3:34"},"nativeSrc":"4960:31:34","nodeType":"YulFunctionCall","src":"4960:31:34"},{"name":"_4","nativeSrc":"4993:2:34","nodeType":"YulIdentifier","src":"4993:2:34"}],"functionName":{"name":"and","nativeSrc":"4956:3:34","nodeType":"YulIdentifier","src":"4956:3:34"},"nativeSrc":"4956:40:34","nodeType":"YulFunctionCall","src":"4956:40:34"}],"functionName":{"name":"add","nativeSrc":"4944:3:34","nodeType":"YulIdentifier","src":"4944:3:34"},"nativeSrc":"4944:53:34","nodeType":"YulFunctionCall","src":"4944:53:34"},"variables":[{"name":"newFreePtr","nativeSrc":"4930:10:34","nodeType":"YulTypedName","src":"4930:10:34","type":""}]},{"body":{"nativeSrc":"5056:22:34","nodeType":"YulBlock","src":"5056:22:34","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5058:16:34","nodeType":"YulIdentifier","src":"5058:16:34"},"nativeSrc":"5058:18:34","nodeType":"YulFunctionCall","src":"5058:18:34"},"nativeSrc":"5058:18:34","nodeType":"YulExpressionStatement","src":"5058:18:34"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5015:10:34","nodeType":"YulIdentifier","src":"5015:10:34"},{"name":"_1","nativeSrc":"5027:2:34","nodeType":"YulIdentifier","src":"5027:2:34"}],"functionName":{"name":"gt","nativeSrc":"5012:2:34","nodeType":"YulIdentifier","src":"5012:2:34"},"nativeSrc":"5012:18:34","nodeType":"YulFunctionCall","src":"5012:18:34"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5035:10:34","nodeType":"YulIdentifier","src":"5035:10:34"},{"name":"memPtr","nativeSrc":"5047:6:34","nodeType":"YulIdentifier","src":"5047:6:34"}],"functionName":{"name":"lt","nativeSrc":"5032:2:34","nodeType":"YulIdentifier","src":"5032:2:34"},"nativeSrc":"5032:22:34","nodeType":"YulFunctionCall","src":"5032:22:34"}],"functionName":{"name":"or","nativeSrc":"5009:2:34","nodeType":"YulIdentifier","src":"5009:2:34"},"nativeSrc":"5009:46:34","nodeType":"YulFunctionCall","src":"5009:46:34"},"nativeSrc":"5006:72:34","nodeType":"YulIf","src":"5006:72:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5094:2:34","nodeType":"YulLiteral","src":"5094:2:34","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5098:10:34","nodeType":"YulIdentifier","src":"5098:10:34"}],"functionName":{"name":"mstore","nativeSrc":"5087:6:34","nodeType":"YulIdentifier","src":"5087:6:34"},"nativeSrc":"5087:22:34","nodeType":"YulFunctionCall","src":"5087:22:34"},"nativeSrc":"5087:22:34","nodeType":"YulExpressionStatement","src":"5087:22:34"},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"5125:6:34","nodeType":"YulIdentifier","src":"5125:6:34"},{"name":"_3","nativeSrc":"5133:2:34","nodeType":"YulIdentifier","src":"5133:2:34"}],"functionName":{"name":"mstore","nativeSrc":"5118:6:34","nodeType":"YulIdentifier","src":"5118:6:34"},"nativeSrc":"5118:18:34","nodeType":"YulFunctionCall","src":"5118:18:34"},"nativeSrc":"5118:18:34","nodeType":"YulExpressionStatement","src":"5118:18:34"},{"body":{"nativeSrc":"5182:16:34","nodeType":"YulBlock","src":"5182:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5191:1:34","nodeType":"YulLiteral","src":"5191:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"5194:1:34","nodeType":"YulLiteral","src":"5194:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5184:6:34","nodeType":"YulIdentifier","src":"5184:6:34"},"nativeSrc":"5184:12:34","nodeType":"YulFunctionCall","src":"5184:12:34"},"nativeSrc":"5184:12:34","nodeType":"YulExpressionStatement","src":"5184:12:34"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nativeSrc":"5159:2:34","nodeType":"YulIdentifier","src":"5159:2:34"},{"name":"_3","nativeSrc":"5163:2:34","nodeType":"YulIdentifier","src":"5163:2:34"}],"functionName":{"name":"add","nativeSrc":"5155:3:34","nodeType":"YulIdentifier","src":"5155:3:34"},"nativeSrc":"5155:11:34","nodeType":"YulFunctionCall","src":"5155:11:34"},{"kind":"number","nativeSrc":"5168:2:34","nodeType":"YulLiteral","src":"5168:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5151:3:34","nodeType":"YulIdentifier","src":"5151:3:34"},"nativeSrc":"5151:20:34","nodeType":"YulFunctionCall","src":"5151:20:34"},{"name":"dataEnd","nativeSrc":"5173:7:34","nodeType":"YulIdentifier","src":"5173:7:34"}],"functionName":{"name":"gt","nativeSrc":"5148:2:34","nodeType":"YulIdentifier","src":"5148:2:34"},"nativeSrc":"5148:33:34","nodeType":"YulFunctionCall","src":"5148:33:34"},"nativeSrc":"5145:53:34","nodeType":"YulIf","src":"5145:53:34"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5224:6:34","nodeType":"YulIdentifier","src":"5224:6:34"},{"kind":"number","nativeSrc":"5232:2:34","nodeType":"YulLiteral","src":"5232:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5220:3:34","nodeType":"YulIdentifier","src":"5220:3:34"},"nativeSrc":"5220:15:34","nodeType":"YulFunctionCall","src":"5220:15:34"},{"arguments":[{"name":"_2","nativeSrc":"5241:2:34","nodeType":"YulIdentifier","src":"5241:2:34"},{"kind":"number","nativeSrc":"5245:2:34","nodeType":"YulLiteral","src":"5245:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5237:3:34","nodeType":"YulIdentifier","src":"5237:3:34"},"nativeSrc":"5237:11:34","nodeType":"YulFunctionCall","src":"5237:11:34"},{"name":"_3","nativeSrc":"5250:2:34","nodeType":"YulIdentifier","src":"5250:2:34"}],"functionName":{"name":"calldatacopy","nativeSrc":"5207:12:34","nodeType":"YulIdentifier","src":"5207:12:34"},"nativeSrc":"5207:46:34","nodeType":"YulFunctionCall","src":"5207:46:34"},"nativeSrc":"5207:46:34","nodeType":"YulExpressionStatement","src":"5207:46:34"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"5277:6:34","nodeType":"YulIdentifier","src":"5277:6:34"},{"name":"_3","nativeSrc":"5285:2:34","nodeType":"YulIdentifier","src":"5285:2:34"}],"functionName":{"name":"add","nativeSrc":"5273:3:34","nodeType":"YulIdentifier","src":"5273:3:34"},"nativeSrc":"5273:15:34","nodeType":"YulFunctionCall","src":"5273:15:34"},{"kind":"number","nativeSrc":"5290:2:34","nodeType":"YulLiteral","src":"5290:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5269:3:34","nodeType":"YulIdentifier","src":"5269:3:34"},"nativeSrc":"5269:24:34","nodeType":"YulFunctionCall","src":"5269:24:34"},{"kind":"number","nativeSrc":"5295:1:34","nodeType":"YulLiteral","src":"5295:1:34","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5262:6:34","nodeType":"YulIdentifier","src":"5262:6:34"},"nativeSrc":"5262:35:34","nodeType":"YulFunctionCall","src":"5262:35:34"},"nativeSrc":"5262:35:34","nodeType":"YulExpressionStatement","src":"5262:35:34"},{"nativeSrc":"5306:16:34","nodeType":"YulAssignment","src":"5306:16:34","value":{"name":"memPtr","nativeSrc":"5316:6:34","nodeType":"YulIdentifier","src":"5316:6:34"},"variableNames":[{"name":"value3","nativeSrc":"5306:6:34","nodeType":"YulIdentifier","src":"5306:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nativeSrc":"4131:1197:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4203:9:34","nodeType":"YulTypedName","src":"4203:9:34","type":""},{"name":"dataEnd","nativeSrc":"4214:7:34","nodeType":"YulTypedName","src":"4214:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4226:6:34","nodeType":"YulTypedName","src":"4226:6:34","type":""},{"name":"value1","nativeSrc":"4234:6:34","nodeType":"YulTypedName","src":"4234:6:34","type":""},{"name":"value2","nativeSrc":"4242:6:34","nodeType":"YulTypedName","src":"4242:6:34","type":""},{"name":"value3","nativeSrc":"4250:6:34","nodeType":"YulTypedName","src":"4250:6:34","type":""}],"src":"4131:1197:34"},{"body":{"nativeSrc":"5420:173:34","nodeType":"YulBlock","src":"5420:173:34","statements":[{"body":{"nativeSrc":"5466:16:34","nodeType":"YulBlock","src":"5466:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5475:1:34","nodeType":"YulLiteral","src":"5475:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"5478:1:34","nodeType":"YulLiteral","src":"5478:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5468:6:34","nodeType":"YulIdentifier","src":"5468:6:34"},"nativeSrc":"5468:12:34","nodeType":"YulFunctionCall","src":"5468:12:34"},"nativeSrc":"5468:12:34","nodeType":"YulExpressionStatement","src":"5468:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5441:7:34","nodeType":"YulIdentifier","src":"5441:7:34"},{"name":"headStart","nativeSrc":"5450:9:34","nodeType":"YulIdentifier","src":"5450:9:34"}],"functionName":{"name":"sub","nativeSrc":"5437:3:34","nodeType":"YulIdentifier","src":"5437:3:34"},"nativeSrc":"5437:23:34","nodeType":"YulFunctionCall","src":"5437:23:34"},{"kind":"number","nativeSrc":"5462:2:34","nodeType":"YulLiteral","src":"5462:2:34","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5433:3:34","nodeType":"YulIdentifier","src":"5433:3:34"},"nativeSrc":"5433:32:34","nodeType":"YulFunctionCall","src":"5433:32:34"},"nativeSrc":"5430:52:34","nodeType":"YulIf","src":"5430:52:34"},{"nativeSrc":"5491:39:34","nodeType":"YulAssignment","src":"5491:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"5520:9:34","nodeType":"YulIdentifier","src":"5520:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5501:18:34","nodeType":"YulIdentifier","src":"5501:18:34"},"nativeSrc":"5501:29:34","nodeType":"YulFunctionCall","src":"5501:29:34"},"variableNames":[{"name":"value0","nativeSrc":"5491:6:34","nodeType":"YulIdentifier","src":"5491:6:34"}]},{"nativeSrc":"5539:48:34","nodeType":"YulAssignment","src":"5539:48:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5572:9:34","nodeType":"YulIdentifier","src":"5572:9:34"},{"kind":"number","nativeSrc":"5583:2:34","nodeType":"YulLiteral","src":"5583:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5568:3:34","nodeType":"YulIdentifier","src":"5568:3:34"},"nativeSrc":"5568:18:34","nodeType":"YulFunctionCall","src":"5568:18:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5549:18:34","nodeType":"YulIdentifier","src":"5549:18:34"},"nativeSrc":"5549:38:34","nodeType":"YulFunctionCall","src":"5549:38:34"},"variableNames":[{"name":"value1","nativeSrc":"5539:6:34","nodeType":"YulIdentifier","src":"5539:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"5333:260:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5378:9:34","nodeType":"YulTypedName","src":"5378:9:34","type":""},{"name":"dataEnd","nativeSrc":"5389:7:34","nodeType":"YulTypedName","src":"5389:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5401:6:34","nodeType":"YulTypedName","src":"5401:6:34","type":""},{"name":"value1","nativeSrc":"5409:6:34","nodeType":"YulTypedName","src":"5409:6:34","type":""}],"src":"5333:260:34"},{"body":{"nativeSrc":"5701:337:34","nodeType":"YulBlock","src":"5701:337:34","statements":[{"body":{"nativeSrc":"5747:16:34","nodeType":"YulBlock","src":"5747:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5756:1:34","nodeType":"YulLiteral","src":"5756:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"5759:1:34","nodeType":"YulLiteral","src":"5759:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5749:6:34","nodeType":"YulIdentifier","src":"5749:6:34"},"nativeSrc":"5749:12:34","nodeType":"YulFunctionCall","src":"5749:12:34"},"nativeSrc":"5749:12:34","nodeType":"YulExpressionStatement","src":"5749:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5722:7:34","nodeType":"YulIdentifier","src":"5722:7:34"},{"name":"headStart","nativeSrc":"5731:9:34","nodeType":"YulIdentifier","src":"5731:9:34"}],"functionName":{"name":"sub","nativeSrc":"5718:3:34","nodeType":"YulIdentifier","src":"5718:3:34"},"nativeSrc":"5718:23:34","nodeType":"YulFunctionCall","src":"5718:23:34"},{"kind":"number","nativeSrc":"5743:2:34","nodeType":"YulLiteral","src":"5743:2:34","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5714:3:34","nodeType":"YulIdentifier","src":"5714:3:34"},"nativeSrc":"5714:32:34","nodeType":"YulFunctionCall","src":"5714:32:34"},"nativeSrc":"5711:52:34","nodeType":"YulIf","src":"5711:52:34"},{"nativeSrc":"5772:39:34","nodeType":"YulAssignment","src":"5772:39:34","value":{"arguments":[{"name":"headStart","nativeSrc":"5801:9:34","nodeType":"YulIdentifier","src":"5801:9:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5782:18:34","nodeType":"YulIdentifier","src":"5782:18:34"},"nativeSrc":"5782:29:34","nodeType":"YulFunctionCall","src":"5782:29:34"},"variableNames":[{"name":"value0","nativeSrc":"5772:6:34","nodeType":"YulIdentifier","src":"5772:6:34"}]},{"nativeSrc":"5820:48:34","nodeType":"YulAssignment","src":"5820:48:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5853:9:34","nodeType":"YulIdentifier","src":"5853:9:34"},{"kind":"number","nativeSrc":"5864:2:34","nodeType":"YulLiteral","src":"5864:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5849:3:34","nodeType":"YulIdentifier","src":"5849:3:34"},"nativeSrc":"5849:18:34","nodeType":"YulFunctionCall","src":"5849:18:34"}],"functionName":{"name":"abi_decode_address","nativeSrc":"5830:18:34","nodeType":"YulIdentifier","src":"5830:18:34"},"nativeSrc":"5830:38:34","nodeType":"YulFunctionCall","src":"5830:38:34"},"variableNames":[{"name":"value1","nativeSrc":"5820:6:34","nodeType":"YulIdentifier","src":"5820:6:34"}]},{"nativeSrc":"5877:45:34","nodeType":"YulVariableDeclaration","src":"5877:45:34","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5907:9:34","nodeType":"YulIdentifier","src":"5907:9:34"},{"kind":"number","nativeSrc":"5918:2:34","nodeType":"YulLiteral","src":"5918:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5903:3:34","nodeType":"YulIdentifier","src":"5903:3:34"},"nativeSrc":"5903:18:34","nodeType":"YulFunctionCall","src":"5903:18:34"}],"functionName":{"name":"calldataload","nativeSrc":"5890:12:34","nodeType":"YulIdentifier","src":"5890:12:34"},"nativeSrc":"5890:32:34","nodeType":"YulFunctionCall","src":"5890:32:34"},"variables":[{"name":"value","nativeSrc":"5881:5:34","nodeType":"YulTypedName","src":"5881:5:34","type":""}]},{"body":{"nativeSrc":"5992:16:34","nodeType":"YulBlock","src":"5992:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6001:1:34","nodeType":"YulLiteral","src":"6001:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"6004:1:34","nodeType":"YulLiteral","src":"6004:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5994:6:34","nodeType":"YulIdentifier","src":"5994:6:34"},"nativeSrc":"5994:12:34","nodeType":"YulFunctionCall","src":"5994:12:34"},"nativeSrc":"5994:12:34","nodeType":"YulExpressionStatement","src":"5994:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5944:5:34","nodeType":"YulIdentifier","src":"5944:5:34"},{"arguments":[{"name":"value","nativeSrc":"5955:5:34","nodeType":"YulIdentifier","src":"5955:5:34"},{"kind":"number","nativeSrc":"5962:26:34","nodeType":"YulLiteral","src":"5962:26:34","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5951:3:34","nodeType":"YulIdentifier","src":"5951:3:34"},"nativeSrc":"5951:38:34","nodeType":"YulFunctionCall","src":"5951:38:34"}],"functionName":{"name":"eq","nativeSrc":"5941:2:34","nodeType":"YulIdentifier","src":"5941:2:34"},"nativeSrc":"5941:49:34","nodeType":"YulFunctionCall","src":"5941:49:34"}],"functionName":{"name":"iszero","nativeSrc":"5934:6:34","nodeType":"YulIdentifier","src":"5934:6:34"},"nativeSrc":"5934:57:34","nodeType":"YulFunctionCall","src":"5934:57:34"},"nativeSrc":"5931:77:34","nodeType":"YulIf","src":"5931:77:34"},{"nativeSrc":"6017:15:34","nodeType":"YulAssignment","src":"6017:15:34","value":{"name":"value","nativeSrc":"6027:5:34","nodeType":"YulIdentifier","src":"6027:5:34"},"variableNames":[{"name":"value2","nativeSrc":"6017:6:34","nodeType":"YulIdentifier","src":"6017:6:34"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint96","nativeSrc":"5598:440:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5651:9:34","nodeType":"YulTypedName","src":"5651:9:34","type":""},{"name":"dataEnd","nativeSrc":"5662:7:34","nodeType":"YulTypedName","src":"5662:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5674:6:34","nodeType":"YulTypedName","src":"5674:6:34","type":""},{"name":"value1","nativeSrc":"5682:6:34","nodeType":"YulTypedName","src":"5682:6:34","type":""},{"name":"value2","nativeSrc":"5690:6:34","nodeType":"YulTypedName","src":"5690:6:34","type":""}],"src":"5598:440:34"},{"body":{"nativeSrc":"6098:382:34","nodeType":"YulBlock","src":"6098:382:34","statements":[{"nativeSrc":"6108:22:34","nodeType":"YulAssignment","src":"6108:22:34","value":{"arguments":[{"kind":"number","nativeSrc":"6122:1:34","nodeType":"YulLiteral","src":"6122:1:34","type":"","value":"1"},{"name":"data","nativeSrc":"6125:4:34","nodeType":"YulIdentifier","src":"6125:4:34"}],"functionName":{"name":"shr","nativeSrc":"6118:3:34","nodeType":"YulIdentifier","src":"6118:3:34"},"nativeSrc":"6118:12:34","nodeType":"YulFunctionCall","src":"6118:12:34"},"variableNames":[{"name":"length","nativeSrc":"6108:6:34","nodeType":"YulIdentifier","src":"6108:6:34"}]},{"nativeSrc":"6139:38:34","nodeType":"YulVariableDeclaration","src":"6139:38:34","value":{"arguments":[{"name":"data","nativeSrc":"6169:4:34","nodeType":"YulIdentifier","src":"6169:4:34"},{"kind":"number","nativeSrc":"6175:1:34","nodeType":"YulLiteral","src":"6175:1:34","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6165:3:34","nodeType":"YulIdentifier","src":"6165:3:34"},"nativeSrc":"6165:12:34","nodeType":"YulFunctionCall","src":"6165:12:34"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"6143:18:34","nodeType":"YulTypedName","src":"6143:18:34","type":""}]},{"body":{"nativeSrc":"6216:31:34","nodeType":"YulBlock","src":"6216:31:34","statements":[{"nativeSrc":"6218:27:34","nodeType":"YulAssignment","src":"6218:27:34","value":{"arguments":[{"name":"length","nativeSrc":"6232:6:34","nodeType":"YulIdentifier","src":"6232:6:34"},{"kind":"number","nativeSrc":"6240:4:34","nodeType":"YulLiteral","src":"6240:4:34","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"6228:3:34","nodeType":"YulIdentifier","src":"6228:3:34"},"nativeSrc":"6228:17:34","nodeType":"YulFunctionCall","src":"6228:17:34"},"variableNames":[{"name":"length","nativeSrc":"6218:6:34","nodeType":"YulIdentifier","src":"6218:6:34"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6196:18:34","nodeType":"YulIdentifier","src":"6196:18:34"}],"functionName":{"name":"iszero","nativeSrc":"6189:6:34","nodeType":"YulIdentifier","src":"6189:6:34"},"nativeSrc":"6189:26:34","nodeType":"YulFunctionCall","src":"6189:26:34"},"nativeSrc":"6186:61:34","nodeType":"YulIf","src":"6186:61:34"},{"body":{"nativeSrc":"6306:168:34","nodeType":"YulBlock","src":"6306:168:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6327:1:34","nodeType":"YulLiteral","src":"6327:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"6330:77:34","nodeType":"YulLiteral","src":"6330:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6320:6:34","nodeType":"YulIdentifier","src":"6320:6:34"},"nativeSrc":"6320:88:34","nodeType":"YulFunctionCall","src":"6320:88:34"},"nativeSrc":"6320:88:34","nodeType":"YulExpressionStatement","src":"6320:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6428:1:34","nodeType":"YulLiteral","src":"6428:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"6431:4:34","nodeType":"YulLiteral","src":"6431:4:34","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"6421:6:34","nodeType":"YulIdentifier","src":"6421:6:34"},"nativeSrc":"6421:15:34","nodeType":"YulFunctionCall","src":"6421:15:34"},"nativeSrc":"6421:15:34","nodeType":"YulExpressionStatement","src":"6421:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6456:1:34","nodeType":"YulLiteral","src":"6456:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"6459:4:34","nodeType":"YulLiteral","src":"6459:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6449:6:34","nodeType":"YulIdentifier","src":"6449:6:34"},"nativeSrc":"6449:15:34","nodeType":"YulFunctionCall","src":"6449:15:34"},"nativeSrc":"6449:15:34","nodeType":"YulExpressionStatement","src":"6449:15:34"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"6262:18:34","nodeType":"YulIdentifier","src":"6262:18:34"},{"arguments":[{"name":"length","nativeSrc":"6285:6:34","nodeType":"YulIdentifier","src":"6285:6:34"},{"kind":"number","nativeSrc":"6293:2:34","nodeType":"YulLiteral","src":"6293:2:34","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"6282:2:34","nodeType":"YulIdentifier","src":"6282:2:34"},"nativeSrc":"6282:14:34","nodeType":"YulFunctionCall","src":"6282:14:34"}],"functionName":{"name":"eq","nativeSrc":"6259:2:34","nodeType":"YulIdentifier","src":"6259:2:34"},"nativeSrc":"6259:38:34","nodeType":"YulFunctionCall","src":"6259:38:34"},"nativeSrc":"6256:218:34","nodeType":"YulIf","src":"6256:218:34"}]},"name":"extract_byte_array_length","nativeSrc":"6043:437:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"6078:4:34","nodeType":"YulTypedName","src":"6078:4:34","type":""}],"returnVariables":[{"name":"length","nativeSrc":"6087:6:34","nodeType":"YulTypedName","src":"6087:6:34","type":""}],"src":"6043:437:34"},{"body":{"nativeSrc":"6659:223:34","nodeType":"YulBlock","src":"6659:223:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"6676:9:34","nodeType":"YulIdentifier","src":"6676:9:34"},{"kind":"number","nativeSrc":"6687:2:34","nodeType":"YulLiteral","src":"6687:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"6669:6:34","nodeType":"YulIdentifier","src":"6669:6:34"},"nativeSrc":"6669:21:34","nodeType":"YulFunctionCall","src":"6669:21:34"},"nativeSrc":"6669:21:34","nodeType":"YulExpressionStatement","src":"6669:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6710:9:34","nodeType":"YulIdentifier","src":"6710:9:34"},{"kind":"number","nativeSrc":"6721:2:34","nodeType":"YulLiteral","src":"6721:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6706:3:34","nodeType":"YulIdentifier","src":"6706:3:34"},"nativeSrc":"6706:18:34","nodeType":"YulFunctionCall","src":"6706:18:34"},{"kind":"number","nativeSrc":"6726:2:34","nodeType":"YulLiteral","src":"6726:2:34","type":"","value":"33"}],"functionName":{"name":"mstore","nativeSrc":"6699:6:34","nodeType":"YulIdentifier","src":"6699:6:34"},"nativeSrc":"6699:30:34","nodeType":"YulFunctionCall","src":"6699:30:34"},"nativeSrc":"6699:30:34","nodeType":"YulExpressionStatement","src":"6699:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6749:9:34","nodeType":"YulIdentifier","src":"6749:9:34"},{"kind":"number","nativeSrc":"6760:2:34","nodeType":"YulLiteral","src":"6760:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6745:3:34","nodeType":"YulIdentifier","src":"6745:3:34"},"nativeSrc":"6745:18:34","nodeType":"YulFunctionCall","src":"6745:18:34"},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e65","kind":"string","nativeSrc":"6765:34:34","nodeType":"YulLiteral","src":"6765:34:34","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nativeSrc":"6738:6:34","nodeType":"YulIdentifier","src":"6738:6:34"},"nativeSrc":"6738:62:34","nodeType":"YulFunctionCall","src":"6738:62:34"},"nativeSrc":"6738:62:34","nodeType":"YulExpressionStatement","src":"6738:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6820:9:34","nodeType":"YulIdentifier","src":"6820:9:34"},{"kind":"number","nativeSrc":"6831:2:34","nodeType":"YulLiteral","src":"6831:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6816:3:34","nodeType":"YulIdentifier","src":"6816:3:34"},"nativeSrc":"6816:18:34","nodeType":"YulFunctionCall","src":"6816:18:34"},{"hexValue":"72","kind":"string","nativeSrc":"6836:3:34","nodeType":"YulLiteral","src":"6836:3:34","type":"","value":"r"}],"functionName":{"name":"mstore","nativeSrc":"6809:6:34","nodeType":"YulIdentifier","src":"6809:6:34"},"nativeSrc":"6809:31:34","nodeType":"YulFunctionCall","src":"6809:31:34"},"nativeSrc":"6809:31:34","nodeType":"YulExpressionStatement","src":"6809:31:34"},{"nativeSrc":"6849:27:34","nodeType":"YulAssignment","src":"6849:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"6861:9:34","nodeType":"YulIdentifier","src":"6861:9:34"},{"kind":"number","nativeSrc":"6872:3:34","nodeType":"YulLiteral","src":"6872:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"6857:3:34","nodeType":"YulIdentifier","src":"6857:3:34"},"nativeSrc":"6857:19:34","nodeType":"YulFunctionCall","src":"6857:19:34"},"variableNames":[{"name":"tail","nativeSrc":"6849:4:34","nodeType":"YulIdentifier","src":"6849:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6485:397:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6636:9:34","nodeType":"YulTypedName","src":"6636:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6650:4:34","nodeType":"YulTypedName","src":"6650:4:34","type":""}],"src":"6485:397:34"},{"body":{"nativeSrc":"7061:251:34","nodeType":"YulBlock","src":"7061:251:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7078:9:34","nodeType":"YulIdentifier","src":"7078:9:34"},{"kind":"number","nativeSrc":"7089:2:34","nodeType":"YulLiteral","src":"7089:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7071:6:34","nodeType":"YulIdentifier","src":"7071:6:34"},"nativeSrc":"7071:21:34","nodeType":"YulFunctionCall","src":"7071:21:34"},"nativeSrc":"7071:21:34","nodeType":"YulExpressionStatement","src":"7071:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7112:9:34","nodeType":"YulIdentifier","src":"7112:9:34"},{"kind":"number","nativeSrc":"7123:2:34","nodeType":"YulLiteral","src":"7123:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7108:3:34","nodeType":"YulIdentifier","src":"7108:3:34"},"nativeSrc":"7108:18:34","nodeType":"YulFunctionCall","src":"7108:18:34"},{"kind":"number","nativeSrc":"7128:2:34","nodeType":"YulLiteral","src":"7128:2:34","type":"","value":"61"}],"functionName":{"name":"mstore","nativeSrc":"7101:6:34","nodeType":"YulIdentifier","src":"7101:6:34"},"nativeSrc":"7101:30:34","nodeType":"YulFunctionCall","src":"7101:30:34"},"nativeSrc":"7101:30:34","nodeType":"YulExpressionStatement","src":"7101:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7151:9:34","nodeType":"YulIdentifier","src":"7151:9:34"},{"kind":"number","nativeSrc":"7162:2:34","nodeType":"YulLiteral","src":"7162:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7147:3:34","nodeType":"YulIdentifier","src":"7147:3:34"},"nativeSrc":"7147:18:34","nodeType":"YulFunctionCall","src":"7147:18:34"},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f","kind":"string","nativeSrc":"7167:34:34","nodeType":"YulLiteral","src":"7167:34:34","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nativeSrc":"7140:6:34","nodeType":"YulIdentifier","src":"7140:6:34"},"nativeSrc":"7140:62:34","nodeType":"YulFunctionCall","src":"7140:62:34"},"nativeSrc":"7140:62:34","nodeType":"YulExpressionStatement","src":"7140:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7222:9:34","nodeType":"YulIdentifier","src":"7222:9:34"},{"kind":"number","nativeSrc":"7233:2:34","nodeType":"YulLiteral","src":"7233:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7218:3:34","nodeType":"YulIdentifier","src":"7218:3:34"},"nativeSrc":"7218:18:34","nodeType":"YulFunctionCall","src":"7218:18:34"},{"hexValue":"6b656e206f776e6572206f7220617070726f76656420666f7220616c6c","kind":"string","nativeSrc":"7238:31:34","nodeType":"YulLiteral","src":"7238:31:34","type":"","value":"ken owner or approved for all"}],"functionName":{"name":"mstore","nativeSrc":"7211:6:34","nodeType":"YulIdentifier","src":"7211:6:34"},"nativeSrc":"7211:59:34","nodeType":"YulFunctionCall","src":"7211:59:34"},"nativeSrc":"7211:59:34","nodeType":"YulExpressionStatement","src":"7211:59:34"},{"nativeSrc":"7279:27:34","nodeType":"YulAssignment","src":"7279:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"7291:9:34","nodeType":"YulIdentifier","src":"7291:9:34"},{"kind":"number","nativeSrc":"7302:3:34","nodeType":"YulLiteral","src":"7302:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7287:3:34","nodeType":"YulIdentifier","src":"7287:3:34"},"nativeSrc":"7287:19:34","nodeType":"YulFunctionCall","src":"7287:19:34"},"variableNames":[{"name":"tail","nativeSrc":"7279:4:34","nodeType":"YulIdentifier","src":"7279:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"6887:425:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7038:9:34","nodeType":"YulTypedName","src":"7038:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7052:4:34","nodeType":"YulTypedName","src":"7052:4:34","type":""}],"src":"6887:425:34"},{"body":{"nativeSrc":"7491:235:34","nodeType":"YulBlock","src":"7491:235:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"7508:9:34","nodeType":"YulIdentifier","src":"7508:9:34"},{"kind":"number","nativeSrc":"7519:2:34","nodeType":"YulLiteral","src":"7519:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"7501:6:34","nodeType":"YulIdentifier","src":"7501:6:34"},"nativeSrc":"7501:21:34","nodeType":"YulFunctionCall","src":"7501:21:34"},"nativeSrc":"7501:21:34","nodeType":"YulExpressionStatement","src":"7501:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7542:9:34","nodeType":"YulIdentifier","src":"7542:9:34"},{"kind":"number","nativeSrc":"7553:2:34","nodeType":"YulLiteral","src":"7553:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7538:3:34","nodeType":"YulIdentifier","src":"7538:3:34"},"nativeSrc":"7538:18:34","nodeType":"YulFunctionCall","src":"7538:18:34"},{"kind":"number","nativeSrc":"7558:2:34","nodeType":"YulLiteral","src":"7558:2:34","type":"","value":"45"}],"functionName":{"name":"mstore","nativeSrc":"7531:6:34","nodeType":"YulIdentifier","src":"7531:6:34"},"nativeSrc":"7531:30:34","nodeType":"YulFunctionCall","src":"7531:30:34"},"nativeSrc":"7531:30:34","nodeType":"YulExpressionStatement","src":"7531:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7581:9:34","nodeType":"YulIdentifier","src":"7581:9:34"},{"kind":"number","nativeSrc":"7592:2:34","nodeType":"YulLiteral","src":"7592:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"7577:3:34","nodeType":"YulIdentifier","src":"7577:3:34"},"nativeSrc":"7577:18:34","nodeType":"YulFunctionCall","src":"7577:18:34"},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e65","kind":"string","nativeSrc":"7597:34:34","nodeType":"YulLiteral","src":"7597:34:34","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nativeSrc":"7570:6:34","nodeType":"YulIdentifier","src":"7570:6:34"},"nativeSrc":"7570:62:34","nodeType":"YulFunctionCall","src":"7570:62:34"},"nativeSrc":"7570:62:34","nodeType":"YulExpressionStatement","src":"7570:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7652:9:34","nodeType":"YulIdentifier","src":"7652:9:34"},{"kind":"number","nativeSrc":"7663:2:34","nodeType":"YulLiteral","src":"7663:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"7648:3:34","nodeType":"YulIdentifier","src":"7648:3:34"},"nativeSrc":"7648:18:34","nodeType":"YulFunctionCall","src":"7648:18:34"},{"hexValue":"72206f7220617070726f766564","kind":"string","nativeSrc":"7668:15:34","nodeType":"YulLiteral","src":"7668:15:34","type":"","value":"r or approved"}],"functionName":{"name":"mstore","nativeSrc":"7641:6:34","nodeType":"YulIdentifier","src":"7641:6:34"},"nativeSrc":"7641:43:34","nodeType":"YulFunctionCall","src":"7641:43:34"},"nativeSrc":"7641:43:34","nodeType":"YulExpressionStatement","src":"7641:43:34"},{"nativeSrc":"7693:27:34","nodeType":"YulAssignment","src":"7693:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"7705:9:34","nodeType":"YulIdentifier","src":"7705:9:34"},{"kind":"number","nativeSrc":"7716:3:34","nodeType":"YulLiteral","src":"7716:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"7701:3:34","nodeType":"YulIdentifier","src":"7701:3:34"},"nativeSrc":"7701:19:34","nodeType":"YulFunctionCall","src":"7701:19:34"},"variableNames":[{"name":"tail","nativeSrc":"7693:4:34","nodeType":"YulIdentifier","src":"7693:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"7317:409:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7468:9:34","nodeType":"YulTypedName","src":"7468:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7482:4:34","nodeType":"YulTypedName","src":"7482:4:34","type":""}],"src":"7317:409:34"},{"body":{"nativeSrc":"7783:270:34","nodeType":"YulBlock","src":"7783:270:34","statements":[{"nativeSrc":"7793:20:34","nodeType":"YulAssignment","src":"7793:20:34","value":{"arguments":[{"name":"x","nativeSrc":"7808:1:34","nodeType":"YulIdentifier","src":"7808:1:34"},{"name":"y","nativeSrc":"7811:1:34","nodeType":"YulIdentifier","src":"7811:1:34"}],"functionName":{"name":"mul","nativeSrc":"7804:3:34","nodeType":"YulIdentifier","src":"7804:3:34"},"nativeSrc":"7804:9:34","nodeType":"YulFunctionCall","src":"7804:9:34"},"variableNames":[{"name":"product","nativeSrc":"7793:7:34","nodeType":"YulIdentifier","src":"7793:7:34"}]},{"body":{"nativeSrc":"7879:168:34","nodeType":"YulBlock","src":"7879:168:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7900:1:34","nodeType":"YulLiteral","src":"7900:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"7903:77:34","nodeType":"YulLiteral","src":"7903:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7893:6:34","nodeType":"YulIdentifier","src":"7893:6:34"},"nativeSrc":"7893:88:34","nodeType":"YulFunctionCall","src":"7893:88:34"},"nativeSrc":"7893:88:34","nodeType":"YulExpressionStatement","src":"7893:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8001:1:34","nodeType":"YulLiteral","src":"8001:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"8004:4:34","nodeType":"YulLiteral","src":"8004:4:34","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"7994:6:34","nodeType":"YulIdentifier","src":"7994:6:34"},"nativeSrc":"7994:15:34","nodeType":"YulFunctionCall","src":"7994:15:34"},"nativeSrc":"7994:15:34","nodeType":"YulExpressionStatement","src":"7994:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8029:1:34","nodeType":"YulLiteral","src":"8029:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"8032:4:34","nodeType":"YulLiteral","src":"8032:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8022:6:34","nodeType":"YulIdentifier","src":"8022:6:34"},"nativeSrc":"8022:15:34","nodeType":"YulFunctionCall","src":"8022:15:34"},"nativeSrc":"8022:15:34","nodeType":"YulExpressionStatement","src":"8022:15:34"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7842:1:34","nodeType":"YulIdentifier","src":"7842:1:34"}],"functionName":{"name":"iszero","nativeSrc":"7835:6:34","nodeType":"YulIdentifier","src":"7835:6:34"},"nativeSrc":"7835:9:34","nodeType":"YulFunctionCall","src":"7835:9:34"},{"arguments":[{"name":"y","nativeSrc":"7849:1:34","nodeType":"YulIdentifier","src":"7849:1:34"},{"arguments":[{"name":"product","nativeSrc":"7856:7:34","nodeType":"YulIdentifier","src":"7856:7:34"},{"name":"x","nativeSrc":"7865:1:34","nodeType":"YulIdentifier","src":"7865:1:34"}],"functionName":{"name":"div","nativeSrc":"7852:3:34","nodeType":"YulIdentifier","src":"7852:3:34"},"nativeSrc":"7852:15:34","nodeType":"YulFunctionCall","src":"7852:15:34"}],"functionName":{"name":"eq","nativeSrc":"7846:2:34","nodeType":"YulIdentifier","src":"7846:2:34"},"nativeSrc":"7846:22:34","nodeType":"YulFunctionCall","src":"7846:22:34"}],"functionName":{"name":"or","nativeSrc":"7832:2:34","nodeType":"YulIdentifier","src":"7832:2:34"},"nativeSrc":"7832:37:34","nodeType":"YulFunctionCall","src":"7832:37:34"}],"functionName":{"name":"iszero","nativeSrc":"7825:6:34","nodeType":"YulIdentifier","src":"7825:6:34"},"nativeSrc":"7825:45:34","nodeType":"YulFunctionCall","src":"7825:45:34"},"nativeSrc":"7822:225:34","nodeType":"YulIf","src":"7822:225:34"}]},"name":"checked_mul_t_uint256","nativeSrc":"7731:322:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7762:1:34","nodeType":"YulTypedName","src":"7762:1:34","type":""},{"name":"y","nativeSrc":"7765:1:34","nodeType":"YulTypedName","src":"7765:1:34","type":""}],"returnVariables":[{"name":"product","nativeSrc":"7771:7:34","nodeType":"YulTypedName","src":"7771:7:34","type":""}],"src":"7731:322:34"},{"body":{"nativeSrc":"8090:152:34","nodeType":"YulBlock","src":"8090:152:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8107:1:34","nodeType":"YulLiteral","src":"8107:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"8110:77:34","nodeType":"YulLiteral","src":"8110:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8100:6:34","nodeType":"YulIdentifier","src":"8100:6:34"},"nativeSrc":"8100:88:34","nodeType":"YulFunctionCall","src":"8100:88:34"},"nativeSrc":"8100:88:34","nodeType":"YulExpressionStatement","src":"8100:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8204:1:34","nodeType":"YulLiteral","src":"8204:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"8207:4:34","nodeType":"YulLiteral","src":"8207:4:34","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"8197:6:34","nodeType":"YulIdentifier","src":"8197:6:34"},"nativeSrc":"8197:15:34","nodeType":"YulFunctionCall","src":"8197:15:34"},"nativeSrc":"8197:15:34","nodeType":"YulExpressionStatement","src":"8197:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8228:1:34","nodeType":"YulLiteral","src":"8228:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"8231:4:34","nodeType":"YulLiteral","src":"8231:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8221:6:34","nodeType":"YulIdentifier","src":"8221:6:34"},"nativeSrc":"8221:15:34","nodeType":"YulFunctionCall","src":"8221:15:34"},"nativeSrc":"8221:15:34","nodeType":"YulExpressionStatement","src":"8221:15:34"}]},"name":"panic_error_0x12","nativeSrc":"8058:184:34","nodeType":"YulFunctionDefinition","src":"8058:184:34"},{"body":{"nativeSrc":"8293:228:34","nodeType":"YulBlock","src":"8293:228:34","statements":[{"body":{"nativeSrc":"8324:168:34","nodeType":"YulBlock","src":"8324:168:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8345:1:34","nodeType":"YulLiteral","src":"8345:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"8348:77:34","nodeType":"YulLiteral","src":"8348:77:34","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8338:6:34","nodeType":"YulIdentifier","src":"8338:6:34"},"nativeSrc":"8338:88:34","nodeType":"YulFunctionCall","src":"8338:88:34"},"nativeSrc":"8338:88:34","nodeType":"YulExpressionStatement","src":"8338:88:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8446:1:34","nodeType":"YulLiteral","src":"8446:1:34","type":"","value":"4"},{"kind":"number","nativeSrc":"8449:4:34","nodeType":"YulLiteral","src":"8449:4:34","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"8439:6:34","nodeType":"YulIdentifier","src":"8439:6:34"},"nativeSrc":"8439:15:34","nodeType":"YulFunctionCall","src":"8439:15:34"},"nativeSrc":"8439:15:34","nodeType":"YulExpressionStatement","src":"8439:15:34"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8474:1:34","nodeType":"YulLiteral","src":"8474:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"8477:4:34","nodeType":"YulLiteral","src":"8477:4:34","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8467:6:34","nodeType":"YulIdentifier","src":"8467:6:34"},"nativeSrc":"8467:15:34","nodeType":"YulFunctionCall","src":"8467:15:34"},"nativeSrc":"8467:15:34","nodeType":"YulExpressionStatement","src":"8467:15:34"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8313:1:34","nodeType":"YulIdentifier","src":"8313:1:34"}],"functionName":{"name":"iszero","nativeSrc":"8306:6:34","nodeType":"YulIdentifier","src":"8306:6:34"},"nativeSrc":"8306:9:34","nodeType":"YulFunctionCall","src":"8306:9:34"},"nativeSrc":"8303:189:34","nodeType":"YulIf","src":"8303:189:34"},{"nativeSrc":"8501:14:34","nodeType":"YulAssignment","src":"8501:14:34","value":{"arguments":[{"name":"x","nativeSrc":"8510:1:34","nodeType":"YulIdentifier","src":"8510:1:34"},{"name":"y","nativeSrc":"8513:1:34","nodeType":"YulIdentifier","src":"8513:1:34"}],"functionName":{"name":"div","nativeSrc":"8506:3:34","nodeType":"YulIdentifier","src":"8506:3:34"},"nativeSrc":"8506:9:34","nodeType":"YulFunctionCall","src":"8506:9:34"},"variableNames":[{"name":"r","nativeSrc":"8501:1:34","nodeType":"YulIdentifier","src":"8501:1:34"}]}]},"name":"checked_div_t_uint256","nativeSrc":"8247:274:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8278:1:34","nodeType":"YulTypedName","src":"8278:1:34","type":""},{"name":"y","nativeSrc":"8281:1:34","nodeType":"YulTypedName","src":"8281:1:34","type":""}],"returnVariables":[{"name":"r","nativeSrc":"8287:1:34","nodeType":"YulTypedName","src":"8287:1:34","type":""}],"src":"8247:274:34"},{"body":{"nativeSrc":"8700:174:34","nodeType":"YulBlock","src":"8700:174:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"8717:9:34","nodeType":"YulIdentifier","src":"8717:9:34"},{"kind":"number","nativeSrc":"8728:2:34","nodeType":"YulLiteral","src":"8728:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"8710:6:34","nodeType":"YulIdentifier","src":"8710:6:34"},"nativeSrc":"8710:21:34","nodeType":"YulFunctionCall","src":"8710:21:34"},"nativeSrc":"8710:21:34","nodeType":"YulExpressionStatement","src":"8710:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8751:9:34","nodeType":"YulIdentifier","src":"8751:9:34"},{"kind":"number","nativeSrc":"8762:2:34","nodeType":"YulLiteral","src":"8762:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8747:3:34","nodeType":"YulIdentifier","src":"8747:3:34"},"nativeSrc":"8747:18:34","nodeType":"YulFunctionCall","src":"8747:18:34"},{"kind":"number","nativeSrc":"8767:2:34","nodeType":"YulLiteral","src":"8767:2:34","type":"","value":"24"}],"functionName":{"name":"mstore","nativeSrc":"8740:6:34","nodeType":"YulIdentifier","src":"8740:6:34"},"nativeSrc":"8740:30:34","nodeType":"YulFunctionCall","src":"8740:30:34"},"nativeSrc":"8740:30:34","nodeType":"YulExpressionStatement","src":"8740:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8790:9:34","nodeType":"YulIdentifier","src":"8790:9:34"},{"kind":"number","nativeSrc":"8801:2:34","nodeType":"YulLiteral","src":"8801:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"8786:3:34","nodeType":"YulIdentifier","src":"8786:3:34"},"nativeSrc":"8786:18:34","nodeType":"YulFunctionCall","src":"8786:18:34"},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","kind":"string","nativeSrc":"8806:26:34","nodeType":"YulLiteral","src":"8806:26:34","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nativeSrc":"8779:6:34","nodeType":"YulIdentifier","src":"8779:6:34"},"nativeSrc":"8779:54:34","nodeType":"YulFunctionCall","src":"8779:54:34"},"nativeSrc":"8779:54:34","nodeType":"YulExpressionStatement","src":"8779:54:34"},{"nativeSrc":"8842:26:34","nodeType":"YulAssignment","src":"8842:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"8854:9:34","nodeType":"YulIdentifier","src":"8854:9:34"},{"kind":"number","nativeSrc":"8865:2:34","nodeType":"YulLiteral","src":"8865:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8850:3:34","nodeType":"YulIdentifier","src":"8850:3:34"},"nativeSrc":"8850:18:34","nodeType":"YulFunctionCall","src":"8850:18:34"},"variableNames":[{"name":"tail","nativeSrc":"8842:4:34","nodeType":"YulIdentifier","src":"8842:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8526:348:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8677:9:34","nodeType":"YulTypedName","src":"8677:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8691:4:34","nodeType":"YulTypedName","src":"8691:4:34","type":""}],"src":"8526:348:34"},{"body":{"nativeSrc":"9053:231:34","nodeType":"YulBlock","src":"9053:231:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9070:9:34","nodeType":"YulIdentifier","src":"9070:9:34"},{"kind":"number","nativeSrc":"9081:2:34","nodeType":"YulLiteral","src":"9081:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9063:6:34","nodeType":"YulIdentifier","src":"9063:6:34"},"nativeSrc":"9063:21:34","nodeType":"YulFunctionCall","src":"9063:21:34"},"nativeSrc":"9063:21:34","nodeType":"YulExpressionStatement","src":"9063:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9104:9:34","nodeType":"YulIdentifier","src":"9104:9:34"},{"kind":"number","nativeSrc":"9115:2:34","nodeType":"YulLiteral","src":"9115:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9100:3:34","nodeType":"YulIdentifier","src":"9100:3:34"},"nativeSrc":"9100:18:34","nodeType":"YulFunctionCall","src":"9100:18:34"},{"kind":"number","nativeSrc":"9120:2:34","nodeType":"YulLiteral","src":"9120:2:34","type":"","value":"41"}],"functionName":{"name":"mstore","nativeSrc":"9093:6:34","nodeType":"YulIdentifier","src":"9093:6:34"},"nativeSrc":"9093:30:34","nodeType":"YulFunctionCall","src":"9093:30:34"},"nativeSrc":"9093:30:34","nodeType":"YulExpressionStatement","src":"9093:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9143:9:34","nodeType":"YulIdentifier","src":"9143:9:34"},{"kind":"number","nativeSrc":"9154:2:34","nodeType":"YulLiteral","src":"9154:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9139:3:34","nodeType":"YulIdentifier","src":"9139:3:34"},"nativeSrc":"9139:18:34","nodeType":"YulFunctionCall","src":"9139:18:34"},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f742061207661","kind":"string","nativeSrc":"9159:34:34","nodeType":"YulLiteral","src":"9159:34:34","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nativeSrc":"9132:6:34","nodeType":"YulIdentifier","src":"9132:6:34"},"nativeSrc":"9132:62:34","nodeType":"YulFunctionCall","src":"9132:62:34"},"nativeSrc":"9132:62:34","nodeType":"YulExpressionStatement","src":"9132:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9214:9:34","nodeType":"YulIdentifier","src":"9214:9:34"},{"kind":"number","nativeSrc":"9225:2:34","nodeType":"YulLiteral","src":"9225:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9210:3:34","nodeType":"YulIdentifier","src":"9210:3:34"},"nativeSrc":"9210:18:34","nodeType":"YulFunctionCall","src":"9210:18:34"},{"hexValue":"6c6964206f776e6572","kind":"string","nativeSrc":"9230:11:34","nodeType":"YulLiteral","src":"9230:11:34","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nativeSrc":"9203:6:34","nodeType":"YulIdentifier","src":"9203:6:34"},"nativeSrc":"9203:39:34","nodeType":"YulFunctionCall","src":"9203:39:34"},"nativeSrc":"9203:39:34","nodeType":"YulExpressionStatement","src":"9203:39:34"},{"nativeSrc":"9251:27:34","nodeType":"YulAssignment","src":"9251:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"9263:9:34","nodeType":"YulIdentifier","src":"9263:9:34"},{"kind":"number","nativeSrc":"9274:3:34","nodeType":"YulLiteral","src":"9274:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9259:3:34","nodeType":"YulIdentifier","src":"9259:3:34"},"nativeSrc":"9259:19:34","nodeType":"YulFunctionCall","src":"9259:19:34"},"variableNames":[{"name":"tail","nativeSrc":"9251:4:34","nodeType":"YulIdentifier","src":"9251:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8879:405:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9030:9:34","nodeType":"YulTypedName","src":"9030:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9044:4:34","nodeType":"YulTypedName","src":"9044:4:34","type":""}],"src":"8879:405:34"},{"body":{"nativeSrc":"9476:309:34","nodeType":"YulBlock","src":"9476:309:34","statements":[{"nativeSrc":"9486:27:34","nodeType":"YulVariableDeclaration","src":"9486:27:34","value":{"arguments":[{"name":"value0","nativeSrc":"9506:6:34","nodeType":"YulIdentifier","src":"9506:6:34"}],"functionName":{"name":"mload","nativeSrc":"9500:5:34","nodeType":"YulIdentifier","src":"9500:5:34"},"nativeSrc":"9500:13:34","nodeType":"YulFunctionCall","src":"9500:13:34"},"variables":[{"name":"length","nativeSrc":"9490:6:34","nodeType":"YulTypedName","src":"9490:6:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nativeSrc":"9561:6:34","nodeType":"YulIdentifier","src":"9561:6:34"},{"kind":"number","nativeSrc":"9569:4:34","nodeType":"YulLiteral","src":"9569:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9557:3:34","nodeType":"YulIdentifier","src":"9557:3:34"},"nativeSrc":"9557:17:34","nodeType":"YulFunctionCall","src":"9557:17:34"},{"name":"pos","nativeSrc":"9576:3:34","nodeType":"YulIdentifier","src":"9576:3:34"},{"name":"length","nativeSrc":"9581:6:34","nodeType":"YulIdentifier","src":"9581:6:34"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9522:34:34","nodeType":"YulIdentifier","src":"9522:34:34"},"nativeSrc":"9522:66:34","nodeType":"YulFunctionCall","src":"9522:66:34"},"nativeSrc":"9522:66:34","nodeType":"YulExpressionStatement","src":"9522:66:34"},{"nativeSrc":"9597:29:34","nodeType":"YulVariableDeclaration","src":"9597:29:34","value":{"arguments":[{"name":"pos","nativeSrc":"9614:3:34","nodeType":"YulIdentifier","src":"9614:3:34"},{"name":"length","nativeSrc":"9619:6:34","nodeType":"YulIdentifier","src":"9619:6:34"}],"functionName":{"name":"add","nativeSrc":"9610:3:34","nodeType":"YulIdentifier","src":"9610:3:34"},"nativeSrc":"9610:16:34","nodeType":"YulFunctionCall","src":"9610:16:34"},"variables":[{"name":"end_1","nativeSrc":"9601:5:34","nodeType":"YulTypedName","src":"9601:5:34","type":""}]},{"nativeSrc":"9635:29:34","nodeType":"YulVariableDeclaration","src":"9635:29:34","value":{"arguments":[{"name":"value1","nativeSrc":"9657:6:34","nodeType":"YulIdentifier","src":"9657:6:34"}],"functionName":{"name":"mload","nativeSrc":"9651:5:34","nodeType":"YulIdentifier","src":"9651:5:34"},"nativeSrc":"9651:13:34","nodeType":"YulFunctionCall","src":"9651:13:34"},"variables":[{"name":"length_1","nativeSrc":"9639:8:34","nodeType":"YulTypedName","src":"9639:8:34","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nativeSrc":"9712:6:34","nodeType":"YulIdentifier","src":"9712:6:34"},{"kind":"number","nativeSrc":"9720:4:34","nodeType":"YulLiteral","src":"9720:4:34","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9708:3:34","nodeType":"YulIdentifier","src":"9708:3:34"},"nativeSrc":"9708:17:34","nodeType":"YulFunctionCall","src":"9708:17:34"},{"name":"end_1","nativeSrc":"9727:5:34","nodeType":"YulIdentifier","src":"9727:5:34"},{"name":"length_1","nativeSrc":"9734:8:34","nodeType":"YulIdentifier","src":"9734:8:34"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"9673:34:34","nodeType":"YulIdentifier","src":"9673:34:34"},"nativeSrc":"9673:70:34","nodeType":"YulFunctionCall","src":"9673:70:34"},"nativeSrc":"9673:70:34","nodeType":"YulExpressionStatement","src":"9673:70:34"},{"nativeSrc":"9752:27:34","nodeType":"YulAssignment","src":"9752:27:34","value":{"arguments":[{"name":"end_1","nativeSrc":"9763:5:34","nodeType":"YulIdentifier","src":"9763:5:34"},{"name":"length_1","nativeSrc":"9770:8:34","nodeType":"YulIdentifier","src":"9770:8:34"}],"functionName":{"name":"add","nativeSrc":"9759:3:34","nodeType":"YulIdentifier","src":"9759:3:34"},"nativeSrc":"9759:20:34","nodeType":"YulFunctionCall","src":"9759:20:34"},"variableNames":[{"name":"end","nativeSrc":"9752:3:34","nodeType":"YulIdentifier","src":"9752:3:34"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"9289:496:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9444:3:34","nodeType":"YulTypedName","src":"9444:3:34","type":""},{"name":"value1","nativeSrc":"9449:6:34","nodeType":"YulTypedName","src":"9449:6:34","type":""},{"name":"value0","nativeSrc":"9457:6:34","nodeType":"YulTypedName","src":"9457:6:34","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9468:3:34","nodeType":"YulTypedName","src":"9468:3:34","type":""}],"src":"9289:496:34"},{"body":{"nativeSrc":"9964:228:34","nodeType":"YulBlock","src":"9964:228:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"9981:9:34","nodeType":"YulIdentifier","src":"9981:9:34"},{"kind":"number","nativeSrc":"9992:2:34","nodeType":"YulLiteral","src":"9992:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"9974:6:34","nodeType":"YulIdentifier","src":"9974:6:34"},"nativeSrc":"9974:21:34","nodeType":"YulFunctionCall","src":"9974:21:34"},"nativeSrc":"9974:21:34","nodeType":"YulExpressionStatement","src":"9974:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10015:9:34","nodeType":"YulIdentifier","src":"10015:9:34"},{"kind":"number","nativeSrc":"10026:2:34","nodeType":"YulLiteral","src":"10026:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10011:3:34","nodeType":"YulIdentifier","src":"10011:3:34"},"nativeSrc":"10011:18:34","nodeType":"YulFunctionCall","src":"10011:18:34"},{"kind":"number","nativeSrc":"10031:2:34","nodeType":"YulLiteral","src":"10031:2:34","type":"","value":"38"}],"functionName":{"name":"mstore","nativeSrc":"10004:6:34","nodeType":"YulIdentifier","src":"10004:6:34"},"nativeSrc":"10004:30:34","nodeType":"YulFunctionCall","src":"10004:30:34"},"nativeSrc":"10004:30:34","nodeType":"YulExpressionStatement","src":"10004:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10054:9:34","nodeType":"YulIdentifier","src":"10054:9:34"},{"kind":"number","nativeSrc":"10065:2:34","nodeType":"YulLiteral","src":"10065:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10050:3:34","nodeType":"YulIdentifier","src":"10050:3:34"},"nativeSrc":"10050:18:34","nodeType":"YulFunctionCall","src":"10050:18:34"},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061","kind":"string","nativeSrc":"10070:34:34","nodeType":"YulLiteral","src":"10070:34:34","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nativeSrc":"10043:6:34","nodeType":"YulIdentifier","src":"10043:6:34"},"nativeSrc":"10043:62:34","nodeType":"YulFunctionCall","src":"10043:62:34"},"nativeSrc":"10043:62:34","nodeType":"YulExpressionStatement","src":"10043:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10125:9:34","nodeType":"YulIdentifier","src":"10125:9:34"},{"kind":"number","nativeSrc":"10136:2:34","nodeType":"YulLiteral","src":"10136:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10121:3:34","nodeType":"YulIdentifier","src":"10121:3:34"},"nativeSrc":"10121:18:34","nodeType":"YulFunctionCall","src":"10121:18:34"},{"hexValue":"646472657373","kind":"string","nativeSrc":"10141:8:34","nodeType":"YulLiteral","src":"10141:8:34","type":"","value":"ddress"}],"functionName":{"name":"mstore","nativeSrc":"10114:6:34","nodeType":"YulIdentifier","src":"10114:6:34"},"nativeSrc":"10114:36:34","nodeType":"YulFunctionCall","src":"10114:36:34"},"nativeSrc":"10114:36:34","nodeType":"YulExpressionStatement","src":"10114:36:34"},{"nativeSrc":"10159:27:34","nodeType":"YulAssignment","src":"10159:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"10171:9:34","nodeType":"YulIdentifier","src":"10171:9:34"},{"kind":"number","nativeSrc":"10182:3:34","nodeType":"YulLiteral","src":"10182:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10167:3:34","nodeType":"YulIdentifier","src":"10167:3:34"},"nativeSrc":"10167:19:34","nodeType":"YulFunctionCall","src":"10167:19:34"},"variableNames":[{"name":"tail","nativeSrc":"10159:4:34","nodeType":"YulIdentifier","src":"10159:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9790:402:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9941:9:34","nodeType":"YulTypedName","src":"9941:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9955:4:34","nodeType":"YulTypedName","src":"9955:4:34","type":""}],"src":"9790:402:34"},{"body":{"nativeSrc":"10371:227:34","nodeType":"YulBlock","src":"10371:227:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10388:9:34","nodeType":"YulIdentifier","src":"10388:9:34"},{"kind":"number","nativeSrc":"10399:2:34","nodeType":"YulLiteral","src":"10399:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10381:6:34","nodeType":"YulIdentifier","src":"10381:6:34"},"nativeSrc":"10381:21:34","nodeType":"YulFunctionCall","src":"10381:21:34"},"nativeSrc":"10381:21:34","nodeType":"YulExpressionStatement","src":"10381:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10422:9:34","nodeType":"YulIdentifier","src":"10422:9:34"},{"kind":"number","nativeSrc":"10433:2:34","nodeType":"YulLiteral","src":"10433:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10418:3:34","nodeType":"YulIdentifier","src":"10418:3:34"},"nativeSrc":"10418:18:34","nodeType":"YulFunctionCall","src":"10418:18:34"},{"kind":"number","nativeSrc":"10438:2:34","nodeType":"YulLiteral","src":"10438:2:34","type":"","value":"37"}],"functionName":{"name":"mstore","nativeSrc":"10411:6:34","nodeType":"YulIdentifier","src":"10411:6:34"},"nativeSrc":"10411:30:34","nodeType":"YulFunctionCall","src":"10411:30:34"},"nativeSrc":"10411:30:34","nodeType":"YulExpressionStatement","src":"10411:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10461:9:34","nodeType":"YulIdentifier","src":"10461:9:34"},{"kind":"number","nativeSrc":"10472:2:34","nodeType":"YulLiteral","src":"10472:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10457:3:34","nodeType":"YulIdentifier","src":"10457:3:34"},"nativeSrc":"10457:18:34","nodeType":"YulFunctionCall","src":"10457:18:34"},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f727265637420","kind":"string","nativeSrc":"10477:34:34","nodeType":"YulLiteral","src":"10477:34:34","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nativeSrc":"10450:6:34","nodeType":"YulIdentifier","src":"10450:6:34"},"nativeSrc":"10450:62:34","nodeType":"YulFunctionCall","src":"10450:62:34"},"nativeSrc":"10450:62:34","nodeType":"YulExpressionStatement","src":"10450:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10532:9:34","nodeType":"YulIdentifier","src":"10532:9:34"},{"kind":"number","nativeSrc":"10543:2:34","nodeType":"YulLiteral","src":"10543:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10528:3:34","nodeType":"YulIdentifier","src":"10528:3:34"},"nativeSrc":"10528:18:34","nodeType":"YulFunctionCall","src":"10528:18:34"},{"hexValue":"6f776e6572","kind":"string","nativeSrc":"10548:7:34","nodeType":"YulLiteral","src":"10548:7:34","type":"","value":"owner"}],"functionName":{"name":"mstore","nativeSrc":"10521:6:34","nodeType":"YulIdentifier","src":"10521:6:34"},"nativeSrc":"10521:35:34","nodeType":"YulFunctionCall","src":"10521:35:34"},"nativeSrc":"10521:35:34","nodeType":"YulExpressionStatement","src":"10521:35:34"},{"nativeSrc":"10565:27:34","nodeType":"YulAssignment","src":"10565:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"10577:9:34","nodeType":"YulIdentifier","src":"10577:9:34"},{"kind":"number","nativeSrc":"10588:3:34","nodeType":"YulLiteral","src":"10588:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10573:3:34","nodeType":"YulIdentifier","src":"10573:3:34"},"nativeSrc":"10573:19:34","nodeType":"YulFunctionCall","src":"10573:19:34"},"variableNames":[{"name":"tail","nativeSrc":"10565:4:34","nodeType":"YulIdentifier","src":"10565:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10197:401:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10348:9:34","nodeType":"YulTypedName","src":"10348:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10362:4:34","nodeType":"YulTypedName","src":"10362:4:34","type":""}],"src":"10197:401:34"},{"body":{"nativeSrc":"10777:226:34","nodeType":"YulBlock","src":"10777:226:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"10794:9:34","nodeType":"YulIdentifier","src":"10794:9:34"},{"kind":"number","nativeSrc":"10805:2:34","nodeType":"YulLiteral","src":"10805:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"10787:6:34","nodeType":"YulIdentifier","src":"10787:6:34"},"nativeSrc":"10787:21:34","nodeType":"YulFunctionCall","src":"10787:21:34"},"nativeSrc":"10787:21:34","nodeType":"YulExpressionStatement","src":"10787:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10828:9:34","nodeType":"YulIdentifier","src":"10828:9:34"},{"kind":"number","nativeSrc":"10839:2:34","nodeType":"YulLiteral","src":"10839:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10824:3:34","nodeType":"YulIdentifier","src":"10824:3:34"},"nativeSrc":"10824:18:34","nodeType":"YulFunctionCall","src":"10824:18:34"},{"kind":"number","nativeSrc":"10844:2:34","nodeType":"YulLiteral","src":"10844:2:34","type":"","value":"36"}],"functionName":{"name":"mstore","nativeSrc":"10817:6:34","nodeType":"YulIdentifier","src":"10817:6:34"},"nativeSrc":"10817:30:34","nodeType":"YulFunctionCall","src":"10817:30:34"},"nativeSrc":"10817:30:34","nodeType":"YulExpressionStatement","src":"10817:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10867:9:34","nodeType":"YulIdentifier","src":"10867:9:34"},{"kind":"number","nativeSrc":"10878:2:34","nodeType":"YulLiteral","src":"10878:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10863:3:34","nodeType":"YulIdentifier","src":"10863:3:34"},"nativeSrc":"10863:18:34","nodeType":"YulFunctionCall","src":"10863:18:34"},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f20616464","kind":"string","nativeSrc":"10883:34:34","nodeType":"YulLiteral","src":"10883:34:34","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nativeSrc":"10856:6:34","nodeType":"YulIdentifier","src":"10856:6:34"},"nativeSrc":"10856:62:34","nodeType":"YulFunctionCall","src":"10856:62:34"},"nativeSrc":"10856:62:34","nodeType":"YulExpressionStatement","src":"10856:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10938:9:34","nodeType":"YulIdentifier","src":"10938:9:34"},{"kind":"number","nativeSrc":"10949:2:34","nodeType":"YulLiteral","src":"10949:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10934:3:34","nodeType":"YulIdentifier","src":"10934:3:34"},"nativeSrc":"10934:18:34","nodeType":"YulFunctionCall","src":"10934:18:34"},{"hexValue":"72657373","kind":"string","nativeSrc":"10954:6:34","nodeType":"YulLiteral","src":"10954:6:34","type":"","value":"ress"}],"functionName":{"name":"mstore","nativeSrc":"10927:6:34","nodeType":"YulIdentifier","src":"10927:6:34"},"nativeSrc":"10927:34:34","nodeType":"YulFunctionCall","src":"10927:34:34"},"nativeSrc":"10927:34:34","nodeType":"YulExpressionStatement","src":"10927:34:34"},{"nativeSrc":"10970:27:34","nodeType":"YulAssignment","src":"10970:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"10982:9:34","nodeType":"YulIdentifier","src":"10982:9:34"},{"kind":"number","nativeSrc":"10993:3:34","nodeType":"YulLiteral","src":"10993:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10978:3:34","nodeType":"YulIdentifier","src":"10978:3:34"},"nativeSrc":"10978:19:34","nodeType":"YulFunctionCall","src":"10978:19:34"},"variableNames":[{"name":"tail","nativeSrc":"10970:4:34","nodeType":"YulIdentifier","src":"10970:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"10603:400:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10754:9:34","nodeType":"YulTypedName","src":"10754:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10768:4:34","nodeType":"YulTypedName","src":"10768:4:34","type":""}],"src":"10603:400:34"},{"body":{"nativeSrc":"11182:182:34","nodeType":"YulBlock","src":"11182:182:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11199:9:34","nodeType":"YulIdentifier","src":"11199:9:34"},{"kind":"number","nativeSrc":"11210:2:34","nodeType":"YulLiteral","src":"11210:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11192:6:34","nodeType":"YulIdentifier","src":"11192:6:34"},"nativeSrc":"11192:21:34","nodeType":"YulFunctionCall","src":"11192:21:34"},"nativeSrc":"11192:21:34","nodeType":"YulExpressionStatement","src":"11192:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11233:9:34","nodeType":"YulIdentifier","src":"11233:9:34"},{"kind":"number","nativeSrc":"11244:2:34","nodeType":"YulLiteral","src":"11244:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11229:3:34","nodeType":"YulIdentifier","src":"11229:3:34"},"nativeSrc":"11229:18:34","nodeType":"YulFunctionCall","src":"11229:18:34"},{"kind":"number","nativeSrc":"11249:2:34","nodeType":"YulLiteral","src":"11249:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11222:6:34","nodeType":"YulIdentifier","src":"11222:6:34"},"nativeSrc":"11222:30:34","nodeType":"YulFunctionCall","src":"11222:30:34"},"nativeSrc":"11222:30:34","nodeType":"YulExpressionStatement","src":"11222:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11272:9:34","nodeType":"YulIdentifier","src":"11272:9:34"},{"kind":"number","nativeSrc":"11283:2:34","nodeType":"YulLiteral","src":"11283:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11268:3:34","nodeType":"YulIdentifier","src":"11268:3:34"},"nativeSrc":"11268:18:34","nodeType":"YulFunctionCall","src":"11268:18:34"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nativeSrc":"11288:34:34","nodeType":"YulLiteral","src":"11288:34:34","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nativeSrc":"11261:6:34","nodeType":"YulIdentifier","src":"11261:6:34"},"nativeSrc":"11261:62:34","nodeType":"YulFunctionCall","src":"11261:62:34"},"nativeSrc":"11261:62:34","nodeType":"YulExpressionStatement","src":"11261:62:34"},{"nativeSrc":"11332:26:34","nodeType":"YulAssignment","src":"11332:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"11344:9:34","nodeType":"YulIdentifier","src":"11344:9:34"},{"kind":"number","nativeSrc":"11355:2:34","nodeType":"YulLiteral","src":"11355:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11340:3:34","nodeType":"YulIdentifier","src":"11340:3:34"},"nativeSrc":"11340:18:34","nodeType":"YulFunctionCall","src":"11340:18:34"},"variableNames":[{"name":"tail","nativeSrc":"11332:4:34","nodeType":"YulIdentifier","src":"11332:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11008:356:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11159:9:34","nodeType":"YulTypedName","src":"11159:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11173:4:34","nodeType":"YulTypedName","src":"11173:4:34","type":""}],"src":"11008:356:34"},{"body":{"nativeSrc":"11543:175:34","nodeType":"YulBlock","src":"11543:175:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11560:9:34","nodeType":"YulIdentifier","src":"11560:9:34"},{"kind":"number","nativeSrc":"11571:2:34","nodeType":"YulLiteral","src":"11571:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11553:6:34","nodeType":"YulIdentifier","src":"11553:6:34"},"nativeSrc":"11553:21:34","nodeType":"YulFunctionCall","src":"11553:21:34"},"nativeSrc":"11553:21:34","nodeType":"YulExpressionStatement","src":"11553:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11594:9:34","nodeType":"YulIdentifier","src":"11594:9:34"},{"kind":"number","nativeSrc":"11605:2:34","nodeType":"YulLiteral","src":"11605:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11590:3:34","nodeType":"YulIdentifier","src":"11590:3:34"},"nativeSrc":"11590:18:34","nodeType":"YulFunctionCall","src":"11590:18:34"},{"kind":"number","nativeSrc":"11610:2:34","nodeType":"YulLiteral","src":"11610:2:34","type":"","value":"25"}],"functionName":{"name":"mstore","nativeSrc":"11583:6:34","nodeType":"YulIdentifier","src":"11583:6:34"},"nativeSrc":"11583:30:34","nodeType":"YulFunctionCall","src":"11583:30:34"},"nativeSrc":"11583:30:34","nodeType":"YulExpressionStatement","src":"11583:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11633:9:34","nodeType":"YulIdentifier","src":"11633:9:34"},{"kind":"number","nativeSrc":"11644:2:34","nodeType":"YulLiteral","src":"11644:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11629:3:34","nodeType":"YulIdentifier","src":"11629:3:34"},"nativeSrc":"11629:18:34","nodeType":"YulFunctionCall","src":"11629:18:34"},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","kind":"string","nativeSrc":"11649:27:34","nodeType":"YulLiteral","src":"11649:27:34","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nativeSrc":"11622:6:34","nodeType":"YulIdentifier","src":"11622:6:34"},"nativeSrc":"11622:55:34","nodeType":"YulFunctionCall","src":"11622:55:34"},"nativeSrc":"11622:55:34","nodeType":"YulExpressionStatement","src":"11622:55:34"},{"nativeSrc":"11686:26:34","nodeType":"YulAssignment","src":"11686:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"11698:9:34","nodeType":"YulIdentifier","src":"11698:9:34"},{"kind":"number","nativeSrc":"11709:2:34","nodeType":"YulLiteral","src":"11709:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11694:3:34","nodeType":"YulIdentifier","src":"11694:3:34"},"nativeSrc":"11694:18:34","nodeType":"YulFunctionCall","src":"11694:18:34"},"variableNames":[{"name":"tail","nativeSrc":"11686:4:34","nodeType":"YulIdentifier","src":"11686:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11369:349:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11520:9:34","nodeType":"YulTypedName","src":"11520:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11534:4:34","nodeType":"YulTypedName","src":"11534:4:34","type":""}],"src":"11369:349:34"},{"body":{"nativeSrc":"11897:240:34","nodeType":"YulBlock","src":"11897:240:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"11914:9:34","nodeType":"YulIdentifier","src":"11914:9:34"},{"kind":"number","nativeSrc":"11925:2:34","nodeType":"YulLiteral","src":"11925:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"11907:6:34","nodeType":"YulIdentifier","src":"11907:6:34"},"nativeSrc":"11907:21:34","nodeType":"YulFunctionCall","src":"11907:21:34"},"nativeSrc":"11907:21:34","nodeType":"YulExpressionStatement","src":"11907:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11948:9:34","nodeType":"YulIdentifier","src":"11948:9:34"},{"kind":"number","nativeSrc":"11959:2:34","nodeType":"YulLiteral","src":"11959:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11944:3:34","nodeType":"YulIdentifier","src":"11944:3:34"},"nativeSrc":"11944:18:34","nodeType":"YulFunctionCall","src":"11944:18:34"},{"kind":"number","nativeSrc":"11964:2:34","nodeType":"YulLiteral","src":"11964:2:34","type":"","value":"50"}],"functionName":{"name":"mstore","nativeSrc":"11937:6:34","nodeType":"YulIdentifier","src":"11937:6:34"},"nativeSrc":"11937:30:34","nodeType":"YulFunctionCall","src":"11937:30:34"},"nativeSrc":"11937:30:34","nodeType":"YulExpressionStatement","src":"11937:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11987:9:34","nodeType":"YulIdentifier","src":"11987:9:34"},{"kind":"number","nativeSrc":"11998:2:34","nodeType":"YulLiteral","src":"11998:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11983:3:34","nodeType":"YulIdentifier","src":"11983:3:34"},"nativeSrc":"11983:18:34","nodeType":"YulFunctionCall","src":"11983:18:34"},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e204552433732315265","kind":"string","nativeSrc":"12003:34:34","nodeType":"YulLiteral","src":"12003:34:34","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nativeSrc":"11976:6:34","nodeType":"YulIdentifier","src":"11976:6:34"},"nativeSrc":"11976:62:34","nodeType":"YulFunctionCall","src":"11976:62:34"},"nativeSrc":"11976:62:34","nodeType":"YulExpressionStatement","src":"11976:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12058:9:34","nodeType":"YulIdentifier","src":"12058:9:34"},{"kind":"number","nativeSrc":"12069:2:34","nodeType":"YulLiteral","src":"12069:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12054:3:34","nodeType":"YulIdentifier","src":"12054:3:34"},"nativeSrc":"12054:18:34","nodeType":"YulFunctionCall","src":"12054:18:34"},{"hexValue":"63656976657220696d706c656d656e746572","kind":"string","nativeSrc":"12074:20:34","nodeType":"YulLiteral","src":"12074:20:34","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nativeSrc":"12047:6:34","nodeType":"YulIdentifier","src":"12047:6:34"},"nativeSrc":"12047:48:34","nodeType":"YulFunctionCall","src":"12047:48:34"},"nativeSrc":"12047:48:34","nodeType":"YulExpressionStatement","src":"12047:48:34"},{"nativeSrc":"12104:27:34","nodeType":"YulAssignment","src":"12104:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"12116:9:34","nodeType":"YulIdentifier","src":"12116:9:34"},{"kind":"number","nativeSrc":"12127:3:34","nodeType":"YulLiteral","src":"12127:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12112:3:34","nodeType":"YulIdentifier","src":"12112:3:34"},"nativeSrc":"12112:19:34","nodeType":"YulFunctionCall","src":"12112:19:34"},"variableNames":[{"name":"tail","nativeSrc":"12104:4:34","nodeType":"YulIdentifier","src":"12104:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"11723:414:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11874:9:34","nodeType":"YulTypedName","src":"11874:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11888:4:34","nodeType":"YulTypedName","src":"11888:4:34","type":""}],"src":"11723:414:34"},{"body":{"nativeSrc":"12316:232:34","nodeType":"YulBlock","src":"12316:232:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12333:9:34","nodeType":"YulIdentifier","src":"12333:9:34"},{"kind":"number","nativeSrc":"12344:2:34","nodeType":"YulLiteral","src":"12344:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12326:6:34","nodeType":"YulIdentifier","src":"12326:6:34"},"nativeSrc":"12326:21:34","nodeType":"YulFunctionCall","src":"12326:21:34"},"nativeSrc":"12326:21:34","nodeType":"YulExpressionStatement","src":"12326:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12367:9:34","nodeType":"YulIdentifier","src":"12367:9:34"},{"kind":"number","nativeSrc":"12378:2:34","nodeType":"YulLiteral","src":"12378:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12363:3:34","nodeType":"YulIdentifier","src":"12363:3:34"},"nativeSrc":"12363:18:34","nodeType":"YulFunctionCall","src":"12363:18:34"},{"kind":"number","nativeSrc":"12383:2:34","nodeType":"YulLiteral","src":"12383:2:34","type":"","value":"42"}],"functionName":{"name":"mstore","nativeSrc":"12356:6:34","nodeType":"YulIdentifier","src":"12356:6:34"},"nativeSrc":"12356:30:34","nodeType":"YulFunctionCall","src":"12356:30:34"},"nativeSrc":"12356:30:34","nodeType":"YulExpressionStatement","src":"12356:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12406:9:34","nodeType":"YulIdentifier","src":"12406:9:34"},{"kind":"number","nativeSrc":"12417:2:34","nodeType":"YulLiteral","src":"12417:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12402:3:34","nodeType":"YulIdentifier","src":"12402:3:34"},"nativeSrc":"12402:18:34","nodeType":"YulFunctionCall","src":"12402:18:34"},{"hexValue":"455243323938313a20726f79616c7479206665652077696c6c20657863656564","kind":"string","nativeSrc":"12422:34:34","nodeType":"YulLiteral","src":"12422:34:34","type":"","value":"ERC2981: royalty fee will exceed"}],"functionName":{"name":"mstore","nativeSrc":"12395:6:34","nodeType":"YulIdentifier","src":"12395:6:34"},"nativeSrc":"12395:62:34","nodeType":"YulFunctionCall","src":"12395:62:34"},"nativeSrc":"12395:62:34","nodeType":"YulExpressionStatement","src":"12395:62:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12477:9:34","nodeType":"YulIdentifier","src":"12477:9:34"},{"kind":"number","nativeSrc":"12488:2:34","nodeType":"YulLiteral","src":"12488:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12473:3:34","nodeType":"YulIdentifier","src":"12473:3:34"},"nativeSrc":"12473:18:34","nodeType":"YulFunctionCall","src":"12473:18:34"},{"hexValue":"2073616c655072696365","kind":"string","nativeSrc":"12493:12:34","nodeType":"YulLiteral","src":"12493:12:34","type":"","value":" salePrice"}],"functionName":{"name":"mstore","nativeSrc":"12466:6:34","nodeType":"YulIdentifier","src":"12466:6:34"},"nativeSrc":"12466:40:34","nodeType":"YulFunctionCall","src":"12466:40:34"},"nativeSrc":"12466:40:34","nodeType":"YulExpressionStatement","src":"12466:40:34"},{"nativeSrc":"12515:27:34","nodeType":"YulAssignment","src":"12515:27:34","value":{"arguments":[{"name":"headStart","nativeSrc":"12527:9:34","nodeType":"YulIdentifier","src":"12527:9:34"},{"kind":"number","nativeSrc":"12538:3:34","nodeType":"YulLiteral","src":"12538:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12523:3:34","nodeType":"YulIdentifier","src":"12523:3:34"},"nativeSrc":"12523:19:34","nodeType":"YulFunctionCall","src":"12523:19:34"},"variableNames":[{"name":"tail","nativeSrc":"12515:4:34","nodeType":"YulIdentifier","src":"12515:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12142:406:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12293:9:34","nodeType":"YulTypedName","src":"12293:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12307:4:34","nodeType":"YulTypedName","src":"12307:4:34","type":""}],"src":"12142:406:34"},{"body":{"nativeSrc":"12727:177:34","nodeType":"YulBlock","src":"12727:177:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"12744:9:34","nodeType":"YulIdentifier","src":"12744:9:34"},{"kind":"number","nativeSrc":"12755:2:34","nodeType":"YulLiteral","src":"12755:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"12737:6:34","nodeType":"YulIdentifier","src":"12737:6:34"},"nativeSrc":"12737:21:34","nodeType":"YulFunctionCall","src":"12737:21:34"},"nativeSrc":"12737:21:34","nodeType":"YulExpressionStatement","src":"12737:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12778:9:34","nodeType":"YulIdentifier","src":"12778:9:34"},{"kind":"number","nativeSrc":"12789:2:34","nodeType":"YulLiteral","src":"12789:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12774:3:34","nodeType":"YulIdentifier","src":"12774:3:34"},"nativeSrc":"12774:18:34","nodeType":"YulFunctionCall","src":"12774:18:34"},{"kind":"number","nativeSrc":"12794:2:34","nodeType":"YulLiteral","src":"12794:2:34","type":"","value":"27"}],"functionName":{"name":"mstore","nativeSrc":"12767:6:34","nodeType":"YulIdentifier","src":"12767:6:34"},"nativeSrc":"12767:30:34","nodeType":"YulFunctionCall","src":"12767:30:34"},"nativeSrc":"12767:30:34","nodeType":"YulExpressionStatement","src":"12767:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12817:9:34","nodeType":"YulIdentifier","src":"12817:9:34"},{"kind":"number","nativeSrc":"12828:2:34","nodeType":"YulLiteral","src":"12828:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"12813:3:34","nodeType":"YulIdentifier","src":"12813:3:34"},"nativeSrc":"12813:18:34","nodeType":"YulFunctionCall","src":"12813:18:34"},{"hexValue":"455243323938313a20496e76616c696420706172616d6574657273","kind":"string","nativeSrc":"12833:29:34","nodeType":"YulLiteral","src":"12833:29:34","type":"","value":"ERC2981: Invalid parameters"}],"functionName":{"name":"mstore","nativeSrc":"12806:6:34","nodeType":"YulIdentifier","src":"12806:6:34"},"nativeSrc":"12806:57:34","nodeType":"YulFunctionCall","src":"12806:57:34"},"nativeSrc":"12806:57:34","nodeType":"YulExpressionStatement","src":"12806:57:34"},{"nativeSrc":"12872:26:34","nodeType":"YulAssignment","src":"12872:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"12884:9:34","nodeType":"YulIdentifier","src":"12884:9:34"},{"kind":"number","nativeSrc":"12895:2:34","nodeType":"YulLiteral","src":"12895:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12880:3:34","nodeType":"YulIdentifier","src":"12880:3:34"},"nativeSrc":"12880:18:34","nodeType":"YulFunctionCall","src":"12880:18:34"},"variableNames":[{"name":"tail","nativeSrc":"12872:4:34","nodeType":"YulIdentifier","src":"12872:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_d20a09dd8b4080dbbc254e38d9f607ef83a2c7a38b671ae8f8f162ffe46e2084__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"12553:351:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12704:9:34","nodeType":"YulTypedName","src":"12704:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12718:4:34","nodeType":"YulTypedName","src":"12718:4:34","type":""}],"src":"12553:351:34"},{"body":{"nativeSrc":"13112:309:34","nodeType":"YulBlock","src":"13112:309:34","statements":[{"nativeSrc":"13122:52:34","nodeType":"YulVariableDeclaration","src":"13122:52:34","value":{"kind":"number","nativeSrc":"13132:42:34","nodeType":"YulLiteral","src":"13132:42:34","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"},"variables":[{"name":"_1","nativeSrc":"13126:2:34","nodeType":"YulTypedName","src":"13126:2:34","type":""}]},{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13190:9:34","nodeType":"YulIdentifier","src":"13190:9:34"},{"arguments":[{"name":"value0","nativeSrc":"13205:6:34","nodeType":"YulIdentifier","src":"13205:6:34"},{"name":"_1","nativeSrc":"13213:2:34","nodeType":"YulIdentifier","src":"13213:2:34"}],"functionName":{"name":"and","nativeSrc":"13201:3:34","nodeType":"YulIdentifier","src":"13201:3:34"},"nativeSrc":"13201:15:34","nodeType":"YulFunctionCall","src":"13201:15:34"}],"functionName":{"name":"mstore","nativeSrc":"13183:6:34","nodeType":"YulIdentifier","src":"13183:6:34"},"nativeSrc":"13183:34:34","nodeType":"YulFunctionCall","src":"13183:34:34"},"nativeSrc":"13183:34:34","nodeType":"YulExpressionStatement","src":"13183:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13237:9:34","nodeType":"YulIdentifier","src":"13237:9:34"},{"kind":"number","nativeSrc":"13248:2:34","nodeType":"YulLiteral","src":"13248:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13233:3:34","nodeType":"YulIdentifier","src":"13233:3:34"},"nativeSrc":"13233:18:34","nodeType":"YulFunctionCall","src":"13233:18:34"},{"arguments":[{"name":"value1","nativeSrc":"13257:6:34","nodeType":"YulIdentifier","src":"13257:6:34"},{"name":"_1","nativeSrc":"13265:2:34","nodeType":"YulIdentifier","src":"13265:2:34"}],"functionName":{"name":"and","nativeSrc":"13253:3:34","nodeType":"YulIdentifier","src":"13253:3:34"},"nativeSrc":"13253:15:34","nodeType":"YulFunctionCall","src":"13253:15:34"}],"functionName":{"name":"mstore","nativeSrc":"13226:6:34","nodeType":"YulIdentifier","src":"13226:6:34"},"nativeSrc":"13226:43:34","nodeType":"YulFunctionCall","src":"13226:43:34"},"nativeSrc":"13226:43:34","nodeType":"YulExpressionStatement","src":"13226:43:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13289:9:34","nodeType":"YulIdentifier","src":"13289:9:34"},{"kind":"number","nativeSrc":"13300:2:34","nodeType":"YulLiteral","src":"13300:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13285:3:34","nodeType":"YulIdentifier","src":"13285:3:34"},"nativeSrc":"13285:18:34","nodeType":"YulFunctionCall","src":"13285:18:34"},{"name":"value2","nativeSrc":"13305:6:34","nodeType":"YulIdentifier","src":"13305:6:34"}],"functionName":{"name":"mstore","nativeSrc":"13278:6:34","nodeType":"YulIdentifier","src":"13278:6:34"},"nativeSrc":"13278:34:34","nodeType":"YulFunctionCall","src":"13278:34:34"},"nativeSrc":"13278:34:34","nodeType":"YulExpressionStatement","src":"13278:34:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13332:9:34","nodeType":"YulIdentifier","src":"13332:9:34"},{"kind":"number","nativeSrc":"13343:2:34","nodeType":"YulLiteral","src":"13343:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13328:3:34","nodeType":"YulIdentifier","src":"13328:3:34"},"nativeSrc":"13328:18:34","nodeType":"YulFunctionCall","src":"13328:18:34"},{"kind":"number","nativeSrc":"13348:3:34","nodeType":"YulLiteral","src":"13348:3:34","type":"","value":"128"}],"functionName":{"name":"mstore","nativeSrc":"13321:6:34","nodeType":"YulIdentifier","src":"13321:6:34"},"nativeSrc":"13321:31:34","nodeType":"YulFunctionCall","src":"13321:31:34"},"nativeSrc":"13321:31:34","nodeType":"YulExpressionStatement","src":"13321:31:34"},{"nativeSrc":"13361:54:34","nodeType":"YulAssignment","src":"13361:54:34","value":{"arguments":[{"name":"value3","nativeSrc":"13387:6:34","nodeType":"YulIdentifier","src":"13387:6:34"},{"arguments":[{"name":"headStart","nativeSrc":"13399:9:34","nodeType":"YulIdentifier","src":"13399:9:34"},{"kind":"number","nativeSrc":"13410:3:34","nodeType":"YulLiteral","src":"13410:3:34","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"13395:3:34","nodeType":"YulIdentifier","src":"13395:3:34"},"nativeSrc":"13395:19:34","nodeType":"YulFunctionCall","src":"13395:19:34"}],"functionName":{"name":"abi_encode_string","nativeSrc":"13369:17:34","nodeType":"YulIdentifier","src":"13369:17:34"},"nativeSrc":"13369:46:34","nodeType":"YulFunctionCall","src":"13369:46:34"},"variableNames":[{"name":"tail","nativeSrc":"13361:4:34","nodeType":"YulIdentifier","src":"13361:4:34"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"12909:512:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13057:9:34","nodeType":"YulTypedName","src":"13057:9:34","type":""},{"name":"value3","nativeSrc":"13068:6:34","nodeType":"YulTypedName","src":"13068:6:34","type":""},{"name":"value2","nativeSrc":"13076:6:34","nodeType":"YulTypedName","src":"13076:6:34","type":""},{"name":"value1","nativeSrc":"13084:6:34","nodeType":"YulTypedName","src":"13084:6:34","type":""},{"name":"value0","nativeSrc":"13092:6:34","nodeType":"YulTypedName","src":"13092:6:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13103:4:34","nodeType":"YulTypedName","src":"13103:4:34","type":""}],"src":"12909:512:34"},{"body":{"nativeSrc":"13506:169:34","nodeType":"YulBlock","src":"13506:169:34","statements":[{"body":{"nativeSrc":"13552:16:34","nodeType":"YulBlock","src":"13552:16:34","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13561:1:34","nodeType":"YulLiteral","src":"13561:1:34","type":"","value":"0"},{"kind":"number","nativeSrc":"13564:1:34","nodeType":"YulLiteral","src":"13564:1:34","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13554:6:34","nodeType":"YulIdentifier","src":"13554:6:34"},"nativeSrc":"13554:12:34","nodeType":"YulFunctionCall","src":"13554:12:34"},"nativeSrc":"13554:12:34","nodeType":"YulExpressionStatement","src":"13554:12:34"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13527:7:34","nodeType":"YulIdentifier","src":"13527:7:34"},{"name":"headStart","nativeSrc":"13536:9:34","nodeType":"YulIdentifier","src":"13536:9:34"}],"functionName":{"name":"sub","nativeSrc":"13523:3:34","nodeType":"YulIdentifier","src":"13523:3:34"},"nativeSrc":"13523:23:34","nodeType":"YulFunctionCall","src":"13523:23:34"},{"kind":"number","nativeSrc":"13548:2:34","nodeType":"YulLiteral","src":"13548:2:34","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13519:3:34","nodeType":"YulIdentifier","src":"13519:3:34"},"nativeSrc":"13519:32:34","nodeType":"YulFunctionCall","src":"13519:32:34"},"nativeSrc":"13516:52:34","nodeType":"YulIf","src":"13516:52:34"},{"nativeSrc":"13577:29:34","nodeType":"YulVariableDeclaration","src":"13577:29:34","value":{"arguments":[{"name":"headStart","nativeSrc":"13596:9:34","nodeType":"YulIdentifier","src":"13596:9:34"}],"functionName":{"name":"mload","nativeSrc":"13590:5:34","nodeType":"YulIdentifier","src":"13590:5:34"},"nativeSrc":"13590:16:34","nodeType":"YulFunctionCall","src":"13590:16:34"},"variables":[{"name":"value","nativeSrc":"13581:5:34","nodeType":"YulTypedName","src":"13581:5:34","type":""}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13639:5:34","nodeType":"YulIdentifier","src":"13639:5:34"}],"functionName":{"name":"validator_revert_bytes4","nativeSrc":"13615:23:34","nodeType":"YulIdentifier","src":"13615:23:34"},"nativeSrc":"13615:30:34","nodeType":"YulFunctionCall","src":"13615:30:34"},"nativeSrc":"13615:30:34","nodeType":"YulExpressionStatement","src":"13615:30:34"},{"nativeSrc":"13654:15:34","nodeType":"YulAssignment","src":"13654:15:34","value":{"name":"value","nativeSrc":"13664:5:34","nodeType":"YulIdentifier","src":"13664:5:34"},"variableNames":[{"name":"value0","nativeSrc":"13654:6:34","nodeType":"YulIdentifier","src":"13654:6:34"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"13426:249:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13472:9:34","nodeType":"YulTypedName","src":"13472:9:34","type":""},{"name":"dataEnd","nativeSrc":"13483:7:34","nodeType":"YulTypedName","src":"13483:7:34","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13495:6:34","nodeType":"YulTypedName","src":"13495:6:34","type":""}],"src":"13426:249:34"},{"body":{"nativeSrc":"13854:182:34","nodeType":"YulBlock","src":"13854:182:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"13871:9:34","nodeType":"YulIdentifier","src":"13871:9:34"},{"kind":"number","nativeSrc":"13882:2:34","nodeType":"YulLiteral","src":"13882:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13864:6:34","nodeType":"YulIdentifier","src":"13864:6:34"},"nativeSrc":"13864:21:34","nodeType":"YulFunctionCall","src":"13864:21:34"},"nativeSrc":"13864:21:34","nodeType":"YulExpressionStatement","src":"13864:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13905:9:34","nodeType":"YulIdentifier","src":"13905:9:34"},{"kind":"number","nativeSrc":"13916:2:34","nodeType":"YulLiteral","src":"13916:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13901:3:34","nodeType":"YulIdentifier","src":"13901:3:34"},"nativeSrc":"13901:18:34","nodeType":"YulFunctionCall","src":"13901:18:34"},{"kind":"number","nativeSrc":"13921:2:34","nodeType":"YulLiteral","src":"13921:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"13894:6:34","nodeType":"YulIdentifier","src":"13894:6:34"},"nativeSrc":"13894:30:34","nodeType":"YulFunctionCall","src":"13894:30:34"},"nativeSrc":"13894:30:34","nodeType":"YulExpressionStatement","src":"13894:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13944:9:34","nodeType":"YulIdentifier","src":"13944:9:34"},{"kind":"number","nativeSrc":"13955:2:34","nodeType":"YulLiteral","src":"13955:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13940:3:34","nodeType":"YulIdentifier","src":"13940:3:34"},"nativeSrc":"13940:18:34","nodeType":"YulFunctionCall","src":"13940:18:34"},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","kind":"string","nativeSrc":"13960:34:34","nodeType":"YulLiteral","src":"13960:34:34","type":"","value":"ERC721: mint to the zero address"}],"functionName":{"name":"mstore","nativeSrc":"13933:6:34","nodeType":"YulIdentifier","src":"13933:6:34"},"nativeSrc":"13933:62:34","nodeType":"YulFunctionCall","src":"13933:62:34"},"nativeSrc":"13933:62:34","nodeType":"YulExpressionStatement","src":"13933:62:34"},{"nativeSrc":"14004:26:34","nodeType":"YulAssignment","src":"14004:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"14016:9:34","nodeType":"YulIdentifier","src":"14016:9:34"},{"kind":"number","nativeSrc":"14027:2:34","nodeType":"YulLiteral","src":"14027:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14012:3:34","nodeType":"YulIdentifier","src":"14012:3:34"},"nativeSrc":"14012:18:34","nodeType":"YulFunctionCall","src":"14012:18:34"},"variableNames":[{"name":"tail","nativeSrc":"14004:4:34","nodeType":"YulIdentifier","src":"14004:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"13680:356:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13831:9:34","nodeType":"YulTypedName","src":"13831:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13845:4:34","nodeType":"YulTypedName","src":"13845:4:34","type":""}],"src":"13680:356:34"},{"body":{"nativeSrc":"14215:178:34","nodeType":"YulBlock","src":"14215:178:34","statements":[{"expression":{"arguments":[{"name":"headStart","nativeSrc":"14232:9:34","nodeType":"YulIdentifier","src":"14232:9:34"},{"kind":"number","nativeSrc":"14243:2:34","nodeType":"YulLiteral","src":"14243:2:34","type":"","value":"32"}],"functionName":{"name":"mstore","nativeSrc":"14225:6:34","nodeType":"YulIdentifier","src":"14225:6:34"},"nativeSrc":"14225:21:34","nodeType":"YulFunctionCall","src":"14225:21:34"},"nativeSrc":"14225:21:34","nodeType":"YulExpressionStatement","src":"14225:21:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14266:9:34","nodeType":"YulIdentifier","src":"14266:9:34"},{"kind":"number","nativeSrc":"14277:2:34","nodeType":"YulLiteral","src":"14277:2:34","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14262:3:34","nodeType":"YulIdentifier","src":"14262:3:34"},"nativeSrc":"14262:18:34","nodeType":"YulFunctionCall","src":"14262:18:34"},{"kind":"number","nativeSrc":"14282:2:34","nodeType":"YulLiteral","src":"14282:2:34","type":"","value":"28"}],"functionName":{"name":"mstore","nativeSrc":"14255:6:34","nodeType":"YulIdentifier","src":"14255:6:34"},"nativeSrc":"14255:30:34","nodeType":"YulFunctionCall","src":"14255:30:34"},"nativeSrc":"14255:30:34","nodeType":"YulExpressionStatement","src":"14255:30:34"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14305:9:34","nodeType":"YulIdentifier","src":"14305:9:34"},{"kind":"number","nativeSrc":"14316:2:34","nodeType":"YulLiteral","src":"14316:2:34","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14301:3:34","nodeType":"YulIdentifier","src":"14301:3:34"},"nativeSrc":"14301:18:34","nodeType":"YulFunctionCall","src":"14301:18:34"},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","kind":"string","nativeSrc":"14321:30:34","nodeType":"YulLiteral","src":"14321:30:34","type":"","value":"ERC721: token already minted"}],"functionName":{"name":"mstore","nativeSrc":"14294:6:34","nodeType":"YulIdentifier","src":"14294:6:34"},"nativeSrc":"14294:58:34","nodeType":"YulFunctionCall","src":"14294:58:34"},"nativeSrc":"14294:58:34","nodeType":"YulExpressionStatement","src":"14294:58:34"},{"nativeSrc":"14361:26:34","nodeType":"YulAssignment","src":"14361:26:34","value":{"arguments":[{"name":"headStart","nativeSrc":"14373:9:34","nodeType":"YulIdentifier","src":"14373:9:34"},{"kind":"number","nativeSrc":"14384:2:34","nodeType":"YulLiteral","src":"14384:2:34","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14369:3:34","nodeType":"YulIdentifier","src":"14369:3:34"},"nativeSrc":"14369:18:34","nodeType":"YulFunctionCall","src":"14369:18:34"},"variableNames":[{"name":"tail","nativeSrc":"14361:4:34","nodeType":"YulIdentifier","src":"14361:4:34"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"14041:352:34","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14192:9:34","nodeType":"YulTypedName","src":"14192:9:34","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14206:4:34","nodeType":"YulTypedName","src":"14206:4:34","type":""}],"src":"14041:352:34"}]},"contents":"{\n    { }\n    function validator_revert_bytes4(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function copy_memory_to_memory_with_cleanup(src, dst, length)\n    {\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        mstore(add(dst, length), 0)\n    }\n    function abi_encode_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)), 0x20)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_string(value0, add(headStart, 32))\n    }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, and(value0, 0xffffffffffffffffffffffffffffffffffffffff))\n        mstore(add(headStart, 32), value1)\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        let value := calldataload(add(headStart, 32))\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n        value1 := value\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n        let offset := calldataload(add(headStart, 96))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := calldataload(_2)\n        if gt(_3, _1) { panic_error_0x41() }\n        let _4 := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0\n        let memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n        if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n        mstore(memPtr, _3)\n        if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n        calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n        mstore(add(add(memPtr, _3), 32), 0)\n        value3 := memPtr\n    }\n    function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint96(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        let value := calldataload(add(headStart, 64))\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffff))) { revert(0, 0) }\n        value2 := value\n    }\n    function extract_byte_array_length(data) -> length\n    {\n        length := shr(1, data)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n        if eq(outOfPlaceEncoding, lt(length, 32))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x22)\n            revert(0, 0x24)\n        }\n    }\n    function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 33)\n        mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n        mstore(add(headStart, 96), \"r\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 61)\n        mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n        mstore(add(headStart, 96), \"ken owner or approved for all\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 45)\n        mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n        mstore(add(headStart, 96), \"r or approved\")\n        tail := add(headStart, 128)\n    }\n    function checked_mul_t_uint256(x, y) -> product\n    {\n        product := mul(x, y)\n        if iszero(or(iszero(x), eq(y, div(product, x))))\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x11)\n            revert(0, 0x24)\n        }\n    }\n    function panic_error_0x12()\n    {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n    function checked_div_t_uint256(x, y) -> r\n    {\n        if iszero(y)\n        {\n            mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n            mstore(4, 0x12)\n            revert(0, 0x24)\n        }\n        r := div(x, y)\n    }\n    function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 24)\n        mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 41)\n        mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n        mstore(add(headStart, 96), \"lid owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n    {\n        let length := mload(value0)\n        copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n        let end_1 := add(pos, length)\n        let length_1 := mload(value1)\n        copy_memory_to_memory_with_cleanup(add(value1, 0x20), end_1, length_1)\n        end := add(end_1, length_1)\n    }\n    function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 38)\n        mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n        mstore(add(headStart, 96), \"ddress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 37)\n        mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n        mstore(add(headStart, 96), \"owner\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 36)\n        mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n        mstore(add(headStart, 96), \"ress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"ERC721: approve to caller\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 50)\n        mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n        mstore(add(headStart, 96), \"ceiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_dcda5bd52710522f2cc94635314fdacbfec7cf9b64adb69f4a07b374f938990d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"ERC2981: royalty fee will exceed\")\n        mstore(add(headStart, 96), \" salePrice\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_d20a09dd8b4080dbbc254e38d9f607ef83a2c7a38b671ae8f8f162ffe46e2084__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 27)\n        mstore(add(headStart, 64), \"ERC2981: Invalid parameters\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        let _1 := 0xffffffffffffffffffffffffffffffffffffffff\n        mstore(headStart, and(value0, _1))\n        mstore(add(headStart, 32), and(value1, _1))\n        mstore(add(headStart, 64), value2)\n        mstore(add(headStart, 96), 128)\n        tail := abi_encode_string(value3, add(headStart, 128))\n    }\n    function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        validator_revert_bytes4(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 32)\n        mstore(add(headStart, 64), \"ERC721: mint to the zero address\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"ERC721: token already minted\")\n        tail := add(headStart, 96)\n    }\n}","id":34,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061016c5760003560e01c806370a08231116100cd578063b88d4fde11610081578063e985e9c511610066578063e985e9c514610321578063f2fde38b1461036a578063ffc38f561461037d57600080fd5b8063b88d4fde146102fb578063c87b56dd1461030e57600080fd5b80638da5cb5b116100b25780638da5cb5b146102c257806395d89b41146102e0578063a22cb465146102e857600080fd5b806370a08231146102a7578063715018a6146102ba57600080fd5b80632a55205a1161012457806342966c681161010957806342966c68146102605780636352211e146102735780636a6278421461028657600080fd5b80632a55205a1461020e57806342842e0e1461024d57600080fd5b8063081812fc11610155578063081812fc146101ae578063095ea7b3146101e657806323b872dd146101fb57600080fd5b806301ffc9a71461017157806306fdde0314610199575b600080fd5b61018461017f366004611da0565b610390565b60405190151581526020015b60405180910390f35b6101a16103a1565b6040516101909190611e2b565b6101c16101bc366004611e3e565b610433565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610190565b6101f96101f4366004611e7b565b610467565b005b6101f9610209366004611ea5565b610623565b61022161021c366004611ee1565b6106c4565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610190565b6101f961025b366004611ea5565b6107bb565b6101f961026e366004611e3e565b6107d6565b6101c1610281366004611e3e565b6107ea565b610299610294366004611f03565b610876565b604051908152602001610190565b6102996102b5366004611f03565b6108aa565b6101f9610978565b60085473ffffffffffffffffffffffffffffffffffffffff166101c1565b6101a161098c565b6101f96102f6366004611f1e565b61099b565b6101f9610309366004611f89565b6109aa565b6101a161031c366004611e3e565b610a52565b61018461032f366004612083565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b6101f9610378366004611f03565b610ac6565b6101f961038b3660046120b6565b610b7a565b600061039b82610b9a565b92915050565b6060600280546103b09061210e565b80601f01602080910402602001604051908101604052809291908181526020018280546103dc9061210e565b80156104295780601f106103fe57610100808354040283529160200191610429565b820191906000526020600020905b81548152906001019060200180831161040c57829003601f168201915b5050505050905090565b600061043e82610c3c565b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610472826107ea565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610588575073ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff165b610614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161052b565b61061e8383610cc7565b505050565b61062d3382610d67565b6106b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161052b565b61061e838383610e27565b600082815260016020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116808352740100000000000000000000000000000000000000009091046bffffffffffffffffffffffff1692820192909252829161077f57506040805180820190915260005473ffffffffffffffffffffffffffffffffffffffff811682527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1660208201525b6020810151600090612710906107a3906bffffffffffffffffffffffff1687612161565b6107ad919061219f565b915196919550909350505050565b61061e838383604051806020016040528060008152506109aa565b6107de611122565b6107e7816111a3565b50565b60008181526004602052604081205473ffffffffffffffffffffffffffffffffffffffff168061039b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161052b565b6000610880611122565b61088e600980546001019055565b600061089960095490565b905061039b83826111bd565b919050565b600073ffffffffffffffffffffffffffffffffffffffff821661094f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e65720000000000000000000000000000000000000000000000606482015260840161052b565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205490565b610980611122565b61098a60006111d7565b565b6060600380546103b09061210e565b6109a633838361124e565b5050565b6109b43383610d67565b610a40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161052b565b610a4c8484848461137b565b50505050565b6060610a5d82610c3c565b6000610a7460408051602081019091526000815290565b90506000815111610a945760405180602001604052806000815250610abf565b80610a9e8461141e565b604051602001610aaf9291906121da565b6040516020818303038152906040525b9392505050565b610ace611122565b73ffffffffffffffffffffffffffffffffffffffff8116610b71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161052b565b6107e7816111d7565b610b82611122565b6000610b8d84610876565b9050610a4c8184846114dc565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480610c2d57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061039b575061039b82611666565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff166107e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161052b565b600081815260066020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190610d21826107ea565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d73836107ea565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610de1575073ffffffffffffffffffffffffffffffffffffffff80821660009081526007602090815260408083209388168352929052205460ff165b80610e1f57508373ffffffffffffffffffffffffffffffffffffffff16610e0784610433565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610e47826107ea565b73ffffffffffffffffffffffffffffffffffffffff1614610eea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161052b565b73ffffffffffffffffffffffffffffffffffffffff8216610f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161052b565b8273ffffffffffffffffffffffffffffffffffffffff16610fac826107ea565b73ffffffffffffffffffffffffffffffffffffffff161461104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161052b565b600081815260066020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526005855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600490945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60085473ffffffffffffffffffffffffffffffffffffffff16331461098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161052b565b6111ac816116fd565b600090815260016020526040812055565b6109a68282604051806020016040528060008152506117d5565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161052b565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526007602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611386848484610e27565b61139284848484611878565b610a4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161052b565b6060600061142b83611a6b565b600101905060008167ffffffffffffffff81111561144b5761144b611f5a565b6040519080825280601f01601f191660200182016040528015611475576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461147f57509392505050565b6127106bffffffffffffffffffffffff8216111561157c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c2065786365656460448201527f2073616c65507269636500000000000000000000000000000000000000000000606482015260840161052b565b73ffffffffffffffffffffffffffffffffffffffff82166115f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d65746572730000000000604482015260640161052b565b60408051808201825273ffffffffffffffffffffffffffffffffffffffff93841681526bffffffffffffffffffffffff9283166020808301918252600096875260019052919094209351905190911674010000000000000000000000000000000000000000029116179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000148061039b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461039b565b6000611708826107ea565b9050611713826107ea565b600083815260066020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526005845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526004909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6117df8383611b4d565b6117ec6000848484611878565b61061e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161052b565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611a60576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906118ef903390899088908890600401612209565b6020604051808303816000875af1925050508015611948575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261194591810190612252565b60015b611a15573d808015611976576040519150601f19603f3d011682016040523d82523d6000602084013e61197b565b606091505b508051600003611a0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161052b565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610e1f565b506001949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611ab4577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611ae0576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611afe57662386f26fc10000830492506010015b6305f5e1008310611b16576305f5e100830492506008015b6127108310611b2a57612710830492506004015b60648310611b3c576064830492506002015b600a831061039b5760010192915050565b73ffffffffffffffffffffffffffffffffffffffff8216611bca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161052b565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161052b565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611ce2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161052b565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260056020908152604080832080546001019055848352600490915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146107e757600080fd5b600060208284031215611db257600080fd5b8135610abf81611d72565b60005b83811015611dd8578181015183820152602001611dc0565b50506000910152565b60008151808452611df9816020860160208601611dbd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610abf6020830184611de1565b600060208284031215611e5057600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146108a557600080fd5b60008060408385031215611e8e57600080fd5b611e9783611e57565b946020939093013593505050565b600080600060608486031215611eba57600080fd5b611ec384611e57565b9250611ed160208501611e57565b9150604084013590509250925092565b60008060408385031215611ef457600080fd5b50508035926020909101359150565b600060208284031215611f1557600080fd5b610abf82611e57565b60008060408385031215611f3157600080fd5b611f3a83611e57565b915060208301358015158114611f4f57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008060008060808587031215611f9f57600080fd5b611fa885611e57565b9350611fb660208601611e57565b925060408501359150606085013567ffffffffffffffff80821115611fda57600080fd5b818701915087601f830112611fee57600080fd5b81358181111561200057612000611f5a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561204657612046611f5a565b816040528281528a602084870101111561205f57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561209657600080fd5b61209f83611e57565b91506120ad60208401611e57565b90509250929050565b6000806000606084860312156120cb57600080fd5b6120d484611e57565b92506120e260208501611e57565b915060408401356bffffffffffffffffffffffff8116811461210357600080fd5b809150509250925092565b600181811c9082168061212257607f821691505b60208210810361215b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b808202811582820484141761039b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000826121d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600083516121ec818460208801611dbd565b835190830190612200818360208801611dbd565b01949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526122486080830184611de1565b9695505050505050565b60006020828403121561226457600080fd5b8151610abf81611d7256fea26469706673582212205a753b77fe147600d9609cb2e1f891e67783e1274c3fed07d7cfb91db9288c1d64736f6c63430008170033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x16C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0xCD JUMPI DUP1 PUSH4 0xB88D4FDE GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xE985E9C5 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x321 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x36A JUMPI DUP1 PUSH4 0xFFC38F56 EQ PUSH2 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x2FB JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x30E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2C2 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x2E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2A55205A GT PUSH2 0x124 JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x109 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x286 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2A55205A EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x24D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x81812FC GT PUSH2 0x155 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x199 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x184 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x1DA0 JUMP JUMPDEST PUSH2 0x390 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A1 PUSH2 0x3A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x190 SWAP2 SWAP1 PUSH2 0x1E2B JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x433 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x190 JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E7B JUMP JUMPDEST PUSH2 0x467 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1F9 PUSH2 0x209 CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0x623 JUMP JUMPDEST PUSH2 0x221 PUSH2 0x21C CALLDATASIZE PUSH1 0x4 PUSH2 0x1EE1 JUMP JUMPDEST PUSH2 0x6C4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP4 AND DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x190 JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0x7BB JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x7D6 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0x7EA JUMP JUMPDEST PUSH2 0x299 PUSH2 0x294 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F03 JUMP JUMPDEST PUSH2 0x876 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x190 JUMP JUMPDEST PUSH2 0x299 PUSH2 0x2B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F03 JUMP JUMPDEST PUSH2 0x8AA JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x978 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C1 JUMP JUMPDEST PUSH2 0x1A1 PUSH2 0x98C JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x2F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F1E JUMP JUMPDEST PUSH2 0x99B JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x309 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F89 JUMP JUMPDEST PUSH2 0x9AA JUMP JUMPDEST PUSH2 0x1A1 PUSH2 0x31C CALLDATASIZE PUSH1 0x4 PUSH2 0x1E3E JUMP JUMPDEST PUSH2 0xA52 JUMP JUMPDEST PUSH2 0x184 PUSH2 0x32F CALLDATASIZE PUSH1 0x4 PUSH2 0x2083 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x378 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F03 JUMP JUMPDEST PUSH2 0xAC6 JUMP JUMPDEST PUSH2 0x1F9 PUSH2 0x38B CALLDATASIZE PUSH1 0x4 PUSH2 0x20B6 JUMP JUMPDEST PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x39B DUP3 PUSH2 0xB9A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x3B0 SWAP1 PUSH2 0x210E 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 0x3DC SWAP1 PUSH2 0x210E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x429 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3FE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x429 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 0x40C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x43E DUP3 PUSH2 0xC3C JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x472 DUP3 PUSH2 0x7EA JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x534 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND EQ DUP1 PUSH2 0x588 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 CALLER DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST PUSH2 0x614 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206F7220617070726F76656420666F7220616C6C000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH2 0x61E DUP4 DUP4 PUSH2 0xCC7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x62D CALLER DUP3 PUSH2 0xD67 JUMP JUMPDEST PUSH2 0x6B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH2 0x61E DUP4 DUP4 DUP4 PUSH2 0xE27 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP1 DUP4 MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 SWAP2 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP3 SWAP2 PUSH2 0x77F JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP3 MSTORE PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x20 DUP3 ADD MSTORE JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 PUSH2 0x2710 SWAP1 PUSH2 0x7A3 SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH2 0x2161 JUMP JUMPDEST PUSH2 0x7AD SWAP2 SWAP1 PUSH2 0x219F JUMP JUMPDEST SWAP2 MLOAD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x61E DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x9AA JUMP JUMPDEST PUSH2 0x7DE PUSH2 0x1122 JUMP JUMPDEST PUSH2 0x7E7 DUP2 PUSH2 0x11A3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP1 PUSH2 0x39B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x880 PUSH2 0x1122 JUMP JUMPDEST PUSH2 0x88E PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x899 PUSH1 0x9 SLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x39B DUP4 DUP3 PUSH2 0x11BD JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x94F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6C6964206F776E65720000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x980 PUSH2 0x1122 JUMP JUMPDEST PUSH2 0x98A PUSH1 0x0 PUSH2 0x11D7 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x3B0 SWAP1 PUSH2 0x210E JUMP JUMPDEST PUSH2 0x9A6 CALLER DUP4 DUP4 PUSH2 0x124E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x9B4 CALLER DUP4 PUSH2 0xD67 JUMP JUMPDEST PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x72206F7220617070726F76656400000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH2 0xA4C DUP5 DUP5 DUP5 DUP5 PUSH2 0x137B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA5D DUP3 PUSH2 0xC3C JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA74 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xA94 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xABF JUMP JUMPDEST DUP1 PUSH2 0xA9E DUP5 PUSH2 0x141E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAAF SWAP3 SWAP2 SWAP1 PUSH2 0x21DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xACE PUSH2 0x1122 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0xB71 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH2 0x7E7 DUP2 PUSH2 0x11D7 JUMP JUMPDEST PUSH2 0xB82 PUSH2 0x1122 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB8D DUP5 PUSH2 0x876 JUMP JUMPDEST SWAP1 POP PUSH2 0xA4C DUP2 DUP5 DUP5 PUSH2 0x14DC JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x80AC58CD00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0xC2D JUMPI POP PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x5B5E139F00000000000000000000000000000000000000000000000000000000 EQ JUMPDEST DUP1 PUSH2 0x39B JUMPI POP PUSH2 0x39B DUP3 PUSH2 0x1666 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7E7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20696E76616C696420746F6B656E2049440000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0xD21 DUP3 PUSH2 0x7EA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD73 DUP4 PUSH2 0x7EA JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xDE1 JUMPI POP PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0xE1F JUMPI POP DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE07 DUP5 PUSH2 0x433 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE47 DUP3 PUSH2 0x7EA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEEA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0xF8C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x7265737300000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xFAC DUP3 PUSH2 0x7EA JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x104F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6F776E6572000000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP8 DUP2 AND DUP1 DUP7 MSTORE PUSH1 0x5 DUP6 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SSTORE SWAP1 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP7 DUP7 MSTORE PUSH1 0x4 SWAP1 SWAP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD SWAP1 SWAP3 AND DUP5 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP5 SWAP4 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x98A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH2 0x11AC DUP2 PUSH2 0x16FD JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0x9A6 DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x17D5 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12E3 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x1386 DUP5 DUP5 DUP5 PUSH2 0xE27 JUMP JUMPDEST PUSH2 0x1392 DUP5 DUP5 DUP5 DUP5 PUSH2 0x1878 JUMP JUMPDEST PUSH2 0xA4C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x142B DUP4 PUSH2 0x1A6B JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x144B JUMPI PUSH2 0x144B PUSH2 0x1F5A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1475 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x147F JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2710 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND GT ISZERO PUSH2 0x157C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243323938313A20726F79616C7479206665652077696C6C20657863656564 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x2073616C65507269636500000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x15F9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243323938313A20496E76616C696420706172616D65746572730000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP4 DUP5 AND DUP2 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 DUP4 AND PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x0 SWAP7 DUP8 MSTORE PUSH1 0x1 SWAP1 MSTORE SWAP2 SWAP1 SWAP5 KECCAK256 SWAP4 MLOAD SWAP1 MLOAD SWAP1 SWAP2 AND PUSH21 0x10000000000000000000000000000000000000000 MUL SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND PUSH32 0x2A55205A00000000000000000000000000000000000000000000000000000000 EQ DUP1 PUSH2 0x39B JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP4 AND EQ PUSH2 0x39B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1708 DUP3 PUSH2 0x7EA JUMP JUMPDEST SWAP1 POP PUSH2 0x1713 DUP3 PUSH2 0x7EA JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 SWAP1 DUP2 AND SWAP1 SWAP2 SSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND DUP1 DUP6 MSTORE PUSH1 0x5 DUP5 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD SWAP1 SSTORE DUP8 DUP6 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SSTORE MLOAD SWAP3 SWAP4 POP DUP5 SWAP3 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP4 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x17DF DUP4 DUP4 PUSH2 0x1B4D JUMP JUMPDEST PUSH2 0x17EC PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x1878 JUMP JUMPDEST PUSH2 0x61E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 AND EXTCODESIZE ISZERO PUSH2 0x1A60 JUMPI PUSH1 0x40 MLOAD PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x18EF SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2209 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1948 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x1945 SWAP2 DUP2 ADD SWAP1 PUSH2 0x2252 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1A15 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1976 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x197B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH1 0x0 SUB PUSH2 0x1A0D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x63656976657220696D706C656D656E7465720000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x52B JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 AND PUSH32 0x150B7A0200000000000000000000000000000000000000000000000000000000 EQ SWAP1 POP PUSH2 0xE1F JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x1AB4 JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1AE0 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1AFE JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x1B16 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1B2A JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1B3C JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x39B JUMPI PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH2 0x1BCA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x1C56 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND ISZERO PUSH2 0x1CE2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x52B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 ADD SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x4 SWAP1 SWAP2 MSTORE DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND DUP5 OR SWAP1 SSTORE MLOAD DUP4 SWAP3 SWAP2 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP2 AND DUP2 EQ PUSH2 0x7E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xABF DUP2 PUSH2 0x1D72 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1DD8 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1DC0 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x1DF9 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1DBD JUMP JUMPDEST PUSH1 0x1F ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xABF PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1DE1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x8A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1E8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1E97 DUP4 PUSH2 0x1E57 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1EBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1EC3 DUP5 PUSH2 0x1E57 JUMP JUMPDEST SWAP3 POP PUSH2 0x1ED1 PUSH1 0x20 DUP6 ADD PUSH2 0x1E57 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1EF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xABF DUP3 PUSH2 0x1E57 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1F31 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F3A DUP4 PUSH2 0x1E57 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1F4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1F9F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FA8 DUP6 PUSH2 0x1E57 JUMP JUMPDEST SWAP4 POP PUSH2 0x1FB6 PUSH1 0x20 DUP7 ADD PUSH2 0x1E57 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1FDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1FEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x2000 JUMPI PUSH2 0x2000 PUSH2 0x1F5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x2046 JUMPI PUSH2 0x2046 PUSH2 0x1F5A JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x205F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2096 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x209F DUP4 PUSH2 0x1E57 JUMP JUMPDEST SWAP2 POP PUSH2 0x20AD PUSH1 0x20 DUP5 ADD PUSH2 0x1E57 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x20CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x20D4 DUP5 PUSH2 0x1E57 JUMP JUMPDEST SWAP3 POP PUSH2 0x20E2 PUSH1 0x20 DUP6 ADD PUSH2 0x1E57 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x2103 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x2122 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x215B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x39B JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x21D5 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x21EC DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1DBD JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x2200 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1DBD JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP1 DUP8 AND DUP4 MSTORE DUP1 DUP7 AND PUSH1 0x20 DUP5 ADD MSTORE POP DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2248 PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x1DE1 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xABF DUP2 PUSH2 0x1D72 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GAS PUSH22 0x3B77FE147600D9609CB2E1F891E67783E1274C3FED07 0xD7 0xCF 0xB9 SAR 0xB9 0x28 DUP13 SAR PUSH5 0x736F6C6343 STOP ADDMOD OR STOP CALLER ","sourceMap":"281:1042:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;505:170;;;;;;:::i;:::-;;:::i;:::-;;;611:14:34;;604:22;586:41;;574:2;559:18;505:170:33;;;;;;;;2471:98:9;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;1814:42:34;1802:55;;;1784:74;;1772:2;1757:18;3935:167:9;1638:226:34;3468:406:9;;;;;;:::i;:::-;;:::i;:::-;;4612:296;;;;;;:::i;:::-;;:::i;1671:428:13:-;;;;;;:::i;:::-;;:::i;:::-;;;;3119:42:34;3107:55;;;3089:74;;3194:2;3179:18;;3172:34;;;;3062:18;1671:428:13;2915:297:34;4974:149:9;;;;;;:::i;:::-;;:::i;805:73:33:-;;;;;;:::i;:::-;;:::i;2190:219:9:-;;;;;;:::i;:::-;;:::i;882:206:33:-;;;;;;:::i;:::-;;:::i;:::-;;;3554:25:34;;;3542:2;3527:18;882:206:33;3408:177:34;1929:204:9;;;;;;:::i;:::-;;:::i;1824:101:0:-;;;:::i;1201:85::-;1273:6;;;;1201:85;;2633:102:9;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;5189:276::-;;;;;;:::i;:::-;;:::i;2801:::-;;;;;;:::i;:::-;;:::i;4388:162::-;;;;;;:::i;:::-;4508:25;;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;2074:198:0;;;;;;:::i;:::-;;:::i;1092:229:33:-;;;;;;:::i;:::-;;:::i;505:170::-;615:4;634:36;658:11;634:23;:36::i;:::-;627:43;505:170;-1:-1:-1;;505:170:33:o;2471:98:9:-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:9;;;;:15;:24;;;;;;;;;3935:167::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;3605:11;;:2;:11;;;3597:57;;;;;;;6687:2:34;3597:57:9;;;6669:21:34;6726:2;6706:18;;;6699:30;6765:34;6745:18;;;6738:62;6836:3;6816:18;;;6809:31;6857:19;;3597:57:9;;;;;;;;;734:10:15;3686:21:9;;;;;:62;;-1:-1:-1;4508:25:9;;;4485:4;4508:25;;;:18;:25;;;;;;;;734:10:15;4508:35:9;;;;;;;;;;3711:37;3665:170;;;;;;;7089:2:34;3665:170:9;;;7071:21:34;7128:2;7108:18;;;7101:30;7167:34;7147:18;;;7140:62;7238:31;7218:18;;;7211:59;7287:19;;3665:170:9;6887:425:34;3665:170:9;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;4612:296::-;4771:41;734:10:15;4804:7:9;4771:18;:41::i;:::-;4763:99;;;;;;;7519:2:34;4763:99:9;;;7501:21:34;7558:2;7538:18;;;7531:30;7597:34;7577:18;;;7570:62;7668:15;7648:18;;;7641:43;7701:19;;4763:99:9;7317:409:34;4763:99:9;4873:28;4883:4;4889:2;4893:7;4873:9;:28::i;1671:428:13:-;1766:7;1823:26;;;:17;:26;;;;;;;;1794:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;1766:7;;1860:90;;-1:-1:-1;1910:29:13;;;;;;;;;-1:-1:-1;1910:29:13;;;;;;;;;;;;;;;1860:90;1997:23;;;;1960:21;;2457:5;;1985:35;;1984:57;1985:35;:9;:35;:::i;:::-;1984:57;;;;:::i;:::-;2060:16;;;;;-1:-1:-1;1671:428:13;;-1:-1:-1;;;;1671:428:13:o;4974:149:9:-;5077:39;5094:4;5100:2;5104:7;5077:39;;;;;;;;;;;;:16;:39::i;805:73:33:-;1094:13:0;:11;:13::i;:::-;859:14:33::1;865:7;859:5;:14::i;:::-;805:73:::0;:::o;2190:219:9:-;2262:7;6794:16;;;:7;:16;;;;;;;;;2324:56;;;;;;;8728:2:34;2324:56:9;;;8710:21:34;8767:2;8747:18;;;8740:30;8806:26;8786:18;;;8779:54;8850:18;;2324:56:9;8526:348:34;882:206:33;941:7;1094:13:0;:11;:13::i;:::-;956:21:33::1;:9;1032:19:16::0;;1050:1;1032:19;;;945:123;956:21:33::1;984:17;1004:19;:9;918:14:16::0;;827:112;1004:19:33::1;984:39;;1029:31;1039:9;1050;1029;:31::i;1117:1:0:-;882:206:33::0;;;:::o;1929:204:9:-;2001:7;2028:19;;;2020:73;;;;;;;9081:2:34;2020:73:9;;;9063:21:34;9120:2;9100:18;;;9093:30;9159:34;9139:18;;;9132:62;9230:11;9210:18;;;9203:39;9259:19;;2020:73:9;8879:405:34;2020:73:9;-1:-1:-1;2110:16:9;;;;;;:9;:16;;;;;;;1929:204::o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2633:102:9:-;2689:13;2721:7;2714:14;;;;;:::i;4169:153::-;4263:52;734:10:15;4296:8:9;4306;4263:18;:52::i;:::-;4169:153;;:::o;5189:276::-;5319:41;734:10:15;5352:7:9;5319:18;:41::i;:::-;5311:99;;;;;;;7519:2:34;5311:99:9;;;7501:21:34;7558:2;7538:18;;;7531:30;7597:34;7577:18;;;7570:62;7668:15;7648:18;;;7641:43;7701:19;;5311:99:9;7317:409:34;5311:99:9;5420:38;5434:4;5440:2;5444:7;5453:4;5420:13;:38::i;:::-;5189:276;;;;:::o;2801:::-;2874:13;2899:23;2914:7;2899:14;:23::i;:::-;2933:21;2957:10;3395:9;;;;;;;;;-1:-1:-1;3395:9:9;;;3319:92;2957:10;2933:34;;3008:1;2990:7;2984:21;:25;:86;;;;;;;;;;;;;;;;;3036:7;3045:18;:7;:16;:18::i;:::-;3019:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2984:86;2977:93;2801:276;-1:-1:-1;;;2801:276:9:o;2074:198:0:-;1094:13;:11;:13::i;:::-;2162:22:::1;::::0;::::1;2154:73;;;::::0;::::1;::::0;;9992:2:34;2154:73:0::1;::::0;::::1;9974:21:34::0;10031:2;10011:18;;;10004:30;10070:34;10050:18;;;10043:62;10141:8;10121:18;;;10114:36;10167:19;;2154:73:0::1;9790:402:34::0;2154:73:0::1;2237:28;2256:8;2237:18;:28::i;1092:229:33:-:0;1094:13:0;:11;:13::i;:::-;1221:15:33::1;1239;1244:9;1239:4;:15::i;:::-;1221:33;;1260:56;1277:7;1286:15;1303:12;1260:16;:56::i;1570:300:9:-:0;1672:4;1707:40;;;1722:25;1707:40;;:104;;-1:-1:-1;1763:48:9;;;1778:33;1763:48;1707:104;:156;;;;1827:36;1851:11;1827:23;:36::i;13240:133::-;7185:4;6794:16;;;:7;:16;;;;;;;;13313:53;;;;;;;8728:2:34;13313:53:9;;;8710:21:34;8767:2;8747:18;;;8740:30;8806:26;8786:18;;;8779:54;8850:18;;13313:53:9;8526:348:34;12572:171:9;12646:24;;;;:15;:24;;;;;:29;;;;;;;;;;;;;:24;;12699:23;12646:24;12699:14;:23::i;:::-;12690:46;;;;;;;;;;;;12572:171;;:::o;7404:261::-;7497:4;7513:13;7529:23;7544:7;7529:14;:23::i;:::-;7513:39;;7581:5;7570:16;;:7;:16;;;:52;;;-1:-1:-1;4508:25:9;;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7590:32;7570:87;;;;7650:7;7626:31;;:20;7638:7;7626:11;:20::i;:::-;:31;;;7570:87;7562:96;7404:261;-1:-1:-1;;;;7404:261:9:o;11257:1203::-;11381:4;11354:31;;:23;11369:7;11354:14;:23::i;:::-;:31;;;11346:81;;;;;;;10399:2:34;11346:81:9;;;10381:21:34;10438:2;10418:18;;;10411:30;10477:34;10457:18;;;10450:62;10548:7;10528:18;;;10521:35;10573:19;;11346:81:9;10197:401:34;11346:81:9;11445:16;;;11437:65;;;;;;;10805:2:34;11437:65:9;;;10787:21:34;10844:2;10824:18;;;10817:30;10883:34;10863:18;;;10856:62;10954:6;10934:18;;;10927:34;10978:19;;11437:65:9;10603:400:34;11437:65:9;11682:4;11655:31;;:23;11670:7;11655:14;:23::i;:::-;:31;;;11647:81;;;;;;;10399:2:34;11647:81:9;;;10381:21:34;10438:2;10418:18;;;10411:30;10477:34;10457:18;;;10450:62;10548:7;10528:18;;;10521:35;10573:19;;11647:81:9;10197:401:34;11647:81:9;11797:24;;;;:15;:24;;;;;;;;11790:31;;;;;;;;;;12265:15;;;;;;:9;:15;;;;;:20;;;;;;12299:13;;;;;;;;;:18;;11790:31;12299:18;;;12337:16;;;:7;:16;;;;;;:21;;;;;;;;;;12374:27;;11813:7;;12374:27;;;3538:336;3468:406;;:::o;1359:130:0:-;1273:6;;1422:23;1273:6;734:10:15;1422:23:0;1414:68;;;;;;;11210:2:34;1414:68:0;;;11192:21:34;;;11229:18;;;11222:30;11288:34;11268:18;;;11261:62;11340:18;;1414:68:0;11008:356:34;679:122:33;743:20;755:7;743:11;:20::i;:::-;4027:26:13;;;;:17;:26;;;;;4020:33;805:73:33:o;7995:108:9:-;8070:26;8080:2;8084:7;8070:26;;;;;;;;;;;;:9;:26::i;2426:187:0:-;2518:6;;;;2534:17;;;;;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;12879:277:9:-;12999:8;12990:17;;:5;:17;;;12982:55;;;;;;;11571:2:34;12982:55:9;;;11553:21:34;11610:2;11590:18;;;11583:30;11649:27;11629:18;;;11622:55;11694:18;;12982:55:9;11369:349:34;12982:55:9;13047:25;;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;;;;;;;;;;;;13108:41;;586::34;;;13108::9;;559:18:34;13108:41:9;;;;;;;12879:277;;;:::o;6326:267::-;6438:28;6448:4;6454:2;6458:7;6438:9;:28::i;:::-;6484:47;6507:4;6513:2;6517:7;6526:4;6484:22;:47::i;:::-;6476:110;;;;;;;11925:2:34;6476:110:9;;;11907:21:34;11964:2;11944:18;;;11937:30;12003:34;11983:18;;;11976:62;12074:20;12054:18;;;12047:48;12112:19;;6476:110:9;11723:414:34;447:696:19;503:13;552:14;569:17;580:5;569:10;:17::i;:::-;589:1;569:21;552:38;;604:20;638:6;627:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;627:18:19;-1:-1:-1;604:41:19;-1:-1:-1;765:28:19;;;781:2;765:28;820:280;851:5;;990:8;985:2;974:14;;969:30;851:5;956:44;1044:2;1035:11;;;-1:-1:-1;1064:21:19;820:280;1064:21;-1:-1:-1;1120:6:19;447:696;-1:-1:-1;;;447:696:19:o;3491:351:13:-;2457:5;3608:33;;;;;3600:88;;;;;;;12344:2:34;3600:88:13;;;12326:21:34;12383:2;12363:18;;;12356:30;12422:34;12402:18;;;12395:62;12493:12;12473:18;;;12466:40;12523:19;;3600:88:13;12142:406:34;3600:88:13;3706:22;;;3698:62;;;;;;;12755:2:34;3698:62:13;;;12737:21:34;12794:2;12774:18;;;12767:30;12833:29;12813:18;;;12806:57;12880:18;;3698:62:13;12553:351:34;3698:62:13;3800:35;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3771:26:13;;;:17;:26;;;;;;:64;;;;;;;;;;;;;;3491:351::o;1408:213::-;1510:4;1533:41;;;1548:26;1533:41;;:81;;-1:-1:-1;952:25:23;937:40;;;;1578:36:13;829:155:23;10171:762:9;10230:13;10246:23;10261:7;10246:14;:23::i;:::-;10230:39;;10441:23;10456:7;10441:14;:23::i;:::-;10509:24;;;;:15;:24;;;;;;;;10502:31;;;;;;;;;;10749:16;;;;;:9;:16;;;;;:21;;;;;;10797:16;;;:7;:16;;;;;;10790:23;;;;;;;10829:36;10433:31;;-1:-1:-1;10525:7:9;;10829:36;;10509:24;;10829:36;4169:153;;:::o;8324:279::-;8418:18;8424:2;8428:7;8418:5;:18::i;:::-;8467:53;8498:1;8502:2;8506:7;8515:4;8467:22;:53::i;:::-;8446:150;;;;;;;11925:2:34;8446:150:9;;;11907:21:34;11964:2;11944:18;;;11937:30;12003:34;11983:18;;;11976:62;12074:20;12054:18;;;12047:48;12112:19;;8446:150:9;11723:414:34;13925:831:9;14074:4;14094:13;;;1702:19:14;:23;14090:660:9;;14129:71;;;;;:36;;;;;;:71;;734:10:15;;14180:4:9;;14186:7;;14195:4;;14129:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14129:71:9;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14125:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14367:6;:13;14384:1;14367:18;14363:321;;14409:60;;;;;11925:2:34;14409:60:9;;;11907:21:34;11964:2;11944:18;;;11937:30;12003:34;11983:18;;;11976:62;12074:20;12054:18;;;12047:48;12112:19;;14409:60:9;11723:414:34;14363:321:9;14636:6;14630:13;14621:6;14617:2;14613:15;14606:38;14125:573;14250:51;;14260:41;14250:51;;-1:-1:-1;14243:58:9;;14090:660;-1:-1:-1;14735:4:9;13925:831;;;;;;:::o;10139:916:25:-;10192:7;;10276:8;10267:17;;10263:103;;10313:8;10304:17;;;-1:-1:-1;10349:2:25;10339:12;10263:103;10392:8;10383:5;:17;10379:103;;10429:8;10420:17;;;-1:-1:-1;10465:2:25;10455:12;10379:103;10508:8;10499:5;:17;10495:103;;10545:8;10536:17;;;-1:-1:-1;10581:2:25;10571:12;10495:103;10624:7;10615:5;:16;10611:100;;10660:7;10651:16;;;-1:-1:-1;10695:1:25;10685:11;10611:100;10737:7;10728:5;:16;10724:100;;10773:7;10764:16;;;-1:-1:-1;10808:1:25;10798:11;10724:100;10850:7;10841:5;:16;10837:100;;10886:7;10877:16;;;-1:-1:-1;10921:1:25;10911:11;10837:100;10963:7;10954:5;:16;10950:66;;11000:1;10990:11;11042:6;10139:916;-1:-1:-1;;10139:916:25:o;8925:920:9:-;9004:16;;;8996:61;;;;;;;13882:2:34;8996:61:9;;;13864:21:34;;;13901:18;;;13894:30;13960:34;13940:18;;;13933:62;14012:18;;8996:61:9;13680:356:34;8996:61:9;7185:4;6794:16;;;:7;:16;;;;;;;;7208:31;9067:58;;;;;;;14243:2:34;9067:58:9;;;14225:21:34;14282:2;14262:18;;;14255:30;14321;14301:18;;;14294:58;14369:18;;9067:58:9;14041:352:34;9067:58:9;7185:4;6794:16;;;:7;:16;;;;;;;;7208:31;9271:58;;;;;;;14243:2:34;9271:58:9;;;14225:21:34;14282:2;14262:18;;;14255:30;14321;14301:18;;;14294:58;14369:18;;9271:58:9;14041:352:34;9271:58:9;9671:13;;;;;;;:9;:13;;;;;;;;:18;;9688:1;9671:18;;;9710:16;;;:7;:16;;;;;;:21;;;;;;;;9747:33;9718:7;;9671:13;;9747:33;;9671:13;;9747:33;4169:153;;:::o;14:177:34:-;99:66;92:5;88:78;81:5;78:89;68:117;;181:1;178;171:12;196:245;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:30;405:5;381:30;:::i;638:250::-;723:1;733:113;747:6;744:1;741:13;733:113;;;823:11;;;817:18;804:11;;;797:39;769:2;762:10;733:113;;;-1:-1:-1;;880:1:34;862:16;;855:27;638:250::o;893:330::-;935:3;973:5;967:12;1000:6;995:3;988:19;1016:76;1085:6;1078:4;1073:3;1069:14;1062:4;1055:5;1051:16;1016:76;:::i;:::-;1137:2;1125:15;1142:66;1121:88;1112:98;;;;1212:4;1108:109;;893:330;-1:-1:-1;;893:330:34:o;1228:220::-;1377:2;1366:9;1359:21;1340:4;1397:45;1438:2;1427:9;1423:18;1415:6;1397:45;:::i;1453:180::-;1512:6;1565:2;1553:9;1544:7;1540:23;1536:32;1533:52;;;1581:1;1578;1571:12;1533:52;-1:-1:-1;1604:23:34;;1453:180;-1:-1:-1;1453:180:34:o;1869:196::-;1937:20;;1997:42;1986:54;;1976:65;;1966:93;;2055:1;2052;2045:12;2070:254;2138:6;2146;2199:2;2187:9;2178:7;2174:23;2170:32;2167:52;;;2215:1;2212;2205:12;2167:52;2238:29;2257:9;2238:29;:::i;:::-;2228:39;2314:2;2299:18;;;;2286:32;;-1:-1:-1;;;2070:254:34:o;2329:328::-;2406:6;2414;2422;2475:2;2463:9;2454:7;2450:23;2446:32;2443:52;;;2491:1;2488;2481:12;2443:52;2514:29;2533:9;2514:29;:::i;:::-;2504:39;;2562:38;2596:2;2585:9;2581:18;2562:38;:::i;:::-;2552:48;;2647:2;2636:9;2632:18;2619:32;2609:42;;2329:328;;;;;:::o;2662:248::-;2730:6;2738;2791:2;2779:9;2770:7;2766:23;2762:32;2759:52;;;2807:1;2804;2797:12;2759:52;-1:-1:-1;;2830:23:34;;;2900:2;2885:18;;;2872:32;;-1:-1:-1;2662:248:34:o;3217:186::-;3276:6;3329:2;3317:9;3308:7;3304:23;3300:32;3297:52;;;3345:1;3342;3335:12;3297:52;3368:29;3387:9;3368:29;:::i;3590:347::-;3655:6;3663;3716:2;3704:9;3695:7;3691:23;3687:32;3684:52;;;3732:1;3729;3722:12;3684:52;3755:29;3774:9;3755:29;:::i;:::-;3745:39;;3834:2;3823:9;3819:18;3806:32;3881:5;3874:13;3867:21;3860:5;3857:32;3847:60;;3903:1;3900;3893:12;3847:60;3926:5;3916:15;;;3590:347;;;;;:::o;3942:184::-;3994:77;3991:1;3984:88;4091:4;4088:1;4081:15;4115:4;4112:1;4105:15;4131:1197;4226:6;4234;4242;4250;4303:3;4291:9;4282:7;4278:23;4274:33;4271:53;;;4320:1;4317;4310:12;4271:53;4343:29;4362:9;4343:29;:::i;:::-;4333:39;;4391:38;4425:2;4414:9;4410:18;4391:38;:::i;:::-;4381:48;;4476:2;4465:9;4461:18;4448:32;4438:42;;4531:2;4520:9;4516:18;4503:32;4554:18;4595:2;4587:6;4584:14;4581:34;;;4611:1;4608;4601:12;4581:34;4649:6;4638:9;4634:22;4624:32;;4694:7;4687:4;4683:2;4679:13;4675:27;4665:55;;4716:1;4713;4706:12;4665:55;4752:2;4739:16;4774:2;4770;4767:10;4764:36;;;4780:18;;:::i;:::-;4914:2;4908:9;4976:4;4968:13;;4819:66;4964:22;;;4988:2;4960:31;4956:40;4944:53;;;5012:18;;;5032:22;;;5009:46;5006:72;;;5058:18;;:::i;:::-;5098:10;5094:2;5087:22;5133:2;5125:6;5118:18;5173:7;5168:2;5163;5159;5155:11;5151:20;5148:33;5145:53;;;5194:1;5191;5184:12;5145:53;5250:2;5245;5241;5237:11;5232:2;5224:6;5220:15;5207:46;5295:1;5290:2;5285;5277:6;5273:15;5269:24;5262:35;5316:6;5306:16;;;;;;;4131:1197;;;;;;;:::o;5333:260::-;5401:6;5409;5462:2;5450:9;5441:7;5437:23;5433:32;5430:52;;;5478:1;5475;5468:12;5430:52;5501:29;5520:9;5501:29;:::i;:::-;5491:39;;5549:38;5583:2;5572:9;5568:18;5549:38;:::i;:::-;5539:48;;5333:260;;;;;:::o;5598:440::-;5674:6;5682;5690;5743:2;5731:9;5722:7;5718:23;5714:32;5711:52;;;5759:1;5756;5749:12;5711:52;5782:29;5801:9;5782:29;:::i;:::-;5772:39;;5830:38;5864:2;5853:9;5849:18;5830:38;:::i;:::-;5820:48;;5918:2;5907:9;5903:18;5890:32;5962:26;5955:5;5951:38;5944:5;5941:49;5931:77;;6004:1;6001;5994:12;5931:77;6027:5;6017:15;;;5598:440;;;;;:::o;6043:437::-;6122:1;6118:12;;;;6165;;;6186:61;;6240:4;6232:6;6228:17;6218:27;;6186:61;6293:2;6285:6;6282:14;6262:18;6259:38;6256:218;;6330:77;6327:1;6320:88;6431:4;6428:1;6421:15;6459:4;6456:1;6449:15;6256:218;;6043:437;;;:::o;7731:322::-;7804:9;;;7835;;7852:15;;;7846:22;;7832:37;7822:225;;7903:77;7900:1;7893:88;8004:4;8001:1;7994:15;8032:4;8029:1;8022:15;8247:274;8287:1;8313;8303:189;;8348:77;8345:1;8338:88;8449:4;8446:1;8439:15;8477:4;8474:1;8467:15;8303:189;-1:-1:-1;8506:9:34;;8247:274::o;9289:496::-;9468:3;9506:6;9500:13;9522:66;9581:6;9576:3;9569:4;9561:6;9557:17;9522:66;:::i;:::-;9651:13;;9610:16;;;;9673:70;9651:13;9610:16;9720:4;9708:17;;9673:70;:::i;:::-;9759:20;;9289:496;-1:-1:-1;;;;9289:496:34:o;12909:512::-;13103:4;13132:42;13213:2;13205:6;13201:15;13190:9;13183:34;13265:2;13257:6;13253:15;13248:2;13237:9;13233:18;13226:43;;13305:6;13300:2;13289:9;13285:18;13278:34;13348:3;13343:2;13332:9;13328:18;13321:31;13369:46;13410:3;13399:9;13395:19;13387:6;13369:46;:::i;:::-;13361:54;12909:512;-1:-1:-1;;;;;;12909:512:34:o;13426:249::-;13495:6;13548:2;13536:9;13527:7;13523:23;13519:32;13516:52;;;13564:1;13561;13554:12;13516:52;13596:9;13590:16;13615:30;13639:5;13615:30;:::i"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address)":"6a627842","mintWithRoyalty(address,address,uint96)":"ffc38f56","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","renounceOwnership()":"715018a6","royaltyInfo(uint256,uint256)":"2a55205a","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"royaltyReceiver\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"feeNumerator\",\"type\":\"uint96\"}],\"name\":\"mintWithRoyalty\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"salePrice\",\"type\":\"uint256\"}],\"name\":\"royaltyInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"royaltyInfo(uint256,uint256)\":{\"details\":\"Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of exchange. The royalty amount is denominated and should be paid in that same unit of exchange.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"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/test/ERC721Royalty.sol\":\"ERC721Royalty\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"@openzeppelin/contracts/interfaces/IERC2981.sol\":{\"keccak256\":\"0x3976825a61df20457730b79ad0ac9c8908e3c7978ed9bf090c67137c91256b5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f3fe369b6d0e101844b425f1d08e35bf512962d0590b1f80decb8130c9a6890\",\"dweb:/ipfs/QmXCan6wX4qwJkdR1VvsYLeq8JTB2YxRHLucpuXpsKAvzQ\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x2c309e7df9e05e6ce15bedfe74f3c61b467fc37e0fae9eab496acf5ea0bbd7ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7063b5c98711a98018ba4635ac74cee1c1cfa2ea01099498e062699ed9530005\",\"dweb:/ipfs/QmeJ8rGXkcv7RrqLdAW8PCXPAykxVsddfYY6g5NaTwmRFE\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/token/common/ERC2981.sol\":{\"keccak256\":\"0x990a4133f88b07f92724903f42bb25cdaeca0cf255fb48df26568c40e7c919c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d37620d637eabaa4f4a5deca2d81ee9af18d3c7818acf9091cf15658932a1233\",\"dweb:/ipfs/QmVc3jtXfYFoFyeUwvSo55ZbRt6sVjYfJWafJBPZoAsFvF\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"contracts/test/ERC721Royalty.sol\":{\"keccak256\":\"0xb78b5db251e232510959e035b37ee4e29388ddf2a81c9e1466f134d0a9ff6ecd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d052011a9e1adc43ba1bdda6a46a27788f9d8a93f7fab500d78df0accf91e74\",\"dweb:/ipfs/QmXcQKUrEK5jzH1b1K7vZ7MztHAy2VEQ6ntHtfw1dbV3i6\"]}},\"version\":1}"}}}}}