{"id":"2a232e778ea9e808a6a82afe637e5a4e","_format":"hh-sol-build-info-1","solcVersion":"0.8.20","solcLongVersion":"0.8.20+commit.a1b79de6","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/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/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/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/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/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/Config.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity 0.8.20;\n\ncontract Config {\n\n\tstruct Config_ {\n\t\tuint128 depositBaseFee;\n\t\tuint32 depositFeeRate;\n\t\tuint32 finalizeTxGas;\n\t}\n\n\tConfig_ public config;\n\n\tuint32 public constant MAXPCT = 1000000;\n\n\tevent UpdateConfig(Config_ config);\n\n\tfunction _updateConfig(Config_ memory _config) internal {\n\t\tconfig = _config;\n\t\temit UpdateConfig(config);\n\t}\n\n\tfunction _updateDepositBaseFee(uint128 _depositBaseFee) internal {\n\t\tconfig.depositBaseFee = _depositBaseFee;\n \t\temit UpdateConfig(config);\n\t}\n\n\tfunction _updateDepositFeeRate(uint32 _depositFeeRate) internal {\n\t\trequire(_depositFeeRate <= MAXPCT / 20, \"fee rate must be less or equal than 5%\");\n\t\tconfig.depositFeeRate = _depositFeeRate;\n \t\temit UpdateConfig(config);\n\t}\n\n\tfunction _updateFinalizeTxGas(uint32 _finalizeTxGas) internal {\n\t\tconfig.finalizeTxGas = _finalizeTxGas;\n \t\temit UpdateConfig(config);\n\t}\n\n}\n"},"contracts/Controller.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity 0.8.20;\n\nimport \"@openzeppelin/contracts/access/Ownable2Step.sol\";\nimport \"./Relayers.sol\";\nimport \"./Config.sol\";\n\ncontract Controller is Relayers, Config, Ownable2Step {\n\tbool public paused;\n\n\tmodifier wherNotPaused() {\n\t\trequire(!paused, \"paused!\");\n\t\t_;\n\t}\n\n\tconstructor(Config_ memory _config) Ownable2Step() {\n\t\t_addRelayer(owner());\n\t\t_updateConfig(_config);\n\t}\n\n\tfunction pause() external onlyOwner {\n\t\trequire(!paused, \"already paused\");\n\t\tpaused = true;\n\t}\n\n\tfunction unpause() external onlyOwner {\n\t\trequire(paused, \"not paused\");\n\t\tpaused = false;\n\t}\n\n\tfunction addRelayer(address relayer) external onlyOwner {\n\t\t_addRelayer(relayer);\n\t}\n\n\tfunction removeRelayer(address relayer) external onlyOwner {\n\t\t_removeRelayer(relayer);\n\t}\n\n\tfunction updateConfig(Config_ memory _config) external onlyOwner {\n\t\t_updateConfig(_config);\n\t}\n\n\tfunction updateDepositBaseFee(uint128 _depositBaseFee) external onlyOwner {\n\t\t_updateDepositBaseFee(_depositBaseFee);\n\t}\n\n\tfunction updateDepositFeeRate(uint32 _depositFeeRate) external onlyOwner {\n\t\t_updateDepositFeeRate(_depositFeeRate);\n\t}\n\n\tfunction updateFinalizeTxGas(uint32 _finalizeTxGas) external onlyOwner {\n\t\t_updateFinalizeTxGas(_finalizeTxGas);\n\t}\n\n}\n"},"contracts/ETHDeliver.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity 0.8.20;\n\nimport \"@openzeppelin/contracts/utils/cryptography/EIP712.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"./Controller.sol\";\n\ncontract ETHDeliver is Controller, EIP712 {\n\n\t/// @dev keccak256(\"DepositorWithdraw(bytes32 logHash,address from,address to,uint256 amount)\")\n\tbytes32 public DepositorWithdrawTypesHash = keccak256(\"DepositorWithdraw(bytes32 logHash,address from,address to,uint256 amount)\");\n\n\t/// @dev keccak256(abi.encodePacked(txHash,logIndex))\n\tmapping(bytes32 => bool) public logHashes;\n\n\tmapping(bytes32 => bool) public depositorWithdrawals;\n\n\tevent Deposit(uint256 srcChainId, uint256 dstChainId, address from, address to, uint256 amount, uint256 fee, uint32 timeoutAt);\n\n\tevent DepositorWithdrawn(DepositorWithdrawal w);\n\n\tevent Finalize(address relayer, uint256 srcChainId, uint256 dstChainId, bytes32 logHash, address to, uint256 amount, uint256 fee);\n\n\tevent EmergencyWithdraw(address admin, address to, IERC20 token, uint256 amount);\n\n\tstruct DepositorWithdrawal{\n\t\tbytes32 logHash;\n\t\taddress from;\n\t\taddress to;\n\t\tuint256 amount;\n\t\tbytes depositorSig;\n\t\tbytes adminSig;\n\t}\n\n\tstruct FinalizeTxMeta {\n\t\tuint256 srcChainId; \n\t\tbytes32 logHash; \n\t\taddress to; \n\t\tuint256 amount;\n\t\tuint32 timeoutAt;\n\t}\n\n\tmodifier ensureDepositorWithdraw(bytes32 logHash) {\n\t\trequire(!depositorWithdrawals[logHash], \"deposits already withdraw\");\n\t\tdepositorWithdrawals[logHash] = true;\n\t\t_;\n\t}\n\n\tmodifier ensureTx(bytes32 logHash) {\n\t\trequire(!logHashes[logHash], \"tx finalized\");\n\t\tlogHashes[logHash] = true;\n\t\t_;\n\t}\n\n\tmodifier notTimeout(uint32 timeoutAt) {\n\t\trequire(block.timestamp <= timeoutAt, \"tx timeout\");\n\t\t_;\n\t}\n\n\tconstructor(Config_ memory config) Controller(config) EIP712(\"ETHDELIVER\", \"v1\") {\n\t}\n\n\tfunction deposit(address to, uint256 dstChainId, uint32 timeoutAt) external payable notTimeout(timeoutAt) wherNotPaused {\n\t\tuint256 value = msg.value;\n\t\tuint256 fee = depositFee(value);\n\t\trequire(value >= fee, \"insufficient value for deposit fee\");\n\t\tvalue -= fee;\n\t\t_transfer(owner(), fee);\n\t\temit Deposit(chainId(), dstChainId, msg.sender, to, value, fee, timeoutAt);\n\t}\n\n\tfunction mulFinalize(FinalizeTxMeta[] memory metas) external onlyRelayer {\n\t\tfor (uint256 i = 0; i < metas.length; i++) {\n\t\t\tFinalizeTxMeta memory meta = metas[i];\n\t\t\trequire(!logHashes[meta.logHash], \"tx finalized\");\n\t\t\tlogHashes[meta.logHash] = true;\n\t\t\t_finalize(meta.srcChainId, meta.logHash, meta.to, meta.amount);\n\t\t}\n\t}\n\n\tfunction finalize(FinalizeTxMeta memory meta) external ensureTx(meta.logHash) notTimeout(meta.timeoutAt) onlyRelayer wherNotPaused {\n\t\t_finalize(meta.srcChainId, meta.logHash, meta.to, meta.amount);\n\t}\n\n\tfunction _finalize(uint256 srcChainId, bytes32 logHash, address to, uint256 amount) internal {\n\t\tuint256 fee = finalizeTxGasFee();\n\t\trequire(amount >= fee, \"insufficient amount for finalize fee\");\n\t\tamount -= fee;\n\t\t_transfer(to, amount);\n\t\t_transfer(msg.sender, fee);\n\t\temit Finalize(msg.sender, srcChainId, chainId(), logHash, to, amount, fee);\n\t}\n\n\tfunction depositFee(uint256 amount) public view returns(uint256) {\n\t\treturn config.depositBaseFee + (amount * config.depositFeeRate / MAXPCT);\n\t}\n\n\tfunction finalizeTxGasFee() public view returns (uint256) {\n\t    return config.finalizeTxGas * gasPrice();\n\t}\n\n\tfunction _transfer(address to, uint256 value) internal {\n\t\t(bool success, ) = to.call{ value: value }(\"\");\n\t\trequire(success, \"transfer failed\");\n\t}\n\n\tfunction depositorWithdraw(DepositorWithdrawal memory w) external ensureDepositorWithdraw(w.logHash) wherNotPaused {\n\t\tbytes32 hash = hashTypedDataV4ForDepositorWithdraw(w.logHash, w.from, w.to, w.amount);\n\t\trequire(SignatureChecker.isValidSignatureNow(w.from, hash, w.depositorSig), \"invalid depositor\");\n\t\trequire(SignatureChecker.isValidSignatureNow(owner(), hash, w.adminSig), \"invalid admin\");\n\t\t_transfer(w.to, w.amount);\n\t\temit DepositorWithdrawn(w);\n\t}\n\n\tfunction hashTypedDataV4ForDepositorWithdraw(\n\t\tbytes32 logHash,\n\t\taddress from,\n\t\taddress to,\n\t\tuint256 amount\n\t) public view returns (bytes32) {\n\t\treturn _hashTypedDataV4(keccak256(abi.encode(DepositorWithdrawTypesHash, logHash, from, to, amount)));\n\t}\n\n\tfunction emergencyWithdraw(IERC20 token, address to, uint256 amount) external onlyOwner {\n\t\tif (address(token) == address(0)) {\n\t\t\t(bool success, ) = to.call{ value: amount }(\"\");\n\t\t\trequire(success, \"withdraw eth failed\");\n\t\t} else {\n\t\t\ttoken.transfer(to, amount);\n\t\t}\n\t\temit EmergencyWithdraw(msg.sender, to, token, amount);\n\t}\n\n\tfunction chainId() public view returns (uint256 id) {\n\t\tassembly {\n\t\t\tid := chainid()\n\t\t}\n\t}\n\n\tfunction gasPrice() public view returns (uint256 price) {\n\t\tassembly {\n\t\t\tprice := gasprice()\n\t\t}\n\t}\n\n\treceive() external payable {}\n}\n"},"contracts/Relayers.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity 0.8.20;\n\ncontract Relayers {\n\tmapping(address => bool) public relayers;\n\n\tevent AddRelayer(address relayer);\n\tevent RemoveRelayer(address relayer);\n\n\tmodifier onlyRelayer() {\n\t\trequire(relayers[msg.sender], \"caller is not a relayer\");\n\t\t_;\n\t}\n\n\tfunction _addRelayer(address relayer) internal {\n\t\trequire(!relayers[relayer], \"relayer exists\");\n\t\trelayers[relayer] = true;\n\t\temit AddRelayer(relayer);\n\t}\n\n\tfunction _removeRelayer(address relayer) internal {\n\t\trequire(relayers[relayer], \"nonexistent relayer\");\n\t\trelayers[relayer] = true;\n\t\temit RemoveRelayer(relayer);\n\t}\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200,"details":{"yul":false}},"outputSelection":{"*":{"*":["storageLayout","abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc","evm.gasEstimates","storageLayout"],"":["ast"]}},"evmVersion":"paris","metadata":{"useLiteralContent":true}}},"output":{"sources":{"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[342],"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":343,"src":"127:30:0","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4,"name":"Context","nameLocations":["683:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":342,"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,342],"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":324,"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":324,"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":[342],"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,342],"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":324,"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/IERC5267.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/IERC5267.sol","exportedSymbols":{"IERC5267":[234]},"id":235,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":211,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:3"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC5267","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":234,"linearizedBaseContracts":[234],"name":"IERC5267","nameLocation":"142:8:3","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":212,"nodeType":"StructuredDocumentation","src":"157:84:3","text":" @dev MAY be emitted to signal that the domain could have changed."},"eventSelector":"0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31","id":214,"name":"EIP712DomainChanged","nameLocation":"252:19:3","nodeType":"EventDefinition","parameters":{"id":213,"nodeType":"ParameterList","parameters":[],"src":"271:2:3"},"src":"246:28:3"},{"documentation":{"id":215,"nodeType":"StructuredDocumentation","src":"280:140:3","text":" @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n signature."},"functionSelector":"84b0196e","id":233,"implemented":false,"kind":"function","modifiers":[],"name":"eip712Domain","nameLocation":"434:12:3","nodeType":"FunctionDefinition","parameters":{"id":216,"nodeType":"ParameterList","parameters":[],"src":"446:2:3"},"returnParameters":{"id":232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":218,"mutability":"mutable","name":"fields","nameLocation":"516:6:3","nodeType":"VariableDeclaration","scope":233,"src":"509:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":217,"name":"bytes1","nodeType":"ElementaryTypeName","src":"509:6:3","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"},{"constant":false,"id":220,"mutability":"mutable","name":"name","nameLocation":"550:4:3","nodeType":"VariableDeclaration","scope":233,"src":"536:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":219,"name":"string","nodeType":"ElementaryTypeName","src":"536:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":222,"mutability":"mutable","name":"version","nameLocation":"582:7:3","nodeType":"VariableDeclaration","scope":233,"src":"568:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":221,"name":"string","nodeType":"ElementaryTypeName","src":"568:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":224,"mutability":"mutable","name":"chainId","nameLocation":"611:7:3","nodeType":"VariableDeclaration","scope":233,"src":"603:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":223,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":226,"mutability":"mutable","name":"verifyingContract","nameLocation":"640:17:3","nodeType":"VariableDeclaration","scope":233,"src":"632:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":225,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":228,"mutability":"mutable","name":"salt","nameLocation":"679:4:3","nodeType":"VariableDeclaration","scope":233,"src":"671:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"671:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":231,"mutability":"mutable","name":"extensions","nameLocation":"714:10:3","nodeType":"VariableDeclaration","scope":233,"src":"697:27:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":229,"name":"uint256","nodeType":"ElementaryTypeName","src":"697:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":230,"nodeType":"ArrayTypeName","src":"697:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"495:239:3"},"scope":234,"src":"425:310:3","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":235,"src":"132:605:3","usedErrors":[],"usedEvents":[214]}],"src":"107:631:3"},"id":3},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[312]},"id":313,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":236,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:4"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":237,"nodeType":"StructuredDocumentation","src":"131:70:4","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":312,"linearizedBaseContracts":[312],"name":"IERC20","nameLocation":"212:6:4","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":238,"nodeType":"StructuredDocumentation","src":"225:158:4","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":246,"name":"Transfer","nameLocation":"394:8:4","nodeType":"EventDefinition","parameters":{"id":245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":240,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:4","nodeType":"VariableDeclaration","scope":246,"src":"403:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":239,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":242,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:4","nodeType":"VariableDeclaration","scope":246,"src":"425:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":241,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":244,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:4","nodeType":"VariableDeclaration","scope":246,"src":"445:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":243,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:4"},"src":"388:72:4"},{"anonymous":false,"documentation":{"id":247,"nodeType":"StructuredDocumentation","src":"466:148:4","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":255,"name":"Approval","nameLocation":"625:8:4","nodeType":"EventDefinition","parameters":{"id":254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":249,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:4","nodeType":"VariableDeclaration","scope":255,"src":"634:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":248,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":251,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:4","nodeType":"VariableDeclaration","scope":255,"src":"657:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":253,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:4","nodeType":"VariableDeclaration","scope":255,"src":"682:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":252,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:4"},"src":"619:78:4"},{"documentation":{"id":256,"nodeType":"StructuredDocumentation","src":"703:66:4","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":261,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:4","nodeType":"FunctionDefinition","parameters":{"id":257,"nodeType":"ParameterList","parameters":[],"src":"794:2:4"},"returnParameters":{"id":260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":261,"src":"820:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":258,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:4"},"scope":312,"src":"774:55:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":262,"nodeType":"StructuredDocumentation","src":"835:72:4","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":269,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:4","nodeType":"FunctionDefinition","parameters":{"id":265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":264,"mutability":"mutable","name":"account","nameLocation":"939:7:4","nodeType":"VariableDeclaration","scope":269,"src":"931:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":263,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:4"},"returnParameters":{"id":268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":269,"src":"971:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":266,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:4"},"scope":312,"src":"912:68:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":270,"nodeType":"StructuredDocumentation","src":"986:202:4","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":279,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:4","nodeType":"FunctionDefinition","parameters":{"id":275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":272,"mutability":"mutable","name":"to","nameLocation":"1219:2:4","nodeType":"VariableDeclaration","scope":279,"src":"1211:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":271,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":274,"mutability":"mutable","name":"amount","nameLocation":"1231:6:4","nodeType":"VariableDeclaration","scope":279,"src":"1223:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":273,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:4"},"returnParameters":{"id":278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":279,"src":"1257:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":276,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:4"},"scope":312,"src":"1193:70:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":280,"nodeType":"StructuredDocumentation","src":"1269:264:4","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":289,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:4","nodeType":"FunctionDefinition","parameters":{"id":285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":282,"mutability":"mutable","name":"owner","nameLocation":"1565:5:4","nodeType":"VariableDeclaration","scope":289,"src":"1557:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":281,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":284,"mutability":"mutable","name":"spender","nameLocation":"1580:7:4","nodeType":"VariableDeclaration","scope":289,"src":"1572:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":283,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:4"},"returnParameters":{"id":288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":289,"src":"1612:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":286,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:4"},"scope":312,"src":"1538:83:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":290,"nodeType":"StructuredDocumentation","src":"1627:642:4","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":299,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:4","nodeType":"FunctionDefinition","parameters":{"id":295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":292,"mutability":"mutable","name":"spender","nameLocation":"2299:7:4","nodeType":"VariableDeclaration","scope":299,"src":"2291:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":291,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":294,"mutability":"mutable","name":"amount","nameLocation":"2316:6:4","nodeType":"VariableDeclaration","scope":299,"src":"2308:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":293,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:4"},"returnParameters":{"id":298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":299,"src":"2342:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":296,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:4"},"scope":312,"src":"2274:74:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":300,"nodeType":"StructuredDocumentation","src":"2354:287:4","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":311,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:4","nodeType":"FunctionDefinition","parameters":{"id":307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":302,"mutability":"mutable","name":"from","nameLocation":"2676:4:4","nodeType":"VariableDeclaration","scope":311,"src":"2668:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":301,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":304,"mutability":"mutable","name":"to","nameLocation":"2690:2:4","nodeType":"VariableDeclaration","scope":311,"src":"2682:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":303,"name":"address","nodeType":"ElementaryTypeName","src":"2682:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":306,"mutability":"mutable","name":"amount","nameLocation":"2702:6:4","nodeType":"VariableDeclaration","scope":311,"src":"2694:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":305,"name":"uint256","nodeType":"ElementaryTypeName","src":"2694:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:42:4"},"returnParameters":{"id":310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":311,"src":"2728:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":308,"name":"bool","nodeType":"ElementaryTypeName","src":"2728:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2727:6:4"},"scope":312,"src":"2646:88:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":313,"src":"202:2534:4","usedErrors":[],"usedEvents":[246,255]}],"src":"106:2631:4"},"id":4},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[342]},"id":343,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":314,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:5"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":315,"nodeType":"StructuredDocumentation","src":"126:496:5","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":342,"linearizedBaseContracts":[342],"name":"Context","nameLocation":"641:7:5","nodeType":"ContractDefinition","nodes":[{"body":{"id":323,"nodeType":"Block","src":"717:34:5","statements":[{"expression":{"expression":{"id":320,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"734:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"738:6:5","memberName":"sender","nodeType":"MemberAccess","src":"734:10:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":319,"id":322,"nodeType":"Return","src":"727:17:5"}]},"id":324,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"664:10:5","nodeType":"FunctionDefinition","parameters":{"id":316,"nodeType":"ParameterList","parameters":[],"src":"674:2:5"},"returnParameters":{"id":319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":324,"src":"708:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":317,"name":"address","nodeType":"ElementaryTypeName","src":"708:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"707:9:5"},"scope":342,"src":"655:96:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":332,"nodeType":"Block","src":"824:32:5","statements":[{"expression":{"expression":{"id":329,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"841:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:4:5","memberName":"data","nodeType":"MemberAccess","src":"841:8:5","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":328,"id":331,"nodeType":"Return","src":"834:15:5"}]},"id":333,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"766:8:5","nodeType":"FunctionDefinition","parameters":{"id":325,"nodeType":"ParameterList","parameters":[],"src":"774:2:5"},"returnParameters":{"id":328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":333,"src":"808:14:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":326,"name":"bytes","nodeType":"ElementaryTypeName","src":"808:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"807:16:5"},"scope":342,"src":"757:99:5","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":340,"nodeType":"Block","src":"934:25:5","statements":[{"expression":{"hexValue":"30","id":338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":337,"id":339,"nodeType":"Return","src":"944:8:5"}]},"id":341,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"871:20:5","nodeType":"FunctionDefinition","parameters":{"id":334,"nodeType":"ParameterList","parameters":[],"src":"891:2:5"},"returnParameters":{"id":337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":341,"src":"925:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":335,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"924:9:5"},"scope":342,"src":"862:97:5","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":343,"src":"623:338:5","usedErrors":[],"usedEvents":[]}],"src":"101:861:5"},"id":5},"@openzeppelin/contracts/utils/ShortStrings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/ShortStrings.sol","exportedSymbols":{"ShortString":[347],"ShortStrings":[558],"StorageSlot":[668]},"id":559,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":344,"literals":["solidity","^","0.8",".8"],"nodeType":"PragmaDirective","src":"106:23:6"},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"./StorageSlot.sol","id":345,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":559,"sourceUnit":669,"src":"131:27:6","symbolAliases":[],"unitAlias":""},{"canonicalName":"ShortString","id":347,"name":"ShortString","nameLocation":"333:11:6","nodeType":"UserDefinedValueTypeDefinition","src":"328:28:6","underlyingType":{"id":346,"name":"bytes32","nodeType":"ElementaryTypeName","src":"348:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"abstract":false,"baseContracts":[],"canonicalName":"ShortStrings","contractDependencies":[],"contractKind":"library","documentation":{"id":348,"nodeType":"StructuredDocumentation","src":"358:876:6","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":558,"linearizedBaseContracts":[558],"name":"ShortStrings","nameLocation":"1243:12:6","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":351,"mutability":"constant","name":"_FALLBACK_SENTINEL","nameLocation":"1350:18:6","nodeType":"VariableDeclaration","scope":558,"src":"1325:112:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1325:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030304646","id":350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1371:66:6","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0x00000000000000000000000000000000000000000000000000000000000000FF"},"visibility":"private"},{"errorSelector":"305a27a9","id":355,"name":"StringTooLong","nameLocation":"1450:13:6","nodeType":"ErrorDefinition","parameters":{"id":354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":353,"mutability":"mutable","name":"str","nameLocation":"1471:3:6","nodeType":"VariableDeclaration","scope":355,"src":"1464:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":352,"name":"string","nodeType":"ElementaryTypeName","src":"1464:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1463:12:6"},"src":"1444:32:6"},{"errorSelector":"b3512b0c","id":357,"name":"InvalidShortString","nameLocation":"1487:18:6","nodeType":"ErrorDefinition","parameters":{"id":356,"nodeType":"ParameterList","parameters":[],"src":"1505:2:6"},"src":"1481:27:6"},{"body":{"id":400,"nodeType":"Block","src":"1767:208:6","statements":[{"assignments":[367],"declarations":[{"constant":false,"id":367,"mutability":"mutable","name":"bstr","nameLocation":"1790:4:6","nodeType":"VariableDeclaration","scope":400,"src":"1777:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":366,"name":"bytes","nodeType":"ElementaryTypeName","src":"1777:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":372,"initialValue":{"arguments":[{"id":370,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"1803:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1797:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":368,"name":"bytes","nodeType":"ElementaryTypeName","src":"1797:5:6","typeDescriptions":{}}},"id":371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1797:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1777:30:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":373,"name":"bstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"1821:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1826:6:6","memberName":"length","nodeType":"MemberAccess","src":"1821:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3331","id":375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1835:2:6","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"1821:16:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":382,"nodeType":"IfStatement","src":"1817:72:6","trueBody":{"id":381,"nodeType":"Block","src":"1839:50:6","statements":[{"errorCall":{"arguments":[{"id":378,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"1874:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":377,"name":"StringTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":355,"src":"1860:13:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1860:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":380,"nodeType":"RevertStatement","src":"1853:25:6"}]}},{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":391,"name":"bstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"1946:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1938:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1938:7:6","typeDescriptions":{}}},"id":392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1938:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1930:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":387,"name":"uint256","nodeType":"ElementaryTypeName","src":"1930:7:6","typeDescriptions":{}}},"id":393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1930:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"expression":{"id":394,"name":"bstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"1955:4:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1960:6:6","memberName":"length","nodeType":"MemberAccess","src":"1955:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1930:36:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1922:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:6","typeDescriptions":{}}},"id":397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1922:45:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":383,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":347,"src":"1905:11:6","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$347_$","typeString":"type(ShortString)"}},"id":384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1917:4:6","memberName":"wrap","nodeType":"MemberAccess","src":"1905:16:6","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_ShortString_$347_$","typeString":"function (bytes32) pure returns (ShortString)"}},"id":398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1905:63:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"functionReturnParameters":365,"id":399,"nodeType":"Return","src":"1898:70:6"}]},"documentation":{"id":358,"nodeType":"StructuredDocumentation","src":"1514:170:6","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":401,"implemented":true,"kind":"function","modifiers":[],"name":"toShortString","nameLocation":"1698:13:6","nodeType":"FunctionDefinition","parameters":{"id":361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":360,"mutability":"mutable","name":"str","nameLocation":"1726:3:6","nodeType":"VariableDeclaration","scope":401,"src":"1712:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":359,"name":"string","nodeType":"ElementaryTypeName","src":"1712:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1711:19:6"},"returnParameters":{"id":365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":401,"src":"1754:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"},"typeName":{"id":363,"nodeType":"UserDefinedTypeName","pathNode":{"id":362,"name":"ShortString","nameLocations":["1754:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":347,"src":"1754:11:6"},"referencedDeclaration":347,"src":"1754:11:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"visibility":"internal"}],"src":"1753:13:6"},"scope":558,"src":"1689:286:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":426,"nodeType":"Block","src":"2133:331:6","statements":[{"assignments":[411],"declarations":[{"constant":false,"id":411,"mutability":"mutable","name":"len","nameLocation":"2151:3:6","nodeType":"VariableDeclaration","scope":426,"src":"2143:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":410,"name":"uint256","nodeType":"ElementaryTypeName","src":"2143:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":415,"initialValue":{"arguments":[{"id":413,"name":"sstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":405,"src":"2168:4:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}],"id":412,"name":"byteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":459,"src":"2157:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$347_$returns$_t_uint256_$","typeString":"function (ShortString) pure returns (uint256)"}},"id":414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2157:16:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2143:30:6"},{"assignments":[417],"declarations":[{"constant":false,"id":417,"mutability":"mutable","name":"str","nameLocation":"2275:3:6","nodeType":"VariableDeclaration","scope":426,"src":"2261:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":416,"name":"string","nodeType":"ElementaryTypeName","src":"2261:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":422,"initialValue":{"arguments":[{"hexValue":"3332","id":420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2292:2:6","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":419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2281:10:6","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":418,"name":"string","nodeType":"ElementaryTypeName","src":"2285:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:14:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2261:34:6"},{"AST":{"nodeType":"YulBlock","src":"2357:81:6","statements":[{"expression":{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"2378:3:6"},{"name":"len","nodeType":"YulIdentifier","src":"2383:3:6"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2371:6:6"},"nodeType":"YulFunctionCall","src":"2371:16:6"},"nodeType":"YulExpressionStatement","src":"2371:16:6"},{"expression":{"arguments":[{"arguments":[{"name":"str","nodeType":"YulIdentifier","src":"2411:3:6"},{"kind":"number","nodeType":"YulLiteral","src":"2416:4:6","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2407:3:6"},"nodeType":"YulFunctionCall","src":"2407:14:6"},{"name":"sstr","nodeType":"YulIdentifier","src":"2423:4:6"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2400:6:6"},"nodeType":"YulFunctionCall","src":"2400:28:6"},"nodeType":"YulExpressionStatement","src":"2400:28:6"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":411,"isOffset":false,"isSlot":false,"src":"2383:3:6","valueSize":1},{"declaration":405,"isOffset":false,"isSlot":false,"src":"2423:4:6","valueSize":1},{"declaration":417,"isOffset":false,"isSlot":false,"src":"2378:3:6","valueSize":1},{"declaration":417,"isOffset":false,"isSlot":false,"src":"2411:3:6","valueSize":1}],"id":423,"nodeType":"InlineAssembly","src":"2348:90:6"},{"expression":{"id":424,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"2454:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":409,"id":425,"nodeType":"Return","src":"2447:10:6"}]},"documentation":{"id":402,"nodeType":"StructuredDocumentation","src":"1981:73:6","text":" @dev Decode a `ShortString` back to a \"normal\" string."},"id":427,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"2068:8:6","nodeType":"FunctionDefinition","parameters":{"id":406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":405,"mutability":"mutable","name":"sstr","nameLocation":"2089:4:6","nodeType":"VariableDeclaration","scope":427,"src":"2077:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"},"typeName":{"id":404,"nodeType":"UserDefinedTypeName","pathNode":{"id":403,"name":"ShortString","nameLocations":["2077:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":347,"src":"2077:11:6"},"referencedDeclaration":347,"src":"2077:11:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"visibility":"internal"}],"src":"2076:18:6"},"returnParameters":{"id":409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":427,"src":"2118:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":407,"name":"string","nodeType":"ElementaryTypeName","src":"2118:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2117:15:6"},"scope":558,"src":"2059:405:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":458,"nodeType":"Block","src":"2606:175:6","statements":[{"assignments":[437],"declarations":[{"constant":false,"id":437,"mutability":"mutable","name":"result","nameLocation":"2624:6:6","nodeType":"VariableDeclaration","scope":458,"src":"2616:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":436,"name":"uint256","nodeType":"ElementaryTypeName","src":"2616:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":447,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":442,"name":"sstr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":431,"src":"2660:4:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}],"expression":{"id":440,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":347,"src":"2641:11:6","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$347_$","typeString":"type(ShortString)"}},"id":441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2653:6:6","memberName":"unwrap","nodeType":"MemberAccess","src":"2641:18:6","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ShortString_$347_$returns$_t_bytes32_$","typeString":"function (ShortString) pure returns (bytes32)"}},"id":443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:24:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2633:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":438,"name":"uint256","nodeType":"ElementaryTypeName","src":"2633:7:6","typeDescriptions":{}}},"id":444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2633:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646","id":445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2669:4:6","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"2633:40:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2616:57:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":448,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"2687:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3331","id":449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2696:2:6","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"2687:11:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":455,"nodeType":"IfStatement","src":"2683:69:6","trueBody":{"id":454,"nodeType":"Block","src":"2700:52:6","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":451,"name":"InvalidShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"2721:18:6","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2721:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":453,"nodeType":"RevertStatement","src":"2714:27:6"}]}},{"expression":{"id":456,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"2768:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":435,"id":457,"nodeType":"Return","src":"2761:13:6"}]},"documentation":{"id":428,"nodeType":"StructuredDocumentation","src":"2470:61:6","text":" @dev Return the length of a `ShortString`."},"id":459,"implemented":true,"kind":"function","modifiers":[],"name":"byteLength","nameLocation":"2545:10:6","nodeType":"FunctionDefinition","parameters":{"id":432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":431,"mutability":"mutable","name":"sstr","nameLocation":"2568:4:6","nodeType":"VariableDeclaration","scope":459,"src":"2556:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"},"typeName":{"id":430,"nodeType":"UserDefinedTypeName","pathNode":{"id":429,"name":"ShortString","nameLocations":["2556:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":347,"src":"2556:11:6"},"referencedDeclaration":347,"src":"2556:11:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"visibility":"internal"}],"src":"2555:18:6"},"returnParameters":{"id":435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":459,"src":"2597:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":433,"name":"uint256","nodeType":"ElementaryTypeName","src":"2597:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2596:9:6"},"scope":558,"src":"2536:245:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":498,"nodeType":"Block","src":"3004:232:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":472,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":462,"src":"3024:5:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3018:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":470,"name":"bytes","nodeType":"ElementaryTypeName","src":"3018:5:6","typeDescriptions":{}}},"id":473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3018:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3031:6:6","memberName":"length","nodeType":"MemberAccess","src":"3018:19:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3332","id":475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3040:2:6","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3018:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":496,"nodeType":"Block","src":"3102:128:6","statements":[{"expression":{"id":489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":485,"name":"store","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"3142:5:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}],"expression":{"id":482,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":668,"src":"3116:11:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$668_$","typeString":"type(library StorageSlot)"}},"id":484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3128:13:6","memberName":"getStringSlot","nodeType":"MemberAccess","referencedDeclaration":645,"src":"3116:25:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_storage_ptr_$returns$_t_struct$_StringSlot_$576_storage_ptr_$","typeString":"function (string storage pointer) pure returns (struct StorageSlot.StringSlot storage pointer)"}},"id":486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3116:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$576_storage_ptr","typeString":"struct StorageSlot.StringSlot storage pointer"}},"id":487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3149:5:6","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":575,"src":"3116:38:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":488,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":462,"src":"3157:5:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3116:46:6","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":490,"nodeType":"ExpressionStatement","src":"3116:46:6"},{"expression":{"arguments":[{"id":493,"name":"_FALLBACK_SENTINEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"3200:18:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":491,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":347,"src":"3183:11:6","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$347_$","typeString":"type(ShortString)"}},"id":492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3195:4:6","memberName":"wrap","nodeType":"MemberAccess","src":"3183:16:6","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_ShortString_$347_$","typeString":"function (bytes32) pure returns (ShortString)"}},"id":494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3183:36:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"functionReturnParameters":469,"id":495,"nodeType":"Return","src":"3176:43:6"}]},"id":497,"nodeType":"IfStatement","src":"3014:216:6","trueBody":{"id":481,"nodeType":"Block","src":"3044:52:6","statements":[{"expression":{"arguments":[{"id":478,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":462,"src":"3079:5:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":477,"name":"toShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":401,"src":"3065:13:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_userDefinedValueType$_ShortString_$347_$","typeString":"function (string memory) pure returns (ShortString)"}},"id":479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3065:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"functionReturnParameters":469,"id":480,"nodeType":"Return","src":"3058:27:6"}]}}]},"documentation":{"id":460,"nodeType":"StructuredDocumentation","src":"2787:103:6","text":" @dev Encode a string into a `ShortString`, or write it to storage if it is too long."},"id":499,"implemented":true,"kind":"function","modifiers":[],"name":"toShortStringWithFallback","nameLocation":"2904:25:6","nodeType":"FunctionDefinition","parameters":{"id":465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":462,"mutability":"mutable","name":"value","nameLocation":"2944:5:6","nodeType":"VariableDeclaration","scope":499,"src":"2930:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":461,"name":"string","nodeType":"ElementaryTypeName","src":"2930:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":464,"mutability":"mutable","name":"store","nameLocation":"2966:5:6","nodeType":"VariableDeclaration","scope":499,"src":"2951:20:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":463,"name":"string","nodeType":"ElementaryTypeName","src":"2951:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2929:43:6"},"returnParameters":{"id":469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":499,"src":"2991:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"},"typeName":{"id":467,"nodeType":"UserDefinedTypeName","pathNode":{"id":466,"name":"ShortString","nameLocations":["2991:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":347,"src":"2991:11:6"},"referencedDeclaration":347,"src":"2991:11:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"visibility":"internal"}],"src":"2990:13:6"},"scope":558,"src":"2895:341:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":525,"nodeType":"Block","src":"3476:159:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":512,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":503,"src":"3509:5:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}],"expression":{"id":510,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":347,"src":"3490:11:6","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$347_$","typeString":"type(ShortString)"}},"id":511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3502:6:6","memberName":"unwrap","nodeType":"MemberAccess","src":"3490:18:6","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ShortString_$347_$returns$_t_bytes32_$","typeString":"function (ShortString) pure returns (bytes32)"}},"id":513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3490:25:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":514,"name":"_FALLBACK_SENTINEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"3519:18:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3490:47:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":523,"nodeType":"Block","src":"3592:37:6","statements":[{"expression":{"id":521,"name":"store","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":505,"src":"3613:5:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}},"functionReturnParameters":509,"id":522,"nodeType":"Return","src":"3606:12:6"}]},"id":524,"nodeType":"IfStatement","src":"3486:143:6","trueBody":{"id":520,"nodeType":"Block","src":"3539:47:6","statements":[{"expression":{"arguments":[{"id":517,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":503,"src":"3569:5:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}],"id":516,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":427,"src":"3560:8:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$347_$returns$_t_string_memory_ptr_$","typeString":"function (ShortString) pure returns (string memory)"}},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3560:15:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":509,"id":519,"nodeType":"Return","src":"3553:22:6"}]}}]},"documentation":{"id":500,"nodeType":"StructuredDocumentation","src":"3242:120:6","text":" @dev Decode a string that was encoded to `ShortString` or written to storage using {setWithFallback}."},"id":526,"implemented":true,"kind":"function","modifiers":[],"name":"toStringWithFallback","nameLocation":"3376:20:6","nodeType":"FunctionDefinition","parameters":{"id":506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":503,"mutability":"mutable","name":"value","nameLocation":"3409:5:6","nodeType":"VariableDeclaration","scope":526,"src":"3397:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"},"typeName":{"id":502,"nodeType":"UserDefinedTypeName","pathNode":{"id":501,"name":"ShortString","nameLocations":["3397:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":347,"src":"3397:11:6"},"referencedDeclaration":347,"src":"3397:11:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"visibility":"internal"},{"constant":false,"id":505,"mutability":"mutable","name":"store","nameLocation":"3431:5:6","nodeType":"VariableDeclaration","scope":526,"src":"3416:20:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":504,"name":"string","nodeType":"ElementaryTypeName","src":"3416:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3396:41:6"},"returnParameters":{"id":509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":526,"src":"3461:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":507,"name":"string","nodeType":"ElementaryTypeName","src":"3461:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3460:15:6"},"scope":558,"src":"3367:268:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":556,"nodeType":"Block","src":"4108:175:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":539,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"4141:5:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}],"expression":{"id":537,"name":"ShortString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":347,"src":"4122:11:6","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_ShortString_$347_$","typeString":"type(ShortString)"}},"id":538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4134:6:6","memberName":"unwrap","nodeType":"MemberAccess","src":"4122:18:6","typeDescriptions":{"typeIdentifier":"t_function_unwrap_pure$_t_userDefinedValueType$_ShortString_$347_$returns$_t_bytes32_$","typeString":"function (ShortString) pure returns (bytes32)"}},"id":540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4122:25:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":541,"name":"_FALLBACK_SENTINEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"4151:18:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4122:47:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":554,"nodeType":"Block","src":"4226:51:6","statements":[{"expression":{"expression":{"arguments":[{"id":550,"name":"store","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"4253:5:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage_ptr","typeString":"string storage pointer"}],"id":549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4247:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":548,"name":"bytes","nodeType":"ElementaryTypeName","src":"4247:5:6","typeDescriptions":{}}},"id":551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4247:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}},"id":552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4260:6:6","memberName":"length","nodeType":"MemberAccess","src":"4247:19:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":536,"id":553,"nodeType":"Return","src":"4240:26:6"}]},"id":555,"nodeType":"IfStatement","src":"4118:159:6","trueBody":{"id":547,"nodeType":"Block","src":"4171:49:6","statements":[{"expression":{"arguments":[{"id":544,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"4203:5:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}],"id":543,"name":"byteLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":459,"src":"4192:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$347_$returns$_t_uint256_$","typeString":"function (ShortString) pure returns (uint256)"}},"id":545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4192:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":536,"id":546,"nodeType":"Return","src":"4185:24:6"}]}}]},"documentation":{"id":527,"nodeType":"StructuredDocumentation","src":"3641:357:6","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":557,"implemented":true,"kind":"function","modifiers":[],"name":"byteLengthWithFallback","nameLocation":"4012:22:6","nodeType":"FunctionDefinition","parameters":{"id":533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":530,"mutability":"mutable","name":"value","nameLocation":"4047:5:6","nodeType":"VariableDeclaration","scope":557,"src":"4035:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"},"typeName":{"id":529,"nodeType":"UserDefinedTypeName","pathNode":{"id":528,"name":"ShortString","nameLocations":["4035:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":347,"src":"4035:11:6"},"referencedDeclaration":347,"src":"4035:11:6","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"visibility":"internal"},{"constant":false,"id":532,"mutability":"mutable","name":"store","nameLocation":"4069:5:6","nodeType":"VariableDeclaration","scope":557,"src":"4054:20:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":531,"name":"string","nodeType":"ElementaryTypeName","src":"4054:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4034:41:6"},"returnParameters":{"id":536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":535,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":557,"src":"4099:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":534,"name":"uint256","nodeType":"ElementaryTypeName","src":"4099:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4098:9:6"},"scope":558,"src":"4003:280:6","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":559,"src":"1235:3050:6","usedErrors":[355,357],"usedEvents":[]}],"src":"106:4180:6"},"id":6},"@openzeppelin/contracts/utils/StorageSlot.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[668]},"id":669,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":560,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"193:23:7"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":561,"nodeType":"StructuredDocumentation","src":"218:1201:7","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":668,"linearizedBaseContracts":[668],"name":"StorageSlot","nameLocation":"1428:11:7","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":564,"members":[{"constant":false,"id":563,"mutability":"mutable","name":"value","nameLocation":"1483:5:7","nodeType":"VariableDeclaration","scope":564,"src":"1475:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":562,"name":"address","nodeType":"ElementaryTypeName","src":"1475:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1453:11:7","nodeType":"StructDefinition","scope":668,"src":"1446:49:7","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":567,"members":[{"constant":false,"id":566,"mutability":"mutable","name":"value","nameLocation":"1535:5:7","nodeType":"VariableDeclaration","scope":567,"src":"1530:10:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":565,"name":"bool","nodeType":"ElementaryTypeName","src":"1530:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1508:11:7","nodeType":"StructDefinition","scope":668,"src":"1501:46:7","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":570,"members":[{"constant":false,"id":569,"mutability":"mutable","name":"value","nameLocation":"1590:5:7","nodeType":"VariableDeclaration","scope":570,"src":"1582:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":568,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1582:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1560:11:7","nodeType":"StructDefinition","scope":668,"src":"1553:49:7","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":573,"members":[{"constant":false,"id":572,"mutability":"mutable","name":"value","nameLocation":"1645:5:7","nodeType":"VariableDeclaration","scope":573,"src":"1637:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":571,"name":"uint256","nodeType":"ElementaryTypeName","src":"1637:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1615:11:7","nodeType":"StructDefinition","scope":668,"src":"1608:49:7","visibility":"public"},{"canonicalName":"StorageSlot.StringSlot","id":576,"members":[{"constant":false,"id":575,"mutability":"mutable","name":"value","nameLocation":"1698:5:7","nodeType":"VariableDeclaration","scope":576,"src":"1691:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":574,"name":"string","nodeType":"ElementaryTypeName","src":"1691:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"1670:10:7","nodeType":"StructDefinition","scope":668,"src":"1663:47:7","visibility":"public"},{"canonicalName":"StorageSlot.BytesSlot","id":579,"members":[{"constant":false,"id":578,"mutability":"mutable","name":"value","nameLocation":"1749:5:7","nodeType":"VariableDeclaration","scope":579,"src":"1743:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":577,"name":"bytes","nodeType":"ElementaryTypeName","src":"1743:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"1723:9:7","nodeType":"StructDefinition","scope":668,"src":"1716:45:7","visibility":"public"},{"body":{"id":589,"nodeType":"Block","src":"1943:106:7","statements":[{"AST":{"nodeType":"YulBlock","src":"2005:38:7","statements":[{"nodeType":"YulAssignment","src":"2019:14:7","value":{"name":"slot","nodeType":"YulIdentifier","src":"2029:4:7"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2019:6:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":586,"isOffset":false,"isSlot":true,"src":"2019:6:7","suffix":"slot","valueSize":1},{"declaration":582,"isOffset":false,"isSlot":false,"src":"2029:4:7","valueSize":1}],"id":588,"nodeType":"InlineAssembly","src":"1996:47:7"}]},"documentation":{"id":580,"nodeType":"StructuredDocumentation","src":"1767:87:7","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":590,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1868:14:7","nodeType":"FunctionDefinition","parameters":{"id":583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":582,"mutability":"mutable","name":"slot","nameLocation":"1891:4:7","nodeType":"VariableDeclaration","scope":590,"src":"1883:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1883:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1882:14:7"},"returnParameters":{"id":587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":586,"mutability":"mutable","name":"r","nameLocation":"1940:1:7","nodeType":"VariableDeclaration","scope":590,"src":"1920:21:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$564_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":585,"nodeType":"UserDefinedTypeName","pathNode":{"id":584,"name":"AddressSlot","nameLocations":["1920:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":564,"src":"1920:11:7"},"referencedDeclaration":564,"src":"1920:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$564_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1919:23:7"},"scope":668,"src":"1859:190:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":600,"nodeType":"Block","src":"2231:106:7","statements":[{"AST":{"nodeType":"YulBlock","src":"2293:38:7","statements":[{"nodeType":"YulAssignment","src":"2307:14:7","value":{"name":"slot","nodeType":"YulIdentifier","src":"2317:4:7"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2307:6:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":597,"isOffset":false,"isSlot":true,"src":"2307:6:7","suffix":"slot","valueSize":1},{"declaration":593,"isOffset":false,"isSlot":false,"src":"2317:4:7","valueSize":1}],"id":599,"nodeType":"InlineAssembly","src":"2284:47:7"}]},"documentation":{"id":591,"nodeType":"StructuredDocumentation","src":"2055:87:7","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":601,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"2156:14:7","nodeType":"FunctionDefinition","parameters":{"id":594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":593,"mutability":"mutable","name":"slot","nameLocation":"2179:4:7","nodeType":"VariableDeclaration","scope":601,"src":"2171:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2171:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2170:14:7"},"returnParameters":{"id":598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":597,"mutability":"mutable","name":"r","nameLocation":"2228:1:7","nodeType":"VariableDeclaration","scope":601,"src":"2208:21:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$567_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":596,"nodeType":"UserDefinedTypeName","pathNode":{"id":595,"name":"BooleanSlot","nameLocations":["2208:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":567,"src":"2208:11:7"},"referencedDeclaration":567,"src":"2208:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$567_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"2207:23:7"},"scope":668,"src":"2147:190:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":611,"nodeType":"Block","src":"2519:106:7","statements":[{"AST":{"nodeType":"YulBlock","src":"2581:38:7","statements":[{"nodeType":"YulAssignment","src":"2595:14:7","value":{"name":"slot","nodeType":"YulIdentifier","src":"2605:4:7"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2595:6:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":608,"isOffset":false,"isSlot":true,"src":"2595:6:7","suffix":"slot","valueSize":1},{"declaration":604,"isOffset":false,"isSlot":false,"src":"2605:4:7","valueSize":1}],"id":610,"nodeType":"InlineAssembly","src":"2572:47:7"}]},"documentation":{"id":602,"nodeType":"StructuredDocumentation","src":"2343:87:7","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":612,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2444:14:7","nodeType":"FunctionDefinition","parameters":{"id":605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":604,"mutability":"mutable","name":"slot","nameLocation":"2467:4:7","nodeType":"VariableDeclaration","scope":612,"src":"2459:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2459:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2458:14:7"},"returnParameters":{"id":609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":608,"mutability":"mutable","name":"r","nameLocation":"2516:1:7","nodeType":"VariableDeclaration","scope":612,"src":"2496:21:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$570_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":607,"nodeType":"UserDefinedTypeName","pathNode":{"id":606,"name":"Bytes32Slot","nameLocations":["2496:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":570,"src":"2496:11:7"},"referencedDeclaration":570,"src":"2496:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$570_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2495:23:7"},"scope":668,"src":"2435:190:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":622,"nodeType":"Block","src":"2807:106:7","statements":[{"AST":{"nodeType":"YulBlock","src":"2869:38:7","statements":[{"nodeType":"YulAssignment","src":"2883:14:7","value":{"name":"slot","nodeType":"YulIdentifier","src":"2893:4:7"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2883:6:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":619,"isOffset":false,"isSlot":true,"src":"2883:6:7","suffix":"slot","valueSize":1},{"declaration":615,"isOffset":false,"isSlot":false,"src":"2893:4:7","valueSize":1}],"id":621,"nodeType":"InlineAssembly","src":"2860:47:7"}]},"documentation":{"id":613,"nodeType":"StructuredDocumentation","src":"2631:87:7","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":623,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2732:14:7","nodeType":"FunctionDefinition","parameters":{"id":616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":615,"mutability":"mutable","name":"slot","nameLocation":"2755:4:7","nodeType":"VariableDeclaration","scope":623,"src":"2747:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":614,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2747:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2746:14:7"},"returnParameters":{"id":620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":619,"mutability":"mutable","name":"r","nameLocation":"2804:1:7","nodeType":"VariableDeclaration","scope":623,"src":"2784:21:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$573_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":618,"nodeType":"UserDefinedTypeName","pathNode":{"id":617,"name":"Uint256Slot","nameLocations":["2784:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":573,"src":"2784:11:7"},"referencedDeclaration":573,"src":"2784:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$573_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2783:23:7"},"scope":668,"src":"2723:190:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":633,"nodeType":"Block","src":"3092:106:7","statements":[{"AST":{"nodeType":"YulBlock","src":"3154:38:7","statements":[{"nodeType":"YulAssignment","src":"3168:14:7","value":{"name":"slot","nodeType":"YulIdentifier","src":"3178:4:7"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"3168:6:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":630,"isOffset":false,"isSlot":true,"src":"3168:6:7","suffix":"slot","valueSize":1},{"declaration":626,"isOffset":false,"isSlot":false,"src":"3178:4:7","valueSize":1}],"id":632,"nodeType":"InlineAssembly","src":"3145:47:7"}]},"documentation":{"id":624,"nodeType":"StructuredDocumentation","src":"2919:86:7","text":" @dev Returns an `StringSlot` with member `value` located at `slot`."},"id":634,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3019:13:7","nodeType":"FunctionDefinition","parameters":{"id":627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":626,"mutability":"mutable","name":"slot","nameLocation":"3041:4:7","nodeType":"VariableDeclaration","scope":634,"src":"3033:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3033:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3032:14:7"},"returnParameters":{"id":631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":630,"mutability":"mutable","name":"r","nameLocation":"3089:1:7","nodeType":"VariableDeclaration","scope":634,"src":"3070:20:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$576_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":629,"nodeType":"UserDefinedTypeName","pathNode":{"id":628,"name":"StringSlot","nameLocations":["3070:10:7"],"nodeType":"IdentifierPath","referencedDeclaration":576,"src":"3070:10:7"},"referencedDeclaration":576,"src":"3070:10:7","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$576_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3069:22:7"},"scope":668,"src":"3010:188:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":644,"nodeType":"Block","src":"3400:112:7","statements":[{"AST":{"nodeType":"YulBlock","src":"3462:44:7","statements":[{"nodeType":"YulAssignment","src":"3476:20:7","value":{"name":"store.slot","nodeType":"YulIdentifier","src":"3486:10:7"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"3476:6:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":641,"isOffset":false,"isSlot":true,"src":"3476:6:7","suffix":"slot","valueSize":1},{"declaration":637,"isOffset":false,"isSlot":true,"src":"3486:10:7","suffix":"slot","valueSize":1}],"id":643,"nodeType":"InlineAssembly","src":"3453:53:7"}]},"documentation":{"id":635,"nodeType":"StructuredDocumentation","src":"3204:101:7","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":645,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3319:13:7","nodeType":"FunctionDefinition","parameters":{"id":638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":637,"mutability":"mutable","name":"store","nameLocation":"3348:5:7","nodeType":"VariableDeclaration","scope":645,"src":"3333:20:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":636,"name":"string","nodeType":"ElementaryTypeName","src":"3333:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3332:22:7"},"returnParameters":{"id":642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":641,"mutability":"mutable","name":"r","nameLocation":"3397:1:7","nodeType":"VariableDeclaration","scope":645,"src":"3378:20:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$576_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":640,"nodeType":"UserDefinedTypeName","pathNode":{"id":639,"name":"StringSlot","nameLocations":["3378:10:7"],"nodeType":"IdentifierPath","referencedDeclaration":576,"src":"3378:10:7"},"referencedDeclaration":576,"src":"3378:10:7","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$576_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"3377:22:7"},"scope":668,"src":"3310:202:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":655,"nodeType":"Block","src":"3688:106:7","statements":[{"AST":{"nodeType":"YulBlock","src":"3750:38:7","statements":[{"nodeType":"YulAssignment","src":"3764:14:7","value":{"name":"slot","nodeType":"YulIdentifier","src":"3774:4:7"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"3764:6:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":652,"isOffset":false,"isSlot":true,"src":"3764:6:7","suffix":"slot","valueSize":1},{"declaration":648,"isOffset":false,"isSlot":false,"src":"3774:4:7","valueSize":1}],"id":654,"nodeType":"InlineAssembly","src":"3741:47:7"}]},"documentation":{"id":646,"nodeType":"StructuredDocumentation","src":"3518:85:7","text":" @dev Returns an `BytesSlot` with member `value` located at `slot`."},"id":656,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3617:12:7","nodeType":"FunctionDefinition","parameters":{"id":649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":648,"mutability":"mutable","name":"slot","nameLocation":"3638:4:7","nodeType":"VariableDeclaration","scope":656,"src":"3630:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":647,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3630:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3629:14:7"},"returnParameters":{"id":653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":652,"mutability":"mutable","name":"r","nameLocation":"3685:1:7","nodeType":"VariableDeclaration","scope":656,"src":"3667:19:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$579_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":651,"nodeType":"UserDefinedTypeName","pathNode":{"id":650,"name":"BytesSlot","nameLocations":["3667:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":579,"src":"3667:9:7"},"referencedDeclaration":579,"src":"3667:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$579_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"3666:21:7"},"scope":668,"src":"3608:186:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":666,"nodeType":"Block","src":"3991:112:7","statements":[{"AST":{"nodeType":"YulBlock","src":"4053:44:7","statements":[{"nodeType":"YulAssignment","src":"4067:20:7","value":{"name":"store.slot","nodeType":"YulIdentifier","src":"4077:10:7"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"4067:6:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":663,"isOffset":false,"isSlot":true,"src":"4067:6:7","suffix":"slot","valueSize":1},{"declaration":659,"isOffset":false,"isSlot":true,"src":"4077:10:7","suffix":"slot","valueSize":1}],"id":665,"nodeType":"InlineAssembly","src":"4044:53:7"}]},"documentation":{"id":657,"nodeType":"StructuredDocumentation","src":"3800:99:7","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":667,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"3913:12:7","nodeType":"FunctionDefinition","parameters":{"id":660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":659,"mutability":"mutable","name":"store","nameLocation":"3940:5:7","nodeType":"VariableDeclaration","scope":667,"src":"3926:19:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":658,"name":"bytes","nodeType":"ElementaryTypeName","src":"3926:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3925:21:7"},"returnParameters":{"id":664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":663,"mutability":"mutable","name":"r","nameLocation":"3988:1:7","nodeType":"VariableDeclaration","scope":667,"src":"3970:19:7","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$579_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":662,"nodeType":"UserDefinedTypeName","pathNode":{"id":661,"name":"BytesSlot","nameLocations":["3970:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":579,"src":"3970:9:7"},"referencedDeclaration":579,"src":"3970:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$579_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"3969:21:7"},"scope":668,"src":"3904:199:7","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":669,"src":"1420:2685:7","usedErrors":[],"usedEvents":[]}],"src":"193:3913:7"},"id":7},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[2432],"SignedMath":[2537],"Strings":[897]},"id":898,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":670,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:8"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":671,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":898,"sourceUnit":2433,"src":"126:25:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":672,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":898,"sourceUnit":2538,"src":"152:31:8","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":673,"nodeType":"StructuredDocumentation","src":"185:34:8","text":" @dev String operations."},"fullyImplemented":true,"id":897,"linearizedBaseContracts":[897],"name":"Strings","nameLocation":"228:7:8","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":676,"mutability":"constant","name":"_SYMBOLS","nameLocation":"267:8:8","nodeType":"VariableDeclaration","scope":897,"src":"242:54:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":674,"name":"bytes16","nodeType":"ElementaryTypeName","src":"242:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"278:18:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":679,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"325:15:8","nodeType":"VariableDeclaration","scope":897,"src":"302:43:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":677,"name":"uint8","nodeType":"ElementaryTypeName","src":"302:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343:2:8","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":726,"nodeType":"Block","src":"518:625:8","statements":[{"id":725,"nodeType":"UncheckedBlock","src":"528:609:8","statements":[{"assignments":[688],"declarations":[{"constant":false,"id":688,"mutability":"mutable","name":"length","nameLocation":"560:6:8","nodeType":"VariableDeclaration","scope":725,"src":"552:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":687,"name":"uint256","nodeType":"ElementaryTypeName","src":"552:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":695,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":691,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":682,"src":"580:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":689,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2432,"src":"569:4:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$2432_$","typeString":"type(library Math)"}},"id":690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"574:5:8","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":2269,"src":"569:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"569:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"589:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"569:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"552:38:8"},{"assignments":[697],"declarations":[{"constant":false,"id":697,"mutability":"mutable","name":"buffer","nameLocation":"618:6:8","nodeType":"VariableDeclaration","scope":725,"src":"604:20:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":696,"name":"string","nodeType":"ElementaryTypeName","src":"604:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":702,"initialValue":{"arguments":[{"id":700,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":688,"src":"638:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"627:10:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":698,"name":"string","nodeType":"ElementaryTypeName","src":"631:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"627:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"604:41:8"},{"assignments":[704],"declarations":[{"constant":false,"id":704,"mutability":"mutable","name":"ptr","nameLocation":"667:3:8","nodeType":"VariableDeclaration","scope":725,"src":"659:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":703,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":705,"nodeType":"VariableDeclarationStatement","src":"659:11:8"},{"AST":{"nodeType":"YulBlock","src":"740:67:8","statements":[{"nodeType":"YulAssignment","src":"758:35:8","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"769:6:8"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"781:2:8","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"785:6:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"777:3:8"},"nodeType":"YulFunctionCall","src":"777:15:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:8"},"nodeType":"YulFunctionCall","src":"765:28:8"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"758:3:8"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":697,"isOffset":false,"isSlot":false,"src":"769:6:8","valueSize":1},{"declaration":688,"isOffset":false,"isSlot":false,"src":"785:6:8","valueSize":1},{"declaration":704,"isOffset":false,"isSlot":false,"src":"758:3:8","valueSize":1}],"id":706,"nodeType":"InlineAssembly","src":"731:76:8"},{"body":{"id":721,"nodeType":"Block","src":"833:267:8","statements":[{"expression":{"id":709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"851:5:8","subExpression":{"id":708,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":704,"src":"851:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":710,"nodeType":"ExpressionStatement","src":"851:5:8"},{"AST":{"nodeType":"YulBlock","src":"934:84:8","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"964:3:8"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"978:5:8"},{"kind":"number","nodeType":"YulLiteral","src":"985:2:8","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"974:3:8"},"nodeType":"YulFunctionCall","src":"974:14:8"},{"name":"_SYMBOLS","nodeType":"YulIdentifier","src":"990:8:8"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"969:4:8"},"nodeType":"YulFunctionCall","src":"969:30:8"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"956:7:8"},"nodeType":"YulFunctionCall","src":"956:44:8"},"nodeType":"YulExpressionStatement","src":"956:44:8"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":676,"isOffset":false,"isSlot":false,"src":"990:8:8","valueSize":1},{"declaration":704,"isOffset":false,"isSlot":false,"src":"964:3:8","valueSize":1},{"declaration":682,"isOffset":false,"isSlot":false,"src":"978:5:8","valueSize":1}],"id":711,"nodeType":"InlineAssembly","src":"925:93:8"},{"expression":{"id":714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":712,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":682,"src":"1035:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:2:8","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1035:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":715,"nodeType":"ExpressionStatement","src":"1035:11:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":716,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":682,"src":"1068:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1068:10:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":720,"nodeType":"IfStatement","src":"1064:21:8","trueBody":{"id":719,"nodeType":"Break","src":"1080:5:8"}}]},"condition":{"hexValue":"74727565","id":707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"827:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":722,"nodeType":"WhileStatement","src":"820:280:8"},{"expression":{"id":723,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"1120:6:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":686,"id":724,"nodeType":"Return","src":"1113:13:8"}]}]},"documentation":{"id":680,"nodeType":"StructuredDocumentation","src":"352:90:8","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":727,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"456:8:8","nodeType":"FunctionDefinition","parameters":{"id":683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":682,"mutability":"mutable","name":"value","nameLocation":"473:5:8","nodeType":"VariableDeclaration","scope":727,"src":"465:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":681,"name":"uint256","nodeType":"ElementaryTypeName","src":"465:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"464:15:8"},"returnParameters":{"id":686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":685,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":727,"src":"503:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":684,"name":"string","nodeType":"ElementaryTypeName","src":"503:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"502:15:8"},"scope":897,"src":"447:696:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":754,"nodeType":"Block","src":"1313:103:8","statements":[{"expression":{"arguments":[{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":739,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":730,"src":"1354:5:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1362:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1354:9:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1372:2:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1354:20:8","trueExpression":{"hexValue":"2d","id":742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1366:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":748,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":730,"src":"1400:5:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":746,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2537,"src":"1385:10:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$2537_$","typeString":"type(library SignedMath)"}},"id":747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1396:3:8","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":2536,"src":"1385:14:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":745,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[727,755],"referencedDeclaration":727,"src":"1376:8:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:31:8","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":737,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1337:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1341:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"1337:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1337:71:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1330:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":735,"name":"string","nodeType":"ElementaryTypeName","src":"1330:6:8","typeDescriptions":{}}},"id":752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1330:79:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":734,"id":753,"nodeType":"Return","src":"1323:86:8"}]},"documentation":{"id":728,"nodeType":"StructuredDocumentation","src":"1149:89:8","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":755,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1252:8:8","nodeType":"FunctionDefinition","parameters":{"id":731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":730,"mutability":"mutable","name":"value","nameLocation":"1268:5:8","nodeType":"VariableDeclaration","scope":755,"src":"1261:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":729,"name":"int256","nodeType":"ElementaryTypeName","src":"1261:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1260:14:8"},"returnParameters":{"id":734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":755,"src":"1298:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":732,"name":"string","nodeType":"ElementaryTypeName","src":"1298:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1297:15:8"},"scope":897,"src":"1243:173:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":774,"nodeType":"Block","src":"1595:100:8","statements":[{"id":773,"nodeType":"UncheckedBlock","src":"1605:84:8","statements":[{"expression":{"arguments":[{"id":764,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"1648:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":767,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":758,"src":"1667:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":765,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2432,"src":"1655:4:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$2432_$","typeString":"type(library Math)"}},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1660:6:8","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":2392,"src":"1655:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1676:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1655:22:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":763,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[775,851,871],"referencedDeclaration":851,"src":"1636:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1636:42:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":762,"id":772,"nodeType":"Return","src":"1629:49:8"}]}]},"documentation":{"id":756,"nodeType":"StructuredDocumentation","src":"1422:94:8","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":775,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1530:11:8","nodeType":"FunctionDefinition","parameters":{"id":759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":758,"mutability":"mutable","name":"value","nameLocation":"1550:5:8","nodeType":"VariableDeclaration","scope":775,"src":"1542:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":757,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1541:15:8"},"returnParameters":{"id":762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":775,"src":"1580:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":760,"name":"string","nodeType":"ElementaryTypeName","src":"1580:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1579:15:8"},"scope":897,"src":"1521:174:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":850,"nodeType":"Block","src":"1908:347:8","statements":[{"assignments":[786],"declarations":[{"constant":false,"id":786,"mutability":"mutable","name":"buffer","nameLocation":"1931:6:8","nodeType":"VariableDeclaration","scope":850,"src":"1918:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":785,"name":"bytes","nodeType":"ElementaryTypeName","src":"1918:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":795,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1950:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":790,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":780,"src":"1954:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1950:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1963:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1950:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1940:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":787,"name":"bytes","nodeType":"ElementaryTypeName","src":"1944:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1940:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1918:47:8"},{"expression":{"id":800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":796,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"1975:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":798,"indexExpression":{"hexValue":"30","id":797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1982:1:8","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:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1987:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1975:15:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":801,"nodeType":"ExpressionStatement","src":"1975:15:8"},{"expression":{"id":806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":802,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"2000:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":804,"indexExpression":{"hexValue":"31","id":803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2007:1:8","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:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2012:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2000:15:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":807,"nodeType":"ExpressionStatement","src":"2000:15:8"},{"body":{"id":836,"nodeType":"Block","src":"2070:83:8","statements":[{"expression":{"id":830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":822,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"2084:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":824,"indexExpression":{"id":823,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":809,"src":"2091:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2084:9:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":825,"name":"_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":676,"src":"2096:8:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":829,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":826,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"2105:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:3:8","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2105:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2096:21:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2084:33:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":831,"nodeType":"ExpressionStatement","src":"2084:33:8"},{"expression":{"id":834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":832,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"2131:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2141:1:8","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2131:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":835,"nodeType":"ExpressionStatement","src":"2131:11:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":816,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":809,"src":"2058:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2062:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2058:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":837,"initializationExpression":{"assignments":[809],"declarations":[{"constant":false,"id":809,"mutability":"mutable","name":"i","nameLocation":"2038:1:8","nodeType":"VariableDeclaration","scope":837,"src":"2030:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":808,"name":"uint256","nodeType":"ElementaryTypeName","src":"2030:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":815,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2042:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":811,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":780,"src":"2046:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2055:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2042:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2030:26:8"},"loopExpression":{"expression":{"id":820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2065:3:8","subExpression":{"id":819,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":809,"src":"2067:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":821,"nodeType":"ExpressionStatement","src":"2065:3:8"},"nodeType":"ForStatement","src":"2025:128:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":839,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"2170:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2179:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2170:10:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2182:34:8","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":838,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2162:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:55:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":844,"nodeType":"ExpressionStatement","src":"2162:55:8"},{"expression":{"arguments":[{"id":847,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":786,"src":"2241:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2234:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":845,"name":"string","nodeType":"ElementaryTypeName","src":"2234:6:8","typeDescriptions":{}}},"id":848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2234:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":784,"id":849,"nodeType":"Return","src":"2227:21:8"}]},"documentation":{"id":776,"nodeType":"StructuredDocumentation","src":"1701:112:8","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":851,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1827:11:8","nodeType":"FunctionDefinition","parameters":{"id":781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":778,"mutability":"mutable","name":"value","nameLocation":"1847:5:8","nodeType":"VariableDeclaration","scope":851,"src":"1839:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":777,"name":"uint256","nodeType":"ElementaryTypeName","src":"1839:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":780,"mutability":"mutable","name":"length","nameLocation":"1862:6:8","nodeType":"VariableDeclaration","scope":851,"src":"1854:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":779,"name":"uint256","nodeType":"ElementaryTypeName","src":"1854:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:31:8"},"returnParameters":{"id":784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":851,"src":"1893:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":782,"name":"string","nodeType":"ElementaryTypeName","src":"1893:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1892:15:8"},"scope":897,"src":"1818:437:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":870,"nodeType":"Block","src":"2480:76:8","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":864,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"2525:4:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2517:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":862,"name":"uint160","nodeType":"ElementaryTypeName","src":"2517:7:8","typeDescriptions":{}}},"id":865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2517:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":860,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:8","typeDescriptions":{}}},"id":866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:22:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":867,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"2533:15:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":859,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[775,851,871],"referencedDeclaration":851,"src":"2497:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2497:52:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":858,"id":869,"nodeType":"Return","src":"2490:59:8"}]},"documentation":{"id":852,"nodeType":"StructuredDocumentation","src":"2261:141:8","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":871,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2416:11:8","nodeType":"FunctionDefinition","parameters":{"id":855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":854,"mutability":"mutable","name":"addr","nameLocation":"2436:4:8","nodeType":"VariableDeclaration","scope":871,"src":"2428:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":853,"name":"address","nodeType":"ElementaryTypeName","src":"2428:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2427:14:8"},"returnParameters":{"id":858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":857,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":871,"src":"2465:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":856,"name":"string","nodeType":"ElementaryTypeName","src":"2465:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2464:15:8"},"scope":897,"src":"2407:149:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":895,"nodeType":"Block","src":"2711:66:8","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":884,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":874,"src":"2744:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2738:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":882,"name":"bytes","nodeType":"ElementaryTypeName","src":"2738:5:8","typeDescriptions":{}}},"id":885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2738:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":881,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2728:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":890,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":876,"src":"2767:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2761:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":888,"name":"bytes","nodeType":"ElementaryTypeName","src":"2761:5:8","typeDescriptions":{}}},"id":891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2761:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":887,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2751:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2751:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2728:42:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":880,"id":894,"nodeType":"Return","src":"2721:49:8"}]},"documentation":{"id":872,"nodeType":"StructuredDocumentation","src":"2562:66:8","text":" @dev Returns true if the two strings are equal."},"id":896,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2642:5:8","nodeType":"FunctionDefinition","parameters":{"id":877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":874,"mutability":"mutable","name":"a","nameLocation":"2662:1:8","nodeType":"VariableDeclaration","scope":896,"src":"2648:15:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":873,"name":"string","nodeType":"ElementaryTypeName","src":"2648:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":876,"mutability":"mutable","name":"b","nameLocation":"2679:1:8","nodeType":"VariableDeclaration","scope":896,"src":"2665:15:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":875,"name":"string","nodeType":"ElementaryTypeName","src":"2665:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2647:34:8"},"returnParameters":{"id":880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":896,"src":"2705:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":878,"name":"bool","nodeType":"ElementaryTypeName","src":"2705:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2704:6:8"},"scope":897,"src":"2633:144:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":898,"src":"220:2559:8","usedErrors":[],"usedEvents":[]}],"src":"101:2679:8"},"id":8},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[1263],"Math":[2432],"SignedMath":[2537],"Strings":[897]},"id":1264,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":899,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:9"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../Strings.sol","id":900,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1264,"sourceUnit":898,"src":"137:24:9","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":901,"nodeType":"StructuredDocumentation","src":"163:205:9","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":1263,"linearizedBaseContracts":[1263],"name":"ECDSA","nameLocation":"377:5:9","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ECDSA.RecoverError","id":907,"members":[{"id":902,"name":"NoError","nameLocation":"417:7:9","nodeType":"EnumValue","src":"417:7:9"},{"id":903,"name":"InvalidSignature","nameLocation":"434:16:9","nodeType":"EnumValue","src":"434:16:9"},{"id":904,"name":"InvalidSignatureLength","nameLocation":"460:22:9","nodeType":"EnumValue","src":"460:22:9"},{"id":905,"name":"InvalidSignatureS","nameLocation":"492:17:9","nodeType":"EnumValue","src":"492:17:9"},{"id":906,"name":"InvalidSignatureV","nameLocation":"519:17:9","nodeType":"EnumValue","src":"519:17:9"}],"name":"RecoverError","nameLocation":"394:12:9","nodeType":"EnumDefinition","src":"389:175:9"},{"body":{"id":950,"nodeType":"Block","src":"624:457:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"id":916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":913,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":910,"src":"638:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":914,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"647:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$907_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"660:7:9","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":902,"src":"647:20:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"src":"638:29:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"id":922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":919,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":910,"src":"734:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":920,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"743:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$907_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"756:16:9","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":903,"src":"743:29:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"src":"734:38:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"id":931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":928,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":910,"src":"843:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":929,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"852:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$907_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"865:22:9","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":904,"src":"852:35:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"src":"843:44:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"id":940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":937,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":910,"src":"965:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":938,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"974:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$907_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"987:17:9","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":905,"src":"974:30:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"src":"965:39:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":946,"nodeType":"IfStatement","src":"961:114:9","trueBody":{"id":945,"nodeType":"Block","src":"1006:69:9","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265202773272076616c7565","id":942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1027:36:9","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":941,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"1020:6:9","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1020:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":944,"nodeType":"ExpressionStatement","src":"1020:44:9"}]}},"id":947,"nodeType":"IfStatement","src":"839:236:9","trueBody":{"id":936,"nodeType":"Block","src":"889:66:9","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265206c656e677468","id":933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"910:33:9","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":932,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"903:6:9","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"903:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":935,"nodeType":"ExpressionStatement","src":"903:41:9"}]}},"id":948,"nodeType":"IfStatement","src":"730:345:9","trueBody":{"id":927,"nodeType":"Block","src":"774:59:9","statements":[{"expression":{"arguments":[{"hexValue":"45434453413a20696e76616c6964207369676e6174757265","id":924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"795:26:9","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":923,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"788:6:9","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"788:34:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":926,"nodeType":"ExpressionStatement","src":"788:34:9"}]}},"id":949,"nodeType":"IfStatement","src":"634:441:9","trueBody":{"id":918,"nodeType":"Block","src":"669:55:9","statements":[{"functionReturnParameters":912,"id":917,"nodeType":"Return","src":"683:7:9"}]}}]},"id":951,"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"579:11:9","nodeType":"FunctionDefinition","parameters":{"id":911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":910,"mutability":"mutable","name":"error","nameLocation":"604:5:9","nodeType":"VariableDeclaration","scope":951,"src":"591:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":909,"nodeType":"UserDefinedTypeName","pathNode":{"id":908,"name":"RecoverError","nameLocations":["591:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":907,"src":"591:12:9"},"referencedDeclaration":907,"src":"591:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"590:20:9"},"returnParameters":{"id":912,"nodeType":"ParameterList","parameters":[],"src":"624:0:9"},"scope":1263,"src":"570:511:9","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":996,"nodeType":"Block","src":"2249:626:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":964,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":956,"src":"2263:9:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2273:6:9","memberName":"length","nodeType":"MemberAccess","src":"2263:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2283:2:9","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2263:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":994,"nodeType":"Block","src":"2788:81:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2818: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":987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2810:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":986,"name":"address","nodeType":"ElementaryTypeName","src":"2810:7:9","typeDescriptions":{}}},"id":989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2810:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":990,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"2822:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$907_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2835:22:9","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":904,"src":"2822:35:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}}],"id":992,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2809:49:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":963,"id":993,"nodeType":"Return","src":"2802:56:9"}]},"id":995,"nodeType":"IfStatement","src":"2259:610:9","trueBody":{"id":985,"nodeType":"Block","src":"2287:495:9","statements":[{"assignments":[969],"declarations":[{"constant":false,"id":969,"mutability":"mutable","name":"r","nameLocation":"2309:1:9","nodeType":"VariableDeclaration","scope":985,"src":"2301:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":968,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2301:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":970,"nodeType":"VariableDeclarationStatement","src":"2301:9:9"},{"assignments":[972],"declarations":[{"constant":false,"id":972,"mutability":"mutable","name":"s","nameLocation":"2332:1:9","nodeType":"VariableDeclaration","scope":985,"src":"2324:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":971,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":973,"nodeType":"VariableDeclarationStatement","src":"2324:9:9"},{"assignments":[975],"declarations":[{"constant":false,"id":975,"mutability":"mutable","name":"v","nameLocation":"2353:1:9","nodeType":"VariableDeclaration","scope":985,"src":"2347:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":974,"name":"uint8","nodeType":"ElementaryTypeName","src":"2347:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":976,"nodeType":"VariableDeclarationStatement","src":"2347:7:9"},{"AST":{"nodeType":"YulBlock","src":"2555:171:9","statements":[{"nodeType":"YulAssignment","src":"2573:32:9","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2588:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2599:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2584:3:9"},"nodeType":"YulFunctionCall","src":"2584:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2578:5:9"},"nodeType":"YulFunctionCall","src":"2578:27:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2573:1:9"}]},{"nodeType":"YulAssignment","src":"2622:32:9","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2637:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2648:4:9","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2633:3:9"},"nodeType":"YulFunctionCall","src":"2633:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2627:5:9"},"nodeType":"YulFunctionCall","src":"2627:27:9"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2622:1:9"}]},{"nodeType":"YulAssignment","src":"2671:41:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2681:1:9","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2694:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2705:4:9","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2690:3:9"},"nodeType":"YulFunctionCall","src":"2690:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2684:5:9"},"nodeType":"YulFunctionCall","src":"2684:27:9"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"2676:4:9"},"nodeType":"YulFunctionCall","src":"2676:36:9"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"2671:1:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":969,"isOffset":false,"isSlot":false,"src":"2573:1:9","valueSize":1},{"declaration":972,"isOffset":false,"isSlot":false,"src":"2622:1:9","valueSize":1},{"declaration":956,"isOffset":false,"isSlot":false,"src":"2588:9:9","valueSize":1},{"declaration":956,"isOffset":false,"isSlot":false,"src":"2637:9:9","valueSize":1},{"declaration":956,"isOffset":false,"isSlot":false,"src":"2694:9:9","valueSize":1},{"declaration":975,"isOffset":false,"isSlot":false,"src":"2671:1:9","valueSize":1}],"id":977,"nodeType":"InlineAssembly","src":"2546:180:9"},{"expression":{"arguments":[{"id":979,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":954,"src":"2757:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":980,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":975,"src":"2763:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":981,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":969,"src":"2766:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":982,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":972,"src":"2769:1:9","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":978,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[997,1071,1165],"referencedDeclaration":1165,"src":"2746:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2746:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":963,"id":984,"nodeType":"Return","src":"2739:32:9"}]}}]},"documentation":{"id":952,"nodeType":"StructuredDocumentation","src":"1087:1053:9","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":997,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2154:10:9","nodeType":"FunctionDefinition","parameters":{"id":957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":954,"mutability":"mutable","name":"hash","nameLocation":"2173:4:9","nodeType":"VariableDeclaration","scope":997,"src":"2165:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":953,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2165:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":956,"mutability":"mutable","name":"signature","nameLocation":"2192:9:9","nodeType":"VariableDeclaration","scope":997,"src":"2179:22:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":955,"name":"bytes","nodeType":"ElementaryTypeName","src":"2179:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2164:38:9"},"returnParameters":{"id":963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":959,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":997,"src":"2226:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":958,"name":"address","nodeType":"ElementaryTypeName","src":"2226:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":962,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":997,"src":"2235:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":961,"nodeType":"UserDefinedTypeName","pathNode":{"id":960,"name":"RecoverError","nameLocations":["2235:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":907,"src":"2235:12:9"},"referencedDeclaration":907,"src":"2235:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"2225:23:9"},"scope":1263,"src":"2145:730:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1023,"nodeType":"Block","src":"3748:140:9","statements":[{"assignments":[1008,1011],"declarations":[{"constant":false,"id":1008,"mutability":"mutable","name":"recovered","nameLocation":"3767:9:9","nodeType":"VariableDeclaration","scope":1023,"src":"3759:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1007,"name":"address","nodeType":"ElementaryTypeName","src":"3759:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1011,"mutability":"mutable","name":"error","nameLocation":"3791:5:9","nodeType":"VariableDeclaration","scope":1023,"src":"3778:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1010,"nodeType":"UserDefinedTypeName","pathNode":{"id":1009,"name":"RecoverError","nameLocations":["3778:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":907,"src":"3778:12:9"},"referencedDeclaration":907,"src":"3778:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":1016,"initialValue":{"arguments":[{"id":1013,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"3811:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1014,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1002,"src":"3817:9:9","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":1012,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[997,1071,1165],"referencedDeclaration":997,"src":"3800:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":1015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"3758:69:9"},{"expression":{"arguments":[{"id":1018,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"3849:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}],"id":1017,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":951,"src":"3837:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$907_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":1019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3837:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1020,"nodeType":"ExpressionStatement","src":"3837:18:9"},{"expression":{"id":1021,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1008,"src":"3872:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1006,"id":1022,"nodeType":"Return","src":"3865:16:9"}]},"documentation":{"id":998,"nodeType":"StructuredDocumentation","src":"2881:775:9","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":1024,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"3670:7:9","nodeType":"FunctionDefinition","parameters":{"id":1003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1000,"mutability":"mutable","name":"hash","nameLocation":"3686:4:9","nodeType":"VariableDeclaration","scope":1024,"src":"3678:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3678:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1002,"mutability":"mutable","name":"signature","nameLocation":"3705:9:9","nodeType":"VariableDeclaration","scope":1024,"src":"3692:22:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1001,"name":"bytes","nodeType":"ElementaryTypeName","src":"3692:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3677:38:9"},"returnParameters":{"id":1006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1024,"src":"3739:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1004,"name":"address","nodeType":"ElementaryTypeName","src":"3739:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3738:9:9"},"scope":1263,"src":"3661:227:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1070,"nodeType":"Block","src":"4245:203:9","statements":[{"assignments":[1040],"declarations":[{"constant":false,"id":1040,"mutability":"mutable","name":"s","nameLocation":"4263:1:9","nodeType":"VariableDeclaration","scope":1070,"src":"4255:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4255:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1047,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1041,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1031,"src":"4267:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":1044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4280:66:9","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":1043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4272:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1042,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4272:7:9","typeDescriptions":{}}},"id":1045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4272:75:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4267:80:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4255:92:9"},{"assignments":[1049],"declarations":[{"constant":false,"id":1049,"mutability":"mutable","name":"v","nameLocation":"4363:1:9","nodeType":"VariableDeclaration","scope":1070,"src":"4357:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1048,"name":"uint8","nodeType":"ElementaryTypeName","src":"4357:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":1062,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1054,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1031,"src":"4382:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4374:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1052,"name":"uint256","nodeType":"ElementaryTypeName","src":"4374:7:9","typeDescriptions":{}}},"id":1055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4374:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":1056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4389:3:9","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4374:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1058,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4373:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":1059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4396:2:9","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4373:25:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4367:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1050,"name":"uint8","nodeType":"ElementaryTypeName","src":"4367:5:9","typeDescriptions":{}}},"id":1061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4367:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4357:42:9"},{"expression":{"arguments":[{"id":1064,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1027,"src":"4427:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1065,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1049,"src":"4433:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1066,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1029,"src":"4436:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1067,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1040,"src":"4439:1:9","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":1063,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[997,1071,1165],"referencedDeclaration":1165,"src":"4416:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":1068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4416:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":1038,"id":1069,"nodeType":"Return","src":"4409:32:9"}]},"documentation":{"id":1025,"nodeType":"StructuredDocumentation","src":"3894:243:9","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":1071,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4151:10:9","nodeType":"FunctionDefinition","parameters":{"id":1032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1027,"mutability":"mutable","name":"hash","nameLocation":"4170:4:9","nodeType":"VariableDeclaration","scope":1071,"src":"4162:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1026,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4162:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1029,"mutability":"mutable","name":"r","nameLocation":"4184:1:9","nodeType":"VariableDeclaration","scope":1071,"src":"4176:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1028,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4176:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1031,"mutability":"mutable","name":"vs","nameLocation":"4195:2:9","nodeType":"VariableDeclaration","scope":1071,"src":"4187:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4187:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4161:37:9"},"returnParameters":{"id":1038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1071,"src":"4222:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1033,"name":"address","nodeType":"ElementaryTypeName","src":"4222:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1071,"src":"4231:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1036,"nodeType":"UserDefinedTypeName","pathNode":{"id":1035,"name":"RecoverError","nameLocations":["4231:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":907,"src":"4231:12:9"},"referencedDeclaration":907,"src":"4231:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"4221:23:9"},"scope":1263,"src":"4142:306:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1100,"nodeType":"Block","src":"4699:136:9","statements":[{"assignments":[1084,1087],"declarations":[{"constant":false,"id":1084,"mutability":"mutable","name":"recovered","nameLocation":"4718:9:9","nodeType":"VariableDeclaration","scope":1100,"src":"4710:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1083,"name":"address","nodeType":"ElementaryTypeName","src":"4710:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1087,"mutability":"mutable","name":"error","nameLocation":"4742:5:9","nodeType":"VariableDeclaration","scope":1100,"src":"4729:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1086,"nodeType":"UserDefinedTypeName","pathNode":{"id":1085,"name":"RecoverError","nameLocations":["4729:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":907,"src":"4729:12:9"},"referencedDeclaration":907,"src":"4729:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":1093,"initialValue":{"arguments":[{"id":1089,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1074,"src":"4762:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1090,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1076,"src":"4768:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1091,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1078,"src":"4771:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1088,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[997,1071,1165],"referencedDeclaration":1071,"src":"4751:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":1092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4751:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"4709:65:9"},{"expression":{"arguments":[{"id":1095,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"4796:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}],"id":1094,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":951,"src":"4784:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$907_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":1096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4784:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1097,"nodeType":"ExpressionStatement","src":"4784:18:9"},{"expression":{"id":1098,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1084,"src":"4819:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1082,"id":1099,"nodeType":"Return","src":"4812:16:9"}]},"documentation":{"id":1072,"nodeType":"StructuredDocumentation","src":"4454:154:9","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n _Available since v4.2._"},"id":1101,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4622:7:9","nodeType":"FunctionDefinition","parameters":{"id":1079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1074,"mutability":"mutable","name":"hash","nameLocation":"4638:4:9","nodeType":"VariableDeclaration","scope":1101,"src":"4630:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4630:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1076,"mutability":"mutable","name":"r","nameLocation":"4652:1:9","nodeType":"VariableDeclaration","scope":1101,"src":"4644:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1075,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4644:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1078,"mutability":"mutable","name":"vs","nameLocation":"4663:2:9","nodeType":"VariableDeclaration","scope":1101,"src":"4655:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1077,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4655:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4629:37:9"},"returnParameters":{"id":1082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1081,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1101,"src":"4690:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1080,"name":"address","nodeType":"ElementaryTypeName","src":"4690:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4689:9:9"},"scope":1263,"src":"4613:222:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1164,"nodeType":"Block","src":"5120:1345:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1120,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"6016:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6008:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1118,"name":"uint256","nodeType":"ElementaryTypeName","src":"6008:7:9","typeDescriptions":{}}},"id":1121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6008:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":1122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6021:66:9","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6008:79:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1133,"nodeType":"IfStatement","src":"6004:161:9","trueBody":{"id":1132,"nodeType":"Block","src":"6089:76:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":1126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6119: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":1125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6111:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1124,"name":"address","nodeType":"ElementaryTypeName","src":"6111:7:9","typeDescriptions":{}}},"id":1127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6111:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1128,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"6123:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$907_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6136:17:9","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":905,"src":"6123:30:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}}],"id":1130,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6110:44:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":1117,"id":1131,"nodeType":"Return","src":"6103:51:9"}]}},{"assignments":[1135],"declarations":[{"constant":false,"id":1135,"mutability":"mutable","name":"signer","nameLocation":"6267:6:9","nodeType":"VariableDeclaration","scope":1164,"src":"6259:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1134,"name":"address","nodeType":"ElementaryTypeName","src":"6259:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1142,"initialValue":{"arguments":[{"id":1137,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"6286:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1138,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"6292:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1139,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1108,"src":"6295:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1140,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"6298:1:9","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":1136,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6276:9:9","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":1141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6276:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6259:41:9"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1143,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"6314:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6332: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":1145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6324:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1144,"name":"address","nodeType":"ElementaryTypeName","src":"6324:7:9","typeDescriptions":{}}},"id":1147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6324:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6314:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1158,"nodeType":"IfStatement","src":"6310:101:9","trueBody":{"id":1157,"nodeType":"Block","src":"6336:75:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":1151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6366: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":1150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6358:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1149,"name":"address","nodeType":"ElementaryTypeName","src":"6358:7:9","typeDescriptions":{}}},"id":1152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6358:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1153,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"6370:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$907_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6383:16:9","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":903,"src":"6370:29:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}}],"id":1155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6357:43:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":1117,"id":1156,"nodeType":"Return","src":"6350:50:9"}]}},{"expression":{"components":[{"id":1159,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"6429:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1160,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"6437:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$907_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6450:7:9","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":902,"src":"6437:20:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}}],"id":1162,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6428:30:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"functionReturnParameters":1117,"id":1163,"nodeType":"Return","src":"6421:37:9"}]},"documentation":{"id":1102,"nodeType":"StructuredDocumentation","src":"4841:163:9","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately.\n _Available since v4.3._"},"id":1165,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5018:10:9","nodeType":"FunctionDefinition","parameters":{"id":1111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1104,"mutability":"mutable","name":"hash","nameLocation":"5037:4:9","nodeType":"VariableDeclaration","scope":1165,"src":"5029:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5029:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1106,"mutability":"mutable","name":"v","nameLocation":"5049:1:9","nodeType":"VariableDeclaration","scope":1165,"src":"5043:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1105,"name":"uint8","nodeType":"ElementaryTypeName","src":"5043:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1108,"mutability":"mutable","name":"r","nameLocation":"5060:1:9","nodeType":"VariableDeclaration","scope":1165,"src":"5052:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5052:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1110,"mutability":"mutable","name":"s","nameLocation":"5071:1:9","nodeType":"VariableDeclaration","scope":1165,"src":"5063:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5063:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5028:45:9"},"returnParameters":{"id":1117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1165,"src":"5097:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1112,"name":"address","nodeType":"ElementaryTypeName","src":"5097:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1165,"src":"5106:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1115,"nodeType":"UserDefinedTypeName","pathNode":{"id":1114,"name":"RecoverError","nameLocations":["5106:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":907,"src":"5106:12:9"},"referencedDeclaration":907,"src":"5106:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"src":"5096:23:9"},"scope":1263,"src":"5009:1456:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1197,"nodeType":"Block","src":"6692:138:9","statements":[{"assignments":[1180,1183],"declarations":[{"constant":false,"id":1180,"mutability":"mutable","name":"recovered","nameLocation":"6711:9:9","nodeType":"VariableDeclaration","scope":1197,"src":"6703:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1179,"name":"address","nodeType":"ElementaryTypeName","src":"6703:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1183,"mutability":"mutable","name":"error","nameLocation":"6735:5:9","nodeType":"VariableDeclaration","scope":1197,"src":"6722:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1182,"nodeType":"UserDefinedTypeName","pathNode":{"id":1181,"name":"RecoverError","nameLocations":["6722:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":907,"src":"6722:12:9"},"referencedDeclaration":907,"src":"6722:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":1190,"initialValue":{"arguments":[{"id":1185,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"6755:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1186,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"6761:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1187,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1172,"src":"6764:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1188,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"6767:1:9","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":1184,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[997,1071,1165],"referencedDeclaration":1165,"src":"6744:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError)"}},"id":1189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6744:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"6702:67:9"},{"expression":{"arguments":[{"id":1192,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1183,"src":"6791:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}],"id":1191,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":951,"src":"6779:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$907_$returns$__$","typeString":"function (enum ECDSA.RecoverError) pure"}},"id":1193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6779:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1194,"nodeType":"ExpressionStatement","src":"6779:18:9"},{"expression":{"id":1195,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"6814:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1178,"id":1196,"nodeType":"Return","src":"6807:16:9"}]},"documentation":{"id":1166,"nodeType":"StructuredDocumentation","src":"6471:122:9","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":1198,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"6607:7:9","nodeType":"FunctionDefinition","parameters":{"id":1175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1168,"mutability":"mutable","name":"hash","nameLocation":"6623:4:9","nodeType":"VariableDeclaration","scope":1198,"src":"6615:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6615:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1170,"mutability":"mutable","name":"v","nameLocation":"6635:1:9","nodeType":"VariableDeclaration","scope":1198,"src":"6629:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1169,"name":"uint8","nodeType":"ElementaryTypeName","src":"6629:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1172,"mutability":"mutable","name":"r","nameLocation":"6646:1:9","nodeType":"VariableDeclaration","scope":1198,"src":"6638:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6638:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1174,"mutability":"mutable","name":"s","nameLocation":"6657:1:9","nodeType":"VariableDeclaration","scope":1198,"src":"6649:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6649:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6614:45:9"},"returnParameters":{"id":1178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1177,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1198,"src":"6683:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1176,"name":"address","nodeType":"ElementaryTypeName","src":"6683:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6682:9:9"},"scope":1263,"src":"6598:232:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1207,"nodeType":"Block","src":"7206:310:9","statements":[{"AST":{"nodeType":"YulBlock","src":"7362:148:9","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7383:4:9","type":"","value":"0x00"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nodeType":"YulLiteral","src":"7389:34:9","type":"","value":"\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7376:6:9"},"nodeType":"YulFunctionCall","src":"7376:48:9"},"nodeType":"YulExpressionStatement","src":"7376:48:9"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7444:4:9","type":"","value":"0x1c"},{"name":"hash","nodeType":"YulIdentifier","src":"7450:4:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7437:6:9"},"nodeType":"YulFunctionCall","src":"7437:18:9"},"nodeType":"YulExpressionStatement","src":"7437:18:9"},{"nodeType":"YulAssignment","src":"7468:32:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7489:4:9","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"7495:4:9","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"7479:9:9"},"nodeType":"YulFunctionCall","src":"7479:21:9"},"variableNames":[{"name":"message","nodeType":"YulIdentifier","src":"7468:7:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1201,"isOffset":false,"isSlot":false,"src":"7450:4:9","valueSize":1},{"declaration":1204,"isOffset":false,"isSlot":false,"src":"7468:7:9","valueSize":1}],"id":1206,"nodeType":"InlineAssembly","src":"7353:157:9"}]},"documentation":{"id":1199,"nodeType":"StructuredDocumentation","src":"6836:279:9","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":1208,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7129:22:9","nodeType":"FunctionDefinition","parameters":{"id":1202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1201,"mutability":"mutable","name":"hash","nameLocation":"7160:4:9","nodeType":"VariableDeclaration","scope":1208,"src":"7152:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7152:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7151:14:9"},"returnParameters":{"id":1205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1204,"mutability":"mutable","name":"message","nameLocation":"7197:7:9","nodeType":"VariableDeclaration","scope":1208,"src":"7189:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7189:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7188:17:9"},"scope":1263,"src":"7120:396:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1229,"nodeType":"Block","src":"7881:116:9","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":1219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7925:32:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"expression":{"id":1222,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1211,"src":"7976:1:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7978:6:9","memberName":"length","nodeType":"MemberAccess","src":"7976:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1220,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"7959:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$897_$","typeString":"type(library Strings)"}},"id":1221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7967:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":727,"src":"7959:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":1224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7959:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1225,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1211,"src":"7987:1:9","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":1217,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7908:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7912:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"7908:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7908:81:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1216,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7898:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7898:92:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1215,"id":1228,"nodeType":"Return","src":"7891:99:9"}]},"documentation":{"id":1209,"nodeType":"StructuredDocumentation","src":"7522:274:9","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":1230,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"7810:22:9","nodeType":"FunctionDefinition","parameters":{"id":1212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1211,"mutability":"mutable","name":"s","nameLocation":"7846:1:9","nodeType":"VariableDeclaration","scope":1230,"src":"7833:14:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1210,"name":"bytes","nodeType":"ElementaryTypeName","src":"7833:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7832:16:9"},"returnParameters":{"id":1215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1230,"src":"7872:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7872:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7871:9:9"},"scope":1263,"src":"7801:196:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1241,"nodeType":"Block","src":"8443:290:9","statements":[{"AST":{"nodeType":"YulBlock","src":"8505:222:9","statements":[{"nodeType":"YulVariableDeclaration","src":"8519:22:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8536:4:9","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8530:5:9"},"nodeType":"YulFunctionCall","src":"8530:11:9"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"8523:3:9","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8561:3:9"},{"hexValue":"1901","kind":"string","nodeType":"YulLiteral","src":"8566:10:9","type":"","value":"\u0019\u0001"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8554:6:9"},"nodeType":"YulFunctionCall","src":"8554:23:9"},"nodeType":"YulExpressionStatement","src":"8554:23:9"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8601:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"8606:4:9","type":"","value":"0x02"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8597:3:9"},"nodeType":"YulFunctionCall","src":"8597:14:9"},{"name":"domainSeparator","nodeType":"YulIdentifier","src":"8613:15:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8590:6:9"},"nodeType":"YulFunctionCall","src":"8590:39:9"},"nodeType":"YulExpressionStatement","src":"8590:39:9"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8653:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"8658:4:9","type":"","value":"0x22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8649:3:9"},"nodeType":"YulFunctionCall","src":"8649:14:9"},{"name":"structHash","nodeType":"YulIdentifier","src":"8665:10:9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8642:6:9"},"nodeType":"YulFunctionCall","src":"8642:34:9"},"nodeType":"YulExpressionStatement","src":"8642:34:9"},{"nodeType":"YulAssignment","src":"8689:28:9","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"8707:3:9"},{"kind":"number","nodeType":"YulLiteral","src":"8712:4:9","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"8697:9:9"},"nodeType":"YulFunctionCall","src":"8697:20:9"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"8689:4:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1238,"isOffset":false,"isSlot":false,"src":"8689:4:9","valueSize":1},{"declaration":1233,"isOffset":false,"isSlot":false,"src":"8613:15:9","valueSize":1},{"declaration":1235,"isOffset":false,"isSlot":false,"src":"8665:10:9","valueSize":1}],"id":1240,"nodeType":"InlineAssembly","src":"8496:231:9"}]},"documentation":{"id":1231,"nodeType":"StructuredDocumentation","src":"8003:328:9","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":1242,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"8345:15:9","nodeType":"FunctionDefinition","parameters":{"id":1236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1233,"mutability":"mutable","name":"domainSeparator","nameLocation":"8369:15:9","nodeType":"VariableDeclaration","scope":1242,"src":"8361:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8361:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1235,"mutability":"mutable","name":"structHash","nameLocation":"8394:10:9","nodeType":"VariableDeclaration","scope":1242,"src":"8386:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1234,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8386:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8360:45:9"},"returnParameters":{"id":1239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1238,"mutability":"mutable","name":"data","nameLocation":"8437:4:9","nodeType":"VariableDeclaration","scope":1242,"src":"8429:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1237,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8429:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8428:14:9"},"scope":1263,"src":"8336:397:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1261,"nodeType":"Block","src":"9048:80:9","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1900","id":1255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9092:10:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},"value":"\u0019\u0000"},{"id":1256,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"9104:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1257,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1247,"src":"9115:4:9","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":1253,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9075:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9079:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"9075:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9075:45:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1252,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9065:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9065:56:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1251,"id":1260,"nodeType":"Return","src":"9058:63:9"}]},"documentation":{"id":1243,"nodeType":"StructuredDocumentation","src":"8739:193:9","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":1262,"implemented":true,"kind":"function","modifiers":[],"name":"toDataWithIntendedValidatorHash","nameLocation":"8946:31:9","nodeType":"FunctionDefinition","parameters":{"id":1248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1245,"mutability":"mutable","name":"validator","nameLocation":"8986:9:9","nodeType":"VariableDeclaration","scope":1262,"src":"8978:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1244,"name":"address","nodeType":"ElementaryTypeName","src":"8978:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1247,"mutability":"mutable","name":"data","nameLocation":"9010:4:9","nodeType":"VariableDeclaration","scope":1262,"src":"8997:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1246,"name":"bytes","nodeType":"ElementaryTypeName","src":"8997:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8977:38:9"},"returnParameters":{"id":1251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1262,"src":"9039:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9039:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9038:9:9"},"scope":1263,"src":"8937:191:9","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1264,"src":"369:8761:9","usedErrors":[],"usedEvents":[]}],"src":"112:9019:9"},"id":9},"@openzeppelin/contracts/utils/cryptography/EIP712.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","exportedSymbols":{"ECDSA":[1263],"EIP712":[1467],"IERC5267":[234],"Math":[2432],"ShortString":[347],"ShortStrings":[558],"SignedMath":[2537],"StorageSlot":[668],"Strings":[897]},"id":1468,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1265,"literals":["solidity","^","0.8",".8"],"nodeType":"PragmaDirective","src":"113:23:10"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","id":1266,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1468,"sourceUnit":1264,"src":"138:21:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/ShortStrings.sol","file":"../ShortStrings.sol","id":1267,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1468,"sourceUnit":559,"src":"160:29:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC5267.sol","file":"../../interfaces/IERC5267.sol","id":1268,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1468,"sourceUnit":235,"src":"190:39:10","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1270,"name":"IERC5267","nameLocations":["1837:8:10"],"nodeType":"IdentifierPath","referencedDeclaration":234,"src":"1837:8:10"},"id":1271,"nodeType":"InheritanceSpecifier","src":"1837:8:10"}],"canonicalName":"EIP712","contractDependencies":[],"contractKind":"contract","documentation":{"id":1269,"nodeType":"StructuredDocumentation","src":"231:1577:10","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":1467,"linearizedBaseContracts":[1467,234],"name":"EIP712","nameLocation":"1827:6:10","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1273,"libraryName":{"id":1272,"name":"ShortStrings","nameLocations":["1858:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":558,"src":"1858:12:10"},"nodeType":"UsingForDirective","src":"1852:25:10"},{"constant":true,"id":1278,"mutability":"constant","name":"_TYPE_HASH","nameLocation":"1908:10:10","nodeType":"VariableDeclaration","scope":1467,"src":"1883:141:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1883:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":1276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1939:84:10","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":1275,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1929:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1929:95:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":1280,"mutability":"immutable","name":"_cachedDomainSeparator","nameLocation":"2249:22:10","nodeType":"VariableDeclaration","scope":1467,"src":"2223:48:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2223:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":1282,"mutability":"immutable","name":"_cachedChainId","nameLocation":"2303:14:10","nodeType":"VariableDeclaration","scope":1467,"src":"2277:40:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1281,"name":"uint256","nodeType":"ElementaryTypeName","src":"2277:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":1284,"mutability":"immutable","name":"_cachedThis","nameLocation":"2349:11:10","nodeType":"VariableDeclaration","scope":1467,"src":"2323:37:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1283,"name":"address","nodeType":"ElementaryTypeName","src":"2323:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":1286,"mutability":"immutable","name":"_hashedName","nameLocation":"2393:11:10","nodeType":"VariableDeclaration","scope":1467,"src":"2367:37:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2367:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":1288,"mutability":"immutable","name":"_hashedVersion","nameLocation":"2436:14:10","nodeType":"VariableDeclaration","scope":1467,"src":"2410:40:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2410:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":1291,"mutability":"immutable","name":"_name","nameLocation":"2487:5:10","nodeType":"VariableDeclaration","scope":1467,"src":"2457:35:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"},"typeName":{"id":1290,"nodeType":"UserDefinedTypeName","pathNode":{"id":1289,"name":"ShortString","nameLocations":["2457:11:10"],"nodeType":"IdentifierPath","referencedDeclaration":347,"src":"2457:11:10"},"referencedDeclaration":347,"src":"2457:11:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"visibility":"private"},{"constant":false,"id":1294,"mutability":"immutable","name":"_version","nameLocation":"2528:8:10","nodeType":"VariableDeclaration","scope":1467,"src":"2498:38:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"},"typeName":{"id":1293,"nodeType":"UserDefinedTypeName","pathNode":{"id":1292,"name":"ShortString","nameLocations":["2498:11:10"],"nodeType":"IdentifierPath","referencedDeclaration":347,"src":"2498:11:10"},"referencedDeclaration":347,"src":"2498:11:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"visibility":"private"},{"constant":false,"id":1296,"mutability":"mutable","name":"_nameFallback","nameLocation":"2557:13:10","nodeType":"VariableDeclaration","scope":1467,"src":"2542:28:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1295,"name":"string","nodeType":"ElementaryTypeName","src":"2542:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":1298,"mutability":"mutable","name":"_versionFallback","nameLocation":"2591:16:10","nodeType":"VariableDeclaration","scope":1467,"src":"2576:31:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1297,"name":"string","nodeType":"ElementaryTypeName","src":"2576:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":1355,"nodeType":"Block","src":"3233:376:10","statements":[{"expression":{"id":1311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1306,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1291,"src":"3243:5:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1309,"name":"_nameFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1296,"src":"3282:13:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":1307,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1301,"src":"3251:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":1308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3256:25:10","memberName":"toShortStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":499,"src":"3251:30:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_storage_ptr_$returns$_t_userDefinedValueType$_ShortString_$347_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory,string storage pointer) returns (ShortString)"}},"id":1310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3251:45:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"src":"3243:53:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"id":1312,"nodeType":"ExpressionStatement","src":"3243:53:10"},{"expression":{"id":1318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1313,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1294,"src":"3306:8:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1316,"name":"_versionFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1298,"src":"3351:16:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":1314,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"3317:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":1315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3325:25:10","memberName":"toShortStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":499,"src":"3317:33:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_storage_ptr_$returns$_t_userDefinedValueType$_ShortString_$347_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory,string storage pointer) returns (ShortString)"}},"id":1317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:51:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"src":"3306:62:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"id":1319,"nodeType":"ExpressionStatement","src":"3306:62:10"},{"expression":{"id":1327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1320,"name":"_hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1286,"src":"3378:11:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":1324,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1301,"src":"3408:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3402:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1322,"name":"bytes","nodeType":"ElementaryTypeName","src":"3402:5:10","typeDescriptions":{}}},"id":1325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3402:11:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1321,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3392:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3392:22:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3378:36:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1328,"nodeType":"ExpressionStatement","src":"3378:36:10"},{"expression":{"id":1336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1329,"name":"_hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"3424:14:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":1333,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"3457:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3451:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1331,"name":"bytes","nodeType":"ElementaryTypeName","src":"3451:5:10","typeDescriptions":{}}},"id":1334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3451:14:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1330,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3441:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3441:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3424:42:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1337,"nodeType":"ExpressionStatement","src":"3424:42:10"},{"expression":{"id":1341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1338,"name":"_cachedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1282,"src":"3477:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1339,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3494:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3500:7:10","memberName":"chainid","nodeType":"MemberAccess","src":"3494:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3477:30:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1342,"nodeType":"ExpressionStatement","src":"3477:30:10"},{"expression":{"id":1346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1343,"name":"_cachedDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1280,"src":"3517:22:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":1344,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1403,"src":"3542:21:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":1345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3542:23:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3517:48:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1347,"nodeType":"ExpressionStatement","src":"3517:48:10"},{"expression":{"id":1353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1348,"name":"_cachedThis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"3575:11:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1351,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3597:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$1467","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$1467","typeString":"contract EIP712"}],"id":1350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3589:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1349,"name":"address","nodeType":"ElementaryTypeName","src":"3589:7:10","typeDescriptions":{}}},"id":1352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3589:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3575:27:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1354,"nodeType":"ExpressionStatement","src":"3575:27:10"}]},"documentation":{"id":1299,"nodeType":"StructuredDocumentation","src":"2614:559:10","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":1356,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1301,"mutability":"mutable","name":"name","nameLocation":"3204:4:10","nodeType":"VariableDeclaration","scope":1356,"src":"3190:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1300,"name":"string","nodeType":"ElementaryTypeName","src":"3190:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1303,"mutability":"mutable","name":"version","nameLocation":"3224:7:10","nodeType":"VariableDeclaration","scope":1356,"src":"3210:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1302,"name":"string","nodeType":"ElementaryTypeName","src":"3210:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3189:43:10"},"returnParameters":{"id":1305,"nodeType":"ParameterList","parameters":[],"src":"3233:0:10"},"scope":1467,"src":"3178:431:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1381,"nodeType":"Block","src":"3757:200:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1364,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3779:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$1467","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$1467","typeString":"contract EIP712"}],"id":1363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3771:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1362,"name":"address","nodeType":"ElementaryTypeName","src":"3771:7:10","typeDescriptions":{}}},"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3771:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1366,"name":"_cachedThis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1284,"src":"3788:11:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3771:28:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1368,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3803:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3809:7:10","memberName":"chainid","nodeType":"MemberAccess","src":"3803:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1370,"name":"_cachedChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1282,"src":"3820:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3803:31:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3771:63:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1379,"nodeType":"Block","src":"3896:55:10","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1376,"name":"_buildDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1403,"src":"3917:21:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":1377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3917:23:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1361,"id":1378,"nodeType":"Return","src":"3910:30:10"}]},"id":1380,"nodeType":"IfStatement","src":"3767:184:10","trueBody":{"id":1375,"nodeType":"Block","src":"3836:54:10","statements":[{"expression":{"id":1373,"name":"_cachedDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1280,"src":"3857:22:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1361,"id":1374,"nodeType":"Return","src":"3850:29:10"}]}}]},"documentation":{"id":1357,"nodeType":"StructuredDocumentation","src":"3615:75:10","text":" @dev Returns the domain separator for the current chain."},"id":1382,"implemented":true,"kind":"function","modifiers":[],"name":"_domainSeparatorV4","nameLocation":"3704:18:10","nodeType":"FunctionDefinition","parameters":{"id":1358,"nodeType":"ParameterList","parameters":[],"src":"3722:2:10"},"returnParameters":{"id":1361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1382,"src":"3748:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1359,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3748:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3747:9:10"},"scope":1467,"src":"3695:262:10","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1402,"nodeType":"Block","src":"4027:116:10","statements":[{"expression":{"arguments":[{"arguments":[{"id":1390,"name":"_TYPE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1278,"src":"4065:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1391,"name":"_hashedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1286,"src":"4077:11:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1392,"name":"_hashedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1288,"src":"4090:14:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":1393,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4106:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4112:7:10","memberName":"chainid","nodeType":"MemberAccess","src":"4106:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1397,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4129:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$1467","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$1467","typeString":"contract EIP712"}],"id":1396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4121:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1395,"name":"address","nodeType":"ElementaryTypeName","src":"4121:7:10","typeDescriptions":{}}},"id":1398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4121:13:10","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":1388,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4054:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4058:6:10","memberName":"encode","nodeType":"MemberAccess","src":"4054:10:10","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4054:81:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1387,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4044:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:92:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1386,"id":1401,"nodeType":"Return","src":"4037:99:10"}]},"id":1403,"implemented":true,"kind":"function","modifiers":[],"name":"_buildDomainSeparator","nameLocation":"3972:21:10","nodeType":"FunctionDefinition","parameters":{"id":1383,"nodeType":"ParameterList","parameters":[],"src":"3993:2:10"},"returnParameters":{"id":1386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1403,"src":"4018:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1384,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4018:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4017:9:10"},"scope":1467,"src":"3963:180:10","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":1418,"nodeType":"Block","src":"4854:79:10","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1413,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1382,"src":"4893:18:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":1414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4893:20:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1415,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1406,"src":"4915:10:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1411,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1263,"src":"4871:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$1263_$","typeString":"type(library ECDSA)"}},"id":1412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4877:15:10","memberName":"toTypedDataHash","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"4871:21:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":1416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4871:55:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1410,"id":1417,"nodeType":"Return","src":"4864:62:10"}]},"documentation":{"id":1404,"nodeType":"StructuredDocumentation","src":"4149:614:10","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":1419,"implemented":true,"kind":"function","modifiers":[],"name":"_hashTypedDataV4","nameLocation":"4777:16:10","nodeType":"FunctionDefinition","parameters":{"id":1407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1406,"mutability":"mutable","name":"structHash","nameLocation":"4802:10:10","nodeType":"VariableDeclaration","scope":1419,"src":"4794:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4794:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4793:20:10"},"returnParameters":{"id":1410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1419,"src":"4845:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4845:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4844:9:10"},"scope":1467,"src":"4768:165:10","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[233],"body":{"id":1465,"nodeType":"Block","src":"5366:288:10","statements":[{"expression":{"components":[{"hexValue":"0f","id":1439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"5397:7:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c","typeString":"literal_string hex\"0f\""},"value":"\u000f"},{"arguments":[{"id":1442,"name":"_nameFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1296,"src":"5454:13:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":1440,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1291,"src":"5427:5:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"id":1441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5433:20:10","memberName":"toStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":526,"src":"5427:26:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$347_$_t_string_storage_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_userDefinedValueType$_ShortString_$347_$","typeString":"function (ShortString,string storage pointer) pure returns (string memory)"}},"id":1443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5427:41:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":1446,"name":"_versionFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1298,"src":"5512:16:10","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":1444,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1294,"src":"5482:8:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_ShortString_$347","typeString":"ShortString"}},"id":1445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5491:20:10","memberName":"toStringWithFallback","nodeType":"MemberAccess","referencedDeclaration":526,"src":"5482:29:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_userDefinedValueType$_ShortString_$347_$_t_string_storage_ptr_$returns$_t_string_memory_ptr_$attached_to$_t_userDefinedValueType$_ShortString_$347_$","typeString":"function (ShortString,string storage pointer) pure returns (string memory)"}},"id":1447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5482:47:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":1448,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5543:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5549:7:10","memberName":"chainid","nodeType":"MemberAccess","src":"5543:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1452,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5578:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_EIP712_$1467","typeString":"contract EIP712"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_EIP712_$1467","typeString":"contract EIP712"}],"id":1451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5570:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1450,"name":"address","nodeType":"ElementaryTypeName","src":"5570:7:10","typeDescriptions":{}}},"id":1453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5570:13:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":1456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5605:1:10","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":1455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5597:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1454,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5597:7:10","typeDescriptions":{}}},"id":1457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5597:10:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":1461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5635:1:10","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":1460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5621:13:10","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":1458,"name":"uint256","nodeType":"ElementaryTypeName","src":"5625:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1459,"nodeType":"ArrayTypeName","src":"5625:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":1462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5621:16:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"id":1463,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5383:264:10","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":1438,"id":1464,"nodeType":"Return","src":"5376:271:10"}]},"documentation":{"id":1420,"nodeType":"StructuredDocumentation","src":"4939:77:10","text":" @dev See {EIP-5267}.\n _Available since v4.9._"},"functionSelector":"84b0196e","id":1466,"implemented":true,"kind":"function","modifiers":[],"name":"eip712Domain","nameLocation":"5030:12:10","nodeType":"FunctionDefinition","overrides":{"id":1422,"nodeType":"OverrideSpecifier","overrides":[],"src":"5097:8:10"},"parameters":{"id":1421,"nodeType":"ParameterList","parameters":[],"src":"5042:2:10"},"returnParameters":{"id":1438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1424,"mutability":"mutable","name":"fields","nameLocation":"5143:6:10","nodeType":"VariableDeclaration","scope":1466,"src":"5136:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":1423,"name":"bytes1","nodeType":"ElementaryTypeName","src":"5136:6:10","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"},{"constant":false,"id":1426,"mutability":"mutable","name":"name","nameLocation":"5177:4:10","nodeType":"VariableDeclaration","scope":1466,"src":"5163:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1425,"name":"string","nodeType":"ElementaryTypeName","src":"5163:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1428,"mutability":"mutable","name":"version","nameLocation":"5209:7:10","nodeType":"VariableDeclaration","scope":1466,"src":"5195:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1427,"name":"string","nodeType":"ElementaryTypeName","src":"5195:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1430,"mutability":"mutable","name":"chainId","nameLocation":"5238:7:10","nodeType":"VariableDeclaration","scope":1466,"src":"5230:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1429,"name":"uint256","nodeType":"ElementaryTypeName","src":"5230:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1432,"mutability":"mutable","name":"verifyingContract","nameLocation":"5267:17:10","nodeType":"VariableDeclaration","scope":1466,"src":"5259:25:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1431,"name":"address","nodeType":"ElementaryTypeName","src":"5259:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1434,"mutability":"mutable","name":"salt","nameLocation":"5306:4:10","nodeType":"VariableDeclaration","scope":1466,"src":"5298:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5298:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1437,"mutability":"mutable","name":"extensions","nameLocation":"5341:10:10","nodeType":"VariableDeclaration","scope":1466,"src":"5324:27:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1435,"name":"uint256","nodeType":"ElementaryTypeName","src":"5324:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1436,"nodeType":"ArrayTypeName","src":"5324:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5122:239:10"},"scope":1467,"src":"5021:633:10","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":1468,"src":"1809:3847:10","usedErrors":[355,357],"usedEvents":[214]}],"src":"113:5544:10"},"id":10},"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol","exportedSymbols":{"ECDSA":[1263],"IERC1271":[209],"Math":[2432],"SignatureChecker":[1566],"SignedMath":[2537],"Strings":[897]},"id":1567,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1469,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"123:23:11"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"./ECDSA.sol","id":1470,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1567,"sourceUnit":1264,"src":"148:21:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/IERC1271.sol","file":"../../interfaces/IERC1271.sol","id":1471,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1567,"sourceUnit":210,"src":"170:39:11","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"SignatureChecker","contractDependencies":[],"contractKind":"library","documentation":{"id":1472,"nodeType":"StructuredDocumentation","src":"211:294:11","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":1566,"linearizedBaseContracts":[1566],"name":"SignatureChecker","nameLocation":"514:16:11","nodeType":"ContractDefinition","nodes":[{"body":{"id":1512,"nodeType":"Block","src":"1126:254:11","statements":[{"assignments":[1485,1488],"declarations":[{"constant":false,"id":1485,"mutability":"mutable","name":"recovered","nameLocation":"1145:9:11","nodeType":"VariableDeclaration","scope":1512,"src":"1137:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1484,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1488,"mutability":"mutable","name":"error","nameLocation":"1175:5:11","nodeType":"VariableDeclaration","scope":1512,"src":"1156:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1487,"nodeType":"UserDefinedTypeName","pathNode":{"id":1486,"name":"ECDSA.RecoverError","nameLocations":["1156:5:11","1162:12:11"],"nodeType":"IdentifierPath","referencedDeclaration":907,"src":"1156:18:11"},"referencedDeclaration":907,"src":"1156:18:11","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"}],"id":1494,"initialValue":{"arguments":[{"id":1491,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1477,"src":"1201:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1492,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"1207:9:11","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":1489,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1263,"src":"1184:5:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$1263_$","typeString":"type(library ECDSA)"}},"id":1490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1190:10:11","memberName":"tryRecover","nodeType":"MemberAccess","referencedDeclaration":997,"src":"1184:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError)"}},"id":1493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1184:33:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$907_$","typeString":"tuple(address,enum ECDSA.RecoverError)"}},"nodeType":"VariableDeclarationStatement","src":"1136:81:11"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"},"id":1499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1495,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1488,"src":"1247:5:11","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":1496,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1263,"src":"1256:5:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$1263_$","typeString":"type(library ECDSA)"}},"id":1497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1262:12:11","memberName":"RecoverError","nodeType":"MemberAccess","referencedDeclaration":907,"src":"1256:18:11","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$907_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1275:7:11","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":902,"src":"1256:26:11","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$907","typeString":"enum ECDSA.RecoverError"}},"src":"1247:35:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1500,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1485,"src":"1286:9:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1501,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1475,"src":"1299:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1286:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1247:58:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1504,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1246:60:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1506,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1475,"src":"1349:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1507,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1477,"src":"1357:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1508,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"1363:9:11","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":1505,"name":"isValidERC1271SignatureNow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1565,"src":"1322:26:11","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":1509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:51:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1246:127:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1483,"id":1511,"nodeType":"Return","src":"1227:146:11"}]},"documentation":{"id":1473,"nodeType":"StructuredDocumentation","src":"537:472:11","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":1513,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"1023:19:11","nodeType":"FunctionDefinition","parameters":{"id":1480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1475,"mutability":"mutable","name":"signer","nameLocation":"1051:6:11","nodeType":"VariableDeclaration","scope":1513,"src":"1043:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1474,"name":"address","nodeType":"ElementaryTypeName","src":"1043:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1477,"mutability":"mutable","name":"hash","nameLocation":"1067:4:11","nodeType":"VariableDeclaration","scope":1513,"src":"1059:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1476,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1059:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1479,"mutability":"mutable","name":"signature","nameLocation":"1086:9:11","nodeType":"VariableDeclaration","scope":1513,"src":"1073:22:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1478,"name":"bytes","nodeType":"ElementaryTypeName","src":"1073:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1042:54:11"},"returnParameters":{"id":1483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1482,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1513,"src":"1120:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1481,"name":"bool","nodeType":"ElementaryTypeName","src":"1120:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1119:6:11"},"scope":1566,"src":"1014:366:11","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1564,"nodeType":"Block","src":"1935:324:11","statements":[{"assignments":[1526,1528],"declarations":[{"constant":false,"id":1526,"mutability":"mutable","name":"success","nameLocation":"1951:7:11","nodeType":"VariableDeclaration","scope":1564,"src":"1946:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1525,"name":"bool","nodeType":"ElementaryTypeName","src":"1946:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1528,"mutability":"mutable","name":"result","nameLocation":"1973:6:11","nodeType":"VariableDeclaration","scope":1564,"src":"1960:19:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1527,"name":"bytes","nodeType":"ElementaryTypeName","src":"1960:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1540,"initialValue":{"arguments":[{"arguments":[{"expression":{"expression":{"id":1533,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"2037:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$209_$","typeString":"type(contract IERC1271)"}},"id":1534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2046:16:11","memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":208,"src":"2037:25:11","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":1535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2063:8:11","memberName":"selector","nodeType":"MemberAccess","src":"2037:34:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":1536,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1518,"src":"2073:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1537,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"2079:9:11","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":1531,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2014:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2018:18:11","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2014:22:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":1538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2014:75:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1529,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"1983:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1990:10:11","memberName":"staticcall","nodeType":"MemberAccess","src":"1983:17:11","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":1539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1983:116:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1945:154:11"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1541,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1526,"src":"2117:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1542,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1528,"src":"2140:6:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2147:6:11","memberName":"length","nodeType":"MemberAccess","src":"2140:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":1544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2157:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2140:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2117:42:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1549,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1528,"src":"2186:6:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":1551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2195:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2195:7:11","typeDescriptions":{}}}],"id":1552,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2194:9:11","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":1547,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2175:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2179:6:11","memberName":"decode","nodeType":"MemberAccess","src":"2175:10:11","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2175:29:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"expression":{"id":1556,"name":"IERC1271","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"2216:8:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1271_$209_$","typeString":"type(contract IERC1271)"}},"id":1557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2225:16:11","memberName":"isValidSignature","nodeType":"MemberAccess","referencedDeclaration":208,"src":"2216:25:11","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":1558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2242:8:11","memberName":"selector","nodeType":"MemberAccess","src":"2216:34:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":1555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2208:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2208:7:11","typeDescriptions":{}}},"id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:43:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2175:76:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2117:134:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1562,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2116:136:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1524,"id":1563,"nodeType":"Return","src":"2109:143:11"}]},"documentation":{"id":1514,"nodeType":"StructuredDocumentation","src":"1386:395:11","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":1565,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNow","nameLocation":"1795:26:11","nodeType":"FunctionDefinition","parameters":{"id":1521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1516,"mutability":"mutable","name":"signer","nameLocation":"1839:6:11","nodeType":"VariableDeclaration","scope":1565,"src":"1831:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1515,"name":"address","nodeType":"ElementaryTypeName","src":"1831:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1518,"mutability":"mutable","name":"hash","nameLocation":"1863:4:11","nodeType":"VariableDeclaration","scope":1565,"src":"1855:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1855:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1520,"mutability":"mutable","name":"signature","nameLocation":"1890:9:11","nodeType":"VariableDeclaration","scope":1565,"src":"1877:22:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1519,"name":"bytes","nodeType":"ElementaryTypeName","src":"1877:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1821:84:11"},"returnParameters":{"id":1524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1565,"src":"1929:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1522,"name":"bool","nodeType":"ElementaryTypeName","src":"1929:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1928:6:11"},"scope":1566,"src":"1786:473:11","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":1567,"src":"506:1755:11","usedErrors":[],"usedEvents":[]}],"src":"123:2139:11"},"id":11},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[2432]},"id":2433,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1568,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"103:23:12"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":1569,"nodeType":"StructuredDocumentation","src":"128:73:12","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":2432,"linearizedBaseContracts":[2432],"name":"Math","nameLocation":"210:4:12","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":1573,"members":[{"id":1570,"name":"Down","nameLocation":"245:4:12","nodeType":"EnumValue","src":"245:4:12"},{"id":1571,"name":"Up","nameLocation":"287:2:12","nodeType":"EnumValue","src":"287:2:12"},{"id":1572,"name":"Zero","nameLocation":"318:4:12","nodeType":"EnumValue","src":"318:4:12"}],"name":"Rounding","nameLocation":"226:8:12","nodeType":"EnumDefinition","src":"221:122:12"},{"body":{"id":1590,"nodeType":"Block","src":"480:37:12","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1583,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1576,"src":"497:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1584,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"501:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"497:5:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1587,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"509:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"497:13:12","trueExpression":{"id":1586,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1576,"src":"505:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1582,"id":1589,"nodeType":"Return","src":"490:20:12"}]},"documentation":{"id":1574,"nodeType":"StructuredDocumentation","src":"349:59:12","text":" @dev Returns the largest of two numbers."},"id":1591,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"422:3:12","nodeType":"FunctionDefinition","parameters":{"id":1579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1576,"mutability":"mutable","name":"a","nameLocation":"434:1:12","nodeType":"VariableDeclaration","scope":1591,"src":"426:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1575,"name":"uint256","nodeType":"ElementaryTypeName","src":"426:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1578,"mutability":"mutable","name":"b","nameLocation":"445:1:12","nodeType":"VariableDeclaration","scope":1591,"src":"437:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1577,"name":"uint256","nodeType":"ElementaryTypeName","src":"437:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"425:22:12"},"returnParameters":{"id":1582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1581,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1591,"src":"471:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1580,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"470:9:12"},"scope":2432,"src":"413:104:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1608,"nodeType":"Block","src":"655:37:12","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1601,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1594,"src":"672:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1602,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"676:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"672:5:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1605,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"684:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"672:13:12","trueExpression":{"id":1604,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1594,"src":"680:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1600,"id":1607,"nodeType":"Return","src":"665:20:12"}]},"documentation":{"id":1592,"nodeType":"StructuredDocumentation","src":"523:60:12","text":" @dev Returns the smallest of two numbers."},"id":1609,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"597:3:12","nodeType":"FunctionDefinition","parameters":{"id":1597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1594,"mutability":"mutable","name":"a","nameLocation":"609:1:12","nodeType":"VariableDeclaration","scope":1609,"src":"601:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1593,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1596,"mutability":"mutable","name":"b","nameLocation":"620:1:12","nodeType":"VariableDeclaration","scope":1609,"src":"612:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1595,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:12"},"returnParameters":{"id":1600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1609,"src":"646:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1598,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:9:12"},"scope":2432,"src":"588:104:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1631,"nodeType":"Block","src":"876:82:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1619,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1612,"src":"931:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":1620,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1614,"src":"935:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"931:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1622,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"930:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1623,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1612,"src":"941:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":1624,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1614,"src":"945:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"941:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1626,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"940:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":1627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"940:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"930:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1618,"id":1630,"nodeType":"Return","src":"923:28:12"}]},"documentation":{"id":1610,"nodeType":"StructuredDocumentation","src":"698:102:12","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":1632,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"814:7:12","nodeType":"FunctionDefinition","parameters":{"id":1615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1612,"mutability":"mutable","name":"a","nameLocation":"830:1:12","nodeType":"VariableDeclaration","scope":1632,"src":"822:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1611,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1614,"mutability":"mutable","name":"b","nameLocation":"841:1:12","nodeType":"VariableDeclaration","scope":1632,"src":"833:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1613,"name":"uint256","nodeType":"ElementaryTypeName","src":"833:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:22:12"},"returnParameters":{"id":1618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1617,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1632,"src":"867:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1616,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"866:9:12"},"scope":2432,"src":"805:153:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1656,"nodeType":"Block","src":"1228:123:12","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1642,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1635,"src":"1316:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1316:6:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1646,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1635,"src":"1330:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1330:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1649,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1329:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1650,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1637,"src":"1339:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1329:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1329:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1316:28:12","trueExpression":{"hexValue":"30","id":1645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1325:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1641,"id":1655,"nodeType":"Return","src":"1309:35:12"}]},"documentation":{"id":1633,"nodeType":"StructuredDocumentation","src":"964:188:12","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":1657,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"1166:7:12","nodeType":"FunctionDefinition","parameters":{"id":1638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1635,"mutability":"mutable","name":"a","nameLocation":"1182:1:12","nodeType":"VariableDeclaration","scope":1657,"src":"1174:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1634,"name":"uint256","nodeType":"ElementaryTypeName","src":"1174:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1637,"mutability":"mutable","name":"b","nameLocation":"1193:1:12","nodeType":"VariableDeclaration","scope":1657,"src":"1185:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1636,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1173:22:12"},"returnParameters":{"id":1641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1657,"src":"1219:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1639,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1218:9:12"},"scope":2432,"src":"1157:194:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1779,"nodeType":"Block","src":"1765:4115:12","statements":[{"id":1778,"nodeType":"UncheckedBlock","src":"1775:4099:12","statements":[{"assignments":[1670],"declarations":[{"constant":false,"id":1670,"mutability":"mutable","name":"prod0","nameLocation":"2104:5:12","nodeType":"VariableDeclaration","scope":1778,"src":"2096:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1669,"name":"uint256","nodeType":"ElementaryTypeName","src":"2096:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1671,"nodeType":"VariableDeclarationStatement","src":"2096:13:12"},{"assignments":[1673],"declarations":[{"constant":false,"id":1673,"mutability":"mutable","name":"prod1","nameLocation":"2176:5:12","nodeType":"VariableDeclaration","scope":1778,"src":"2168:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1672,"name":"uint256","nodeType":"ElementaryTypeName","src":"2168:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1674,"nodeType":"VariableDeclarationStatement","src":"2168:13:12"},{"AST":{"nodeType":"YulBlock","src":"2248:157:12","statements":[{"nodeType":"YulVariableDeclaration","src":"2266:30:12","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2283:1:12"},{"name":"y","nodeType":"YulIdentifier","src":"2286:1:12"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2293:1:12","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2289:3:12"},"nodeType":"YulFunctionCall","src":"2289:6:12"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2276:6:12"},"nodeType":"YulFunctionCall","src":"2276:20:12"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"2270:2:12","type":""}]},{"nodeType":"YulAssignment","src":"2313:18:12","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"2326:1:12"},{"name":"y","nodeType":"YulIdentifier","src":"2329:1:12"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2322:3:12"},"nodeType":"YulFunctionCall","src":"2322:9:12"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2313:5:12"}]},{"nodeType":"YulAssignment","src":"2348:43:12","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2365:2:12"},{"name":"prod0","nodeType":"YulIdentifier","src":"2369:5:12"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2361:3:12"},"nodeType":"YulFunctionCall","src":"2361:14:12"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"2380:2:12"},{"name":"prod0","nodeType":"YulIdentifier","src":"2384:5:12"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2377:2:12"},"nodeType":"YulFunctionCall","src":"2377:13:12"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2357:3:12"},"nodeType":"YulFunctionCall","src":"2357:34:12"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2348:5:12"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1670,"isOffset":false,"isSlot":false,"src":"2313:5:12","valueSize":1},{"declaration":1670,"isOffset":false,"isSlot":false,"src":"2369:5:12","valueSize":1},{"declaration":1670,"isOffset":false,"isSlot":false,"src":"2384:5:12","valueSize":1},{"declaration":1673,"isOffset":false,"isSlot":false,"src":"2348:5:12","valueSize":1},{"declaration":1660,"isOffset":false,"isSlot":false,"src":"2283:1:12","valueSize":1},{"declaration":1660,"isOffset":false,"isSlot":false,"src":"2326:1:12","valueSize":1},{"declaration":1662,"isOffset":false,"isSlot":false,"src":"2286:1:12","valueSize":1},{"declaration":1662,"isOffset":false,"isSlot":false,"src":"2329:1:12","valueSize":1}],"id":1675,"nodeType":"InlineAssembly","src":"2239:166:12"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1676,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1673,"src":"2486:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2495:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2486:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1684,"nodeType":"IfStatement","src":"2482:368:12","trueBody":{"id":1683,"nodeType":"Block","src":"2498:352:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1679,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1670,"src":"2816:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1680,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"2824:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2816:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1668,"id":1682,"nodeType":"Return","src":"2809:26:12"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1686,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"2960:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1687,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1673,"src":"2974:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2960:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6174683a206d756c446976206f766572666c6f77","id":1689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2981:23:12","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":1685,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2952:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2952:53:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1691,"nodeType":"ExpressionStatement","src":"2952:53:12"},{"assignments":[1693],"declarations":[{"constant":false,"id":1693,"mutability":"mutable","name":"remainder","nameLocation":"3269:9:12","nodeType":"VariableDeclaration","scope":1778,"src":"3261:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1692,"name":"uint256","nodeType":"ElementaryTypeName","src":"3261:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1694,"nodeType":"VariableDeclarationStatement","src":"3261:17:12"},{"AST":{"nodeType":"YulBlock","src":"3301:291:12","statements":[{"nodeType":"YulAssignment","src":"3370:38:12","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3390:1:12"},{"name":"y","nodeType":"YulIdentifier","src":"3393:1:12"},{"name":"denominator","nodeType":"YulIdentifier","src":"3396:11:12"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"3383:6:12"},"nodeType":"YulFunctionCall","src":"3383:25:12"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"3370:9:12"}]},{"nodeType":"YulAssignment","src":"3490:41:12","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"3503:5:12"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"3513:9:12"},{"name":"prod0","nodeType":"YulIdentifier","src":"3524:5:12"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3510:2:12"},"nodeType":"YulFunctionCall","src":"3510:20:12"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3499:3:12"},"nodeType":"YulFunctionCall","src":"3499:32:12"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"3490:5:12"}]},{"nodeType":"YulAssignment","src":"3548:30:12","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"3561:5:12"},{"name":"remainder","nodeType":"YulIdentifier","src":"3568:9:12"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3557:3:12"},"nodeType":"YulFunctionCall","src":"3557:21:12"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"3548:5:12"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1664,"isOffset":false,"isSlot":false,"src":"3396:11:12","valueSize":1},{"declaration":1670,"isOffset":false,"isSlot":false,"src":"3524:5:12","valueSize":1},{"declaration":1670,"isOffset":false,"isSlot":false,"src":"3548:5:12","valueSize":1},{"declaration":1670,"isOffset":false,"isSlot":false,"src":"3561:5:12","valueSize":1},{"declaration":1673,"isOffset":false,"isSlot":false,"src":"3490:5:12","valueSize":1},{"declaration":1673,"isOffset":false,"isSlot":false,"src":"3503:5:12","valueSize":1},{"declaration":1693,"isOffset":false,"isSlot":false,"src":"3370:9:12","valueSize":1},{"declaration":1693,"isOffset":false,"isSlot":false,"src":"3513:9:12","valueSize":1},{"declaration":1693,"isOffset":false,"isSlot":false,"src":"3568:9:12","valueSize":1},{"declaration":1660,"isOffset":false,"isSlot":false,"src":"3390:1:12","valueSize":1},{"declaration":1662,"isOffset":false,"isSlot":false,"src":"3393:1:12","valueSize":1}],"id":1695,"nodeType":"InlineAssembly","src":"3292:300:12"},{"assignments":[1697],"declarations":[{"constant":false,"id":1697,"mutability":"mutable","name":"twos","nameLocation":"3907:4:12","nodeType":"VariableDeclaration","scope":1778,"src":"3899:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1696,"name":"uint256","nodeType":"ElementaryTypeName","src":"3899:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1705,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1698,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"3914:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3929:12:12","subExpression":{"id":1699,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"3930:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3944:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3929:16:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1703,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3928:18:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3914:32:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3899:47:12"},{"AST":{"nodeType":"YulBlock","src":"3969:362:12","statements":[{"nodeType":"YulAssignment","src":"4034:37:12","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"4053:11:12"},{"name":"twos","nodeType":"YulIdentifier","src":"4066:4:12"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4049:3:12"},"nodeType":"YulFunctionCall","src":"4049:22:12"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"4034:11:12"}]},{"nodeType":"YulAssignment","src":"4138:25:12","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"4151:5:12"},{"name":"twos","nodeType":"YulIdentifier","src":"4158:4:12"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4147:3:12"},"nodeType":"YulFunctionCall","src":"4147:16:12"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"4138:5:12"}]},{"nodeType":"YulAssignment","src":"4278:39:12","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4298:1:12","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"4301:4:12"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4294:3:12"},"nodeType":"YulFunctionCall","src":"4294:12:12"},{"name":"twos","nodeType":"YulIdentifier","src":"4308:4:12"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4290:3:12"},"nodeType":"YulFunctionCall","src":"4290:23:12"},{"kind":"number","nodeType":"YulLiteral","src":"4315:1:12","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4286:3:12"},"nodeType":"YulFunctionCall","src":"4286:31:12"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"4278:4:12"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":1664,"isOffset":false,"isSlot":false,"src":"4034:11:12","valueSize":1},{"declaration":1664,"isOffset":false,"isSlot":false,"src":"4053:11:12","valueSize":1},{"declaration":1670,"isOffset":false,"isSlot":false,"src":"4138:5:12","valueSize":1},{"declaration":1670,"isOffset":false,"isSlot":false,"src":"4151:5:12","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"4066:4:12","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"4158:4:12","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"4278:4:12","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"4301:4:12","valueSize":1},{"declaration":1697,"isOffset":false,"isSlot":false,"src":"4308:4:12","valueSize":1}],"id":1706,"nodeType":"InlineAssembly","src":"3960:371:12"},{"expression":{"id":1711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1707,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1670,"src":"4397:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1708,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1673,"src":"4406:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1709,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"4414:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4406:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4397:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1712,"nodeType":"ExpressionStatement","src":"4397:21:12"},{"assignments":[1714],"declarations":[{"constant":false,"id":1714,"mutability":"mutable","name":"inverse","nameLocation":"4744:7:12","nodeType":"VariableDeclaration","scope":1778,"src":"4736:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1713,"name":"uint256","nodeType":"ElementaryTypeName","src":"4736:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1721,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":1715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4755:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1716,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"4759:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4755:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1718,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4754:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":1719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4774:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"4754:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4736:39:12"},{"expression":{"id":1728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1722,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"4992:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5003:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1724,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"5007:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1725,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5021:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5007:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5003:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4992:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1729,"nodeType":"ExpressionStatement","src":"4992:36:12"},{"expression":{"id":1736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1730,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5061:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5072:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1732,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"5076:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1733,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5090:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5076:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5072:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5061:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1737,"nodeType":"ExpressionStatement","src":"5061:36:12"},{"expression":{"id":1744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1738,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5131:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5142:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1740,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"5146:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1741,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5160:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5146:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5142:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5131:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1745,"nodeType":"ExpressionStatement","src":"5131:36:12"},{"expression":{"id":1752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1746,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5201:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5212:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1748,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"5216:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1749,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5230:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5216:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5212:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5201:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1753,"nodeType":"ExpressionStatement","src":"5201:36:12"},{"expression":{"id":1760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1754,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5271:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5282:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1756,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"5286:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1757,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5300:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5286:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5282:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5271:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1761,"nodeType":"ExpressionStatement","src":"5271:36:12"},{"expression":{"id":1768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1762,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5342:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5353:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1764,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"5357:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1765,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5371:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5353:25:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5342:36:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1769,"nodeType":"ExpressionStatement","src":"5342:36:12"},{"expression":{"id":1774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1770,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1667,"src":"5812:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1771,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1670,"src":"5821:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1772,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"5829:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5821:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5812:24:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1775,"nodeType":"ExpressionStatement","src":"5812:24:12"},{"expression":{"id":1776,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1667,"src":"5857:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1668,"id":1777,"nodeType":"Return","src":"5850:13:12"}]}]},"documentation":{"id":1658,"nodeType":"StructuredDocumentation","src":"1357:305:12","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":1780,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"1676:6:12","nodeType":"FunctionDefinition","parameters":{"id":1665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1660,"mutability":"mutable","name":"x","nameLocation":"1691:1:12","nodeType":"VariableDeclaration","scope":1780,"src":"1683:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1659,"name":"uint256","nodeType":"ElementaryTypeName","src":"1683:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1662,"mutability":"mutable","name":"y","nameLocation":"1702:1:12","nodeType":"VariableDeclaration","scope":1780,"src":"1694:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1661,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1664,"mutability":"mutable","name":"denominator","nameLocation":"1713:11:12","nodeType":"VariableDeclaration","scope":1780,"src":"1705:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1663,"name":"uint256","nodeType":"ElementaryTypeName","src":"1705:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1682:43:12"},"returnParameters":{"id":1668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1667,"mutability":"mutable","name":"result","nameLocation":"1757:6:12","nodeType":"VariableDeclaration","scope":1780,"src":"1749:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1666,"name":"uint256","nodeType":"ElementaryTypeName","src":"1749:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1748:16:12"},"scope":2432,"src":"1667:4213:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1823,"nodeType":"Block","src":"6122:189:12","statements":[{"assignments":[1796],"declarations":[{"constant":false,"id":1796,"mutability":"mutable","name":"result","nameLocation":"6140:6:12","nodeType":"VariableDeclaration","scope":1823,"src":"6132:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1795,"name":"uint256","nodeType":"ElementaryTypeName","src":"6132:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1802,"initialValue":{"arguments":[{"id":1798,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"6156:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1799,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1785,"src":"6159:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1800,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1787,"src":"6162:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1797,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[1780,1824],"referencedDeclaration":1780,"src":"6149:6:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":1801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6149:25:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6132:42:12"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"},"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1803,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1790,"src":"6188:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1804,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"6200:8:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$1573_$","typeString":"type(enum Math.Rounding)"}},"id":1805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6209:2:12","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":1571,"src":"6200:11:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"src":"6188:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1808,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1783,"src":"6222:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1809,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1785,"src":"6225:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1810,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1787,"src":"6228:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1807,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"6215:6:12","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":1811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6215:25:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6243:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6215:29:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6188:56:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1820,"nodeType":"IfStatement","src":"6184:98:12","trueBody":{"id":1819,"nodeType":"Block","src":"6246:36:12","statements":[{"expression":{"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1815,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"6260:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":1816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6270:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6260:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1818,"nodeType":"ExpressionStatement","src":"6260:11:12"}]}},{"expression":{"id":1821,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"6298:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1794,"id":1822,"nodeType":"Return","src":"6291:13:12"}]},"documentation":{"id":1781,"nodeType":"StructuredDocumentation","src":"5886:121:12","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":1824,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"6021:6:12","nodeType":"FunctionDefinition","parameters":{"id":1791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1783,"mutability":"mutable","name":"x","nameLocation":"6036:1:12","nodeType":"VariableDeclaration","scope":1824,"src":"6028:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1782,"name":"uint256","nodeType":"ElementaryTypeName","src":"6028:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1785,"mutability":"mutable","name":"y","nameLocation":"6047:1:12","nodeType":"VariableDeclaration","scope":1824,"src":"6039:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1784,"name":"uint256","nodeType":"ElementaryTypeName","src":"6039:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1787,"mutability":"mutable","name":"denominator","nameLocation":"6058:11:12","nodeType":"VariableDeclaration","scope":1824,"src":"6050:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1786,"name":"uint256","nodeType":"ElementaryTypeName","src":"6050:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1790,"mutability":"mutable","name":"rounding","nameLocation":"6080:8:12","nodeType":"VariableDeclaration","scope":1824,"src":"6071:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"},"typeName":{"id":1789,"nodeType":"UserDefinedTypeName","pathNode":{"id":1788,"name":"Rounding","nameLocations":["6071:8:12"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"6071:8:12"},"referencedDeclaration":1573,"src":"6071:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"6027:62:12"},"returnParameters":{"id":1794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1824,"src":"6113:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1792,"name":"uint256","nodeType":"ElementaryTypeName","src":"6113:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6112:9:12"},"scope":2432,"src":"6012:299:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1935,"nodeType":"Block","src":"6587:1585:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1832,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"6601:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6606:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6601:6:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1838,"nodeType":"IfStatement","src":"6597:45:12","trueBody":{"id":1837,"nodeType":"Block","src":"6609:33:12","statements":[{"expression":{"hexValue":"30","id":1835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6630:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1831,"id":1836,"nodeType":"Return","src":"6623:8:12"}]}},{"assignments":[1840],"declarations":[{"constant":false,"id":1840,"mutability":"mutable","name":"result","nameLocation":"7329:6:12","nodeType":"VariableDeclaration","scope":1935,"src":"7321:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1839,"name":"uint256","nodeType":"ElementaryTypeName","src":"7321:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1849,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":1841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7338:1:12","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":1846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1843,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7349:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1842,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[2104,2140],"referencedDeclaration":2104,"src":"7344:4:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7344:7:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7344:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1847,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7343:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7338:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7321:36:12"},{"id":1934,"nodeType":"UncheckedBlock","src":"7758:408:12","statements":[{"expression":{"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1850,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7782:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1851,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7792:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1852,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7801:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1853,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7805:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7792:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1856,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7791:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7816:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7791:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7782:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1860,"nodeType":"ExpressionStatement","src":"7782:35:12"},{"expression":{"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1861,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7831:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1862,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7841:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1863,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7850:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1864,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7854:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7841:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1867,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7840:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7865:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7840:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7831:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1871,"nodeType":"ExpressionStatement","src":"7831:35:12"},{"expression":{"id":1881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1872,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7880:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1873,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7890:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1874,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7899:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1875,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7903:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7890:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7889:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7914:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7889:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7880:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1882,"nodeType":"ExpressionStatement","src":"7880:35:12"},{"expression":{"id":1892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1883,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7929:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1884,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7939:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1885,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7948:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1886,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7952:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7939:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1889,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7938:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7963:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7938:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7929:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1893,"nodeType":"ExpressionStatement","src":"7929:35:12"},{"expression":{"id":1903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1894,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7978:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1895,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"7988:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1896,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"7997:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1897,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"8001:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7997:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7988:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1900,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7987:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8012:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7987:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7978:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1904,"nodeType":"ExpressionStatement","src":"7978:35:12"},{"expression":{"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1905,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"8027:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1906,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"8037:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1907,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"8046:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1908,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"8050:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8046:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8037:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1911,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8036:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8061:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8036:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8027:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1915,"nodeType":"ExpressionStatement","src":"8027:35:12"},{"expression":{"id":1925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1916,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"8076:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1917,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"8086:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1918,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"8095:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1919,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"8099:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8095:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8086:19:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1922,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8085:21:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":1923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8110:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8085:26:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8076:35:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1926,"nodeType":"ExpressionStatement","src":"8076:35:12"},{"expression":{"arguments":[{"id":1928,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"8136:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1929,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"8144:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1930,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1840,"src":"8148:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8144:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1927,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1609,"src":"8132:3:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:23:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1831,"id":1933,"nodeType":"Return","src":"8125:30:12"}]}]},"documentation":{"id":1825,"nodeType":"StructuredDocumentation","src":"6317:208:12","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":1936,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"6539:4:12","nodeType":"FunctionDefinition","parameters":{"id":1828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1827,"mutability":"mutable","name":"a","nameLocation":"6552:1:12","nodeType":"VariableDeclaration","scope":1936,"src":"6544:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1826,"name":"uint256","nodeType":"ElementaryTypeName","src":"6544:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6543:11:12"},"returnParameters":{"id":1831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1936,"src":"6578:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1829,"name":"uint256","nodeType":"ElementaryTypeName","src":"6578:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6577:9:12"},"scope":2432,"src":"6530:1642:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1971,"nodeType":"Block","src":"8348:161:12","statements":[{"id":1970,"nodeType":"UncheckedBlock","src":"8358:145:12","statements":[{"assignments":[1948],"declarations":[{"constant":false,"id":1948,"mutability":"mutable","name":"result","nameLocation":"8390:6:12","nodeType":"VariableDeclaration","scope":1970,"src":"8382:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1947,"name":"uint256","nodeType":"ElementaryTypeName","src":"8382:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1952,"initialValue":{"arguments":[{"id":1950,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1939,"src":"8404:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1949,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[1936,1972],"referencedDeclaration":1936,"src":"8399:4:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8399:7:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8382:24:12"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1953,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1948,"src":"8427:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"},"id":1957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1954,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1942,"src":"8437:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1955,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"8449:8:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$1573_$","typeString":"type(enum Math.Rounding)"}},"id":1956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8458:2:12","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":1571,"src":"8449:11:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"src":"8437:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1958,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1948,"src":"8464:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1959,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1948,"src":"8473:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:15:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1961,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1939,"src":"8482:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8464:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8437:46:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":1965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8490:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":1966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8437:54:12","trueExpression":{"hexValue":"31","id":1964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8486:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1967,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8436:56:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8427:65:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1946,"id":1969,"nodeType":"Return","src":"8420:72:12"}]}]},"documentation":{"id":1937,"nodeType":"StructuredDocumentation","src":"8178:89:12","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":1972,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8281:4:12","nodeType":"FunctionDefinition","parameters":{"id":1943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1939,"mutability":"mutable","name":"a","nameLocation":"8294:1:12","nodeType":"VariableDeclaration","scope":1972,"src":"8286:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1938,"name":"uint256","nodeType":"ElementaryTypeName","src":"8286:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1942,"mutability":"mutable","name":"rounding","nameLocation":"8306:8:12","nodeType":"VariableDeclaration","scope":1972,"src":"8297:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"},"typeName":{"id":1941,"nodeType":"UserDefinedTypeName","pathNode":{"id":1940,"name":"Rounding","nameLocations":["8297:8:12"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"8297:8:12"},"referencedDeclaration":1573,"src":"8297:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8285:30:12"},"returnParameters":{"id":1946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1972,"src":"8339:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1944,"name":"uint256","nodeType":"ElementaryTypeName","src":"8339:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8338:9:12"},"scope":2432,"src":"8272:237:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2103,"nodeType":"Block","src":"8694:922:12","statements":[{"assignments":[1981],"declarations":[{"constant":false,"id":1981,"mutability":"mutable","name":"result","nameLocation":"8712:6:12","nodeType":"VariableDeclaration","scope":2103,"src":"8704:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1980,"name":"uint256","nodeType":"ElementaryTypeName","src":"8704:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1983,"initialValue":{"hexValue":"30","id":1982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8721:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8704:18:12"},{"id":2100,"nodeType":"UncheckedBlock","src":"8732:855:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1984,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8760:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8769:3:12","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8760:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8775:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8760:16:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1998,"nodeType":"IfStatement","src":"8756:99:12","trueBody":{"id":1997,"nodeType":"Block","src":"8778:77:12","statements":[{"expression":{"id":1991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1989,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8796:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":1990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8806:3:12","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8796:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1992,"nodeType":"ExpressionStatement","src":"8796:13:12"},{"expression":{"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1993,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"8827:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":1994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8837:3:12","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8827:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1996,"nodeType":"ExpressionStatement","src":"8827:13:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1999,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8872:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":2000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8881:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8872:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8886:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8872:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2013,"nodeType":"IfStatement","src":"8868:96:12","trueBody":{"id":2012,"nodeType":"Block","src":"8889:75:12","statements":[{"expression":{"id":2006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2004,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8907:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":2005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8917:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8907:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2007,"nodeType":"ExpressionStatement","src":"8907:12:12"},{"expression":{"id":2010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2008,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"8937:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":2009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8947:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"8937:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2011,"nodeType":"ExpressionStatement","src":"8937:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2014,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"8981:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":2015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8990:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"8981:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8995:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8981:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2028,"nodeType":"IfStatement","src":"8977:96:12","trueBody":{"id":2027,"nodeType":"Block","src":"8998:75:12","statements":[{"expression":{"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2019,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9016:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":2020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9026:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9016:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2022,"nodeType":"ExpressionStatement","src":"9016:12:12"},{"expression":{"id":2025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2023,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9046:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":2024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9056:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9046:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2026,"nodeType":"ExpressionStatement","src":"9046:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2029,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9090:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":2030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9099:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9090:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9104:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9090:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2043,"nodeType":"IfStatement","src":"9086:96:12","trueBody":{"id":2042,"nodeType":"Block","src":"9107:75:12","statements":[{"expression":{"id":2036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2034,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9125:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":2035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9135:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9125:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2037,"nodeType":"ExpressionStatement","src":"9125:12:12"},{"expression":{"id":2040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2038,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9155:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9165:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"9155:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2041,"nodeType":"ExpressionStatement","src":"9155:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2044,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9199:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":2045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9208:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9199:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9212:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9199:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2058,"nodeType":"IfStatement","src":"9195:93:12","trueBody":{"id":2057,"nodeType":"Block","src":"9215:73:12","statements":[{"expression":{"id":2051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2049,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9233:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":2050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9243:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9233:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2052,"nodeType":"ExpressionStatement","src":"9233:11:12"},{"expression":{"id":2055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2053,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9262:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"9262:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2056,"nodeType":"ExpressionStatement","src":"9262:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2059,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9305:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":2060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9314:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9305:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9318:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9305:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2073,"nodeType":"IfStatement","src":"9301:93:12","trueBody":{"id":2072,"nodeType":"Block","src":"9321:73:12","statements":[{"expression":{"id":2066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2064,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9339:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":2065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9349:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9339:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2067,"nodeType":"ExpressionStatement","src":"9339:11:12"},{"expression":{"id":2070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2068,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9368:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9378:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9368:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2071,"nodeType":"ExpressionStatement","src":"9368:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2074,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9411:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":2075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9420:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9411:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9424:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9411:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2088,"nodeType":"IfStatement","src":"9407:93:12","trueBody":{"id":2087,"nodeType":"Block","src":"9427:73:12","statements":[{"expression":{"id":2081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2079,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9445:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":2080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9455:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9445:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2082,"nodeType":"ExpressionStatement","src":"9445:11:12"},{"expression":{"id":2085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2083,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9474:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9484:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9474:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2086,"nodeType":"ExpressionStatement","src":"9474:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2089,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"9517:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9526:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9517:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9530:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9517:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2099,"nodeType":"IfStatement","src":"9513:64:12","trueBody":{"id":2098,"nodeType":"Block","src":"9533:44:12","statements":[{"expression":{"id":2096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2094,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9551:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9561:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9551:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2097,"nodeType":"ExpressionStatement","src":"9551:11:12"}]}}]},{"expression":{"id":2101,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1981,"src":"9603:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1979,"id":2102,"nodeType":"Return","src":"9596:13:12"}]},"documentation":{"id":1973,"nodeType":"StructuredDocumentation","src":"8515:113:12","text":" @dev Return the log in base 2, rounded down, of a positive value.\n Returns 0 if given 0."},"id":2104,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"8642:4:12","nodeType":"FunctionDefinition","parameters":{"id":1976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1975,"mutability":"mutable","name":"value","nameLocation":"8655:5:12","nodeType":"VariableDeclaration","scope":2104,"src":"8647:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1974,"name":"uint256","nodeType":"ElementaryTypeName","src":"8647:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8646:15:12"},"returnParameters":{"id":1979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2104,"src":"8685:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1977,"name":"uint256","nodeType":"ElementaryTypeName","src":"8685:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8684:9:12"},"scope":2432,"src":"8633:983:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2139,"nodeType":"Block","src":"9849:165:12","statements":[{"id":2138,"nodeType":"UncheckedBlock","src":"9859:149:12","statements":[{"assignments":[2116],"declarations":[{"constant":false,"id":2116,"mutability":"mutable","name":"result","nameLocation":"9891:6:12","nodeType":"VariableDeclaration","scope":2138,"src":"9883:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2115,"name":"uint256","nodeType":"ElementaryTypeName","src":"9883:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2120,"initialValue":{"arguments":[{"id":2118,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"9905:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2117,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[2104,2140],"referencedDeclaration":2104,"src":"9900:4:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9900:11:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9883:28:12"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2121,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2116,"src":"9932:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"},"id":2125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2122,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"9942:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2123,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"9954:8:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$1573_$","typeString":"type(enum Math.Rounding)"}},"id":2124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9963:2:12","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":1571,"src":"9954:11:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"src":"9942:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9969:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":2127,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2116,"src":"9974:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2129,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2107,"src":"9983:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9969:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9942:46:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9995:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9942:54:12","trueExpression":{"hexValue":"31","id":2132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9991:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9941:56:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9932:65:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2114,"id":2137,"nodeType":"Return","src":"9925:72:12"}]}]},"documentation":{"id":2105,"nodeType":"StructuredDocumentation","src":"9622:142:12","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2140,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"9778:4:12","nodeType":"FunctionDefinition","parameters":{"id":2111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2107,"mutability":"mutable","name":"value","nameLocation":"9791:5:12","nodeType":"VariableDeclaration","scope":2140,"src":"9783:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2106,"name":"uint256","nodeType":"ElementaryTypeName","src":"9783:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2110,"mutability":"mutable","name":"rounding","nameLocation":"9807:8:12","nodeType":"VariableDeclaration","scope":2140,"src":"9798:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"},"typeName":{"id":2109,"nodeType":"UserDefinedTypeName","pathNode":{"id":2108,"name":"Rounding","nameLocations":["9798:8:12"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"9798:8:12"},"referencedDeclaration":1573,"src":"9798:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9782:34:12"},"returnParameters":{"id":2114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2140,"src":"9840:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2112,"name":"uint256","nodeType":"ElementaryTypeName","src":"9840:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9839:9:12"},"scope":2432,"src":"9769:245:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2268,"nodeType":"Block","src":"10201:854:12","statements":[{"assignments":[2149],"declarations":[{"constant":false,"id":2149,"mutability":"mutable","name":"result","nameLocation":"10219:6:12","nodeType":"VariableDeclaration","scope":2268,"src":"10211:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2148,"name":"uint256","nodeType":"ElementaryTypeName","src":"10211:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2151,"initialValue":{"hexValue":"30","id":2150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10228:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10211:18:12"},{"id":2265,"nodeType":"UncheckedBlock","src":"10239:787:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2152,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10267:5:12","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":2155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10276:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":2154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10282:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10276:8:12","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10267:17:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2168,"nodeType":"IfStatement","src":"10263:103:12","trueBody":{"id":2167,"nodeType":"Block","src":"10286:80:12","statements":[{"expression":{"id":2161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2157,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10304:5:12","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":2160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10313:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":2159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10319:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10313:8:12","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"10304:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2162,"nodeType":"ExpressionStatement","src":"10304:17:12"},{"expression":{"id":2165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2163,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10339:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":2164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10349:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10339:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2166,"nodeType":"ExpressionStatement","src":"10339:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2169,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10383:5:12","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":2172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10392:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":2171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10398:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10392:8:12","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10383:17:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2185,"nodeType":"IfStatement","src":"10379:103:12","trueBody":{"id":2184,"nodeType":"Block","src":"10402:80:12","statements":[{"expression":{"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2174,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10420:5:12","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":2177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":2176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10435:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10429:8:12","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"10420:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2179,"nodeType":"ExpressionStatement","src":"10420:17:12"},{"expression":{"id":2182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2180,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10455:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":2181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10465:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"10455:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2183,"nodeType":"ExpressionStatement","src":"10455:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2186,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10499:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":2189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10508:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":2188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10514:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10508:8:12","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10499:17:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2202,"nodeType":"IfStatement","src":"10495:103:12","trueBody":{"id":2201,"nodeType":"Block","src":"10518:80:12","statements":[{"expression":{"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2191,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10536:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":2194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10545:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":2193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10551:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10545:8:12","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"10536:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2196,"nodeType":"ExpressionStatement","src":"10536:17:12"},{"expression":{"id":2199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2197,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10571:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10581:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"10571:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2200,"nodeType":"ExpressionStatement","src":"10571:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2203,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10615:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":2206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10624:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":2205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10630:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10624:7:12","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10615:16:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2219,"nodeType":"IfStatement","src":"10611:100:12","trueBody":{"id":2218,"nodeType":"Block","src":"10633:78:12","statements":[{"expression":{"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2208,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10651:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":2211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10660:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":2210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10666:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10660:7:12","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"10651:16:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2213,"nodeType":"ExpressionStatement","src":"10651:16:12"},{"expression":{"id":2216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2214,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10685:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10695:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"10685:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2217,"nodeType":"ExpressionStatement","src":"10685:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2220,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10728:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":2223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10737:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":2222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10743:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10737:7:12","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10728:16:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2236,"nodeType":"IfStatement","src":"10724:100:12","trueBody":{"id":2235,"nodeType":"Block","src":"10746:78:12","statements":[{"expression":{"id":2229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2225,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10764:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":2228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10773:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":2227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10779:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10773:7:12","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"10764:16:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2230,"nodeType":"ExpressionStatement","src":"10764:16:12"},{"expression":{"id":2233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2231,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10798:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10808:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"10798:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2234,"nodeType":"ExpressionStatement","src":"10798:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2237,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10841:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":2240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10850:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":2239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10856:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10850:7:12","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10841:16:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2253,"nodeType":"IfStatement","src":"10837:100:12","trueBody":{"id":2252,"nodeType":"Block","src":"10859:78:12","statements":[{"expression":{"id":2246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2242,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10877:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":2245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10886:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":2244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10892:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10886:7:12","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"10877:16:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2247,"nodeType":"ExpressionStatement","src":"10877:16:12"},{"expression":{"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2248,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10911:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10921:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10911:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2251,"nodeType":"ExpressionStatement","src":"10911:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2254,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"10954:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":2257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10963:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":2256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10969:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10963:7:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"10954:16:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2264,"nodeType":"IfStatement","src":"10950:66:12","trueBody":{"id":2263,"nodeType":"Block","src":"10972:44:12","statements":[{"expression":{"id":2261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2259,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"10990:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11000:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10990:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2262,"nodeType":"ExpressionStatement","src":"10990:11:12"}]}}]},{"expression":{"id":2266,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2149,"src":"11042:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2147,"id":2267,"nodeType":"Return","src":"11035:13:12"}]},"documentation":{"id":2141,"nodeType":"StructuredDocumentation","src":"10020:114:12","text":" @dev Return the log in base 10, rounded down, of a positive value.\n Returns 0 if given 0."},"id":2269,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"10148:5:12","nodeType":"FunctionDefinition","parameters":{"id":2144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2143,"mutability":"mutable","name":"value","nameLocation":"10162:5:12","nodeType":"VariableDeclaration","scope":2269,"src":"10154:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2142,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:15:12"},"returnParameters":{"id":2147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2269,"src":"10192:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2145,"name":"uint256","nodeType":"ElementaryTypeName","src":"10192:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10191:9:12"},"scope":2432,"src":"10139:916:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2304,"nodeType":"Block","src":"11290:167:12","statements":[{"id":2303,"nodeType":"UncheckedBlock","src":"11300:151:12","statements":[{"assignments":[2281],"declarations":[{"constant":false,"id":2281,"mutability":"mutable","name":"result","nameLocation":"11332:6:12","nodeType":"VariableDeclaration","scope":2303,"src":"11324:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2280,"name":"uint256","nodeType":"ElementaryTypeName","src":"11324:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2285,"initialValue":{"arguments":[{"id":2283,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2272,"src":"11347:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2282,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[2269,2305],"referencedDeclaration":2269,"src":"11341:5:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11341:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11324:29:12"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2286,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2281,"src":"11374:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"},"id":2290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2287,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2275,"src":"11384:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2288,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"11396:8:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$1573_$","typeString":"type(enum Math.Rounding)"}},"id":2289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11405:2:12","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":1571,"src":"11396:11:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"src":"11384:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11411:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":2292,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2281,"src":"11417:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2294,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2272,"src":"11426:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11411:20:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11384:47:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11438:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11384:55:12","trueExpression":{"hexValue":"31","id":2297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11434:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2300,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11383:57:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11374:66:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2279,"id":2302,"nodeType":"Return","src":"11367:73:12"}]}]},"documentation":{"id":2270,"nodeType":"StructuredDocumentation","src":"11061:143:12","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2305,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"11218:5:12","nodeType":"FunctionDefinition","parameters":{"id":2276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2272,"mutability":"mutable","name":"value","nameLocation":"11232:5:12","nodeType":"VariableDeclaration","scope":2305,"src":"11224:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2271,"name":"uint256","nodeType":"ElementaryTypeName","src":"11224:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2275,"mutability":"mutable","name":"rounding","nameLocation":"11248:8:12","nodeType":"VariableDeclaration","scope":2305,"src":"11239:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"},"typeName":{"id":2274,"nodeType":"UserDefinedTypeName","pathNode":{"id":2273,"name":"Rounding","nameLocations":["11239:8:12"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"11239:8:12"},"referencedDeclaration":1573,"src":"11239:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11223:34:12"},"returnParameters":{"id":2279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2305,"src":"11281:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2277,"name":"uint256","nodeType":"ElementaryTypeName","src":"11281:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11280:9:12"},"scope":2432,"src":"11209:248:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2391,"nodeType":"Block","src":"11771:600:12","statements":[{"assignments":[2314],"declarations":[{"constant":false,"id":2314,"mutability":"mutable","name":"result","nameLocation":"11789:6:12","nodeType":"VariableDeclaration","scope":2391,"src":"11781:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2313,"name":"uint256","nodeType":"ElementaryTypeName","src":"11781:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2316,"initialValue":{"hexValue":"30","id":2315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11798:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11781:18:12"},{"id":2388,"nodeType":"UncheckedBlock","src":"11809:533:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2317,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11837:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":2318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11846:3:12","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11837:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11852:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11837:16:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2331,"nodeType":"IfStatement","src":"11833:98:12","trueBody":{"id":2330,"nodeType":"Block","src":"11855:76:12","statements":[{"expression":{"id":2324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2322,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11873:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":2323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11883:3:12","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11873:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2325,"nodeType":"ExpressionStatement","src":"11873:13:12"},{"expression":{"id":2328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2326,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"11904:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11914:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11904:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2329,"nodeType":"ExpressionStatement","src":"11904:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2332,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11948:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":2333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11957:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11948:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11962:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11948:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2346,"nodeType":"IfStatement","src":"11944:95:12","trueBody":{"id":2345,"nodeType":"Block","src":"11965:74:12","statements":[{"expression":{"id":2339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2337,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"11983:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":2338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11993:2:12","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11983:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2340,"nodeType":"ExpressionStatement","src":"11983:12:12"},{"expression":{"id":2343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2341,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"12013:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12023:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12013:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2344,"nodeType":"ExpressionStatement","src":"12013:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2347,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"12056:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":2348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12065:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12056:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12070:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12056:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2361,"nodeType":"IfStatement","src":"12052:95:12","trueBody":{"id":2360,"nodeType":"Block","src":"12073:74:12","statements":[{"expression":{"id":2354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2352,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"12091:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":2353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12101:2:12","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12091:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2355,"nodeType":"ExpressionStatement","src":"12091:12:12"},{"expression":{"id":2358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2356,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"12121:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:1:12","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12121:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2359,"nodeType":"ExpressionStatement","src":"12121:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2362,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"12164:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":2363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12173:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12164:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12178:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12164:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2376,"nodeType":"IfStatement","src":"12160:95:12","trueBody":{"id":2375,"nodeType":"Block","src":"12181:74:12","statements":[{"expression":{"id":2369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2367,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"12199:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":2368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12209:2:12","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12199:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2370,"nodeType":"ExpressionStatement","src":"12199:12:12"},{"expression":{"id":2373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2371,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"12229:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12239:1:12","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12229:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2374,"nodeType":"ExpressionStatement","src":"12229:11:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2377,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"12272:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":2378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12281:1:12","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12272:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12285:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12272:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2387,"nodeType":"IfStatement","src":"12268:64:12","trueBody":{"id":2386,"nodeType":"Block","src":"12288:44:12","statements":[{"expression":{"id":2384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2382,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"12306:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12316:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12306:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2385,"nodeType":"ExpressionStatement","src":"12306:11:12"}]}}]},{"expression":{"id":2389,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"12358:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2312,"id":2390,"nodeType":"Return","src":"12351:13:12"}]},"documentation":{"id":2306,"nodeType":"StructuredDocumentation","src":"11463:240:12","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":2392,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"11717:6:12","nodeType":"FunctionDefinition","parameters":{"id":2309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2308,"mutability":"mutable","name":"value","nameLocation":"11732:5:12","nodeType":"VariableDeclaration","scope":2392,"src":"11724:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2307,"name":"uint256","nodeType":"ElementaryTypeName","src":"11724:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11723:15:12"},"returnParameters":{"id":2312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2392,"src":"11762:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2310,"name":"uint256","nodeType":"ElementaryTypeName","src":"11762:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11761:9:12"},"scope":2432,"src":"11708:663:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2430,"nodeType":"Block","src":"12608:174:12","statements":[{"id":2429,"nodeType":"UncheckedBlock","src":"12618:158:12","statements":[{"assignments":[2404],"declarations":[{"constant":false,"id":2404,"mutability":"mutable","name":"result","nameLocation":"12650:6:12","nodeType":"VariableDeclaration","scope":2429,"src":"12642:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2403,"name":"uint256","nodeType":"ElementaryTypeName","src":"12642:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2408,"initialValue":{"arguments":[{"id":2406,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2395,"src":"12666:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2405,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[2392,2431],"referencedDeclaration":2392,"src":"12659:6:12","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12659:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12642:30:12"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2409,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2404,"src":"12693:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"},"id":2413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2410,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2398,"src":"12703:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2411,"name":"Rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"12715:8:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Rounding_$1573_$","typeString":"type(enum Math.Rounding)"}},"id":2412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12724:2:12","memberName":"Up","nodeType":"MemberAccess","referencedDeclaration":1571,"src":"12715:11:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"src":"12703:23:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12730:1:12","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":2417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2415,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2404,"src":"12736:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":2416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12746:1:12","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12736:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2418,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12735:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:18:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2420,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2395,"src":"12751:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12730:26:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12703:53:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12763:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12703:61:12","trueExpression":{"hexValue":"31","id":2423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12759:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12702:63:12","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12693:72:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2402,"id":2428,"nodeType":"Return","src":"12686:79:12"}]}]},"documentation":{"id":2393,"nodeType":"StructuredDocumentation","src":"12377:144:12","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2431,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"12535:6:12","nodeType":"FunctionDefinition","parameters":{"id":2399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2395,"mutability":"mutable","name":"value","nameLocation":"12550:5:12","nodeType":"VariableDeclaration","scope":2431,"src":"12542:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2394,"name":"uint256","nodeType":"ElementaryTypeName","src":"12542:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2398,"mutability":"mutable","name":"rounding","nameLocation":"12566:8:12","nodeType":"VariableDeclaration","scope":2431,"src":"12557:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"},"typeName":{"id":2397,"nodeType":"UserDefinedTypeName","pathNode":{"id":2396,"name":"Rounding","nameLocations":["12557:8:12"],"nodeType":"IdentifierPath","referencedDeclaration":1573,"src":"12557:8:12"},"referencedDeclaration":1573,"src":"12557:8:12","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1573","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"12541:34:12"},"returnParameters":{"id":2402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2431,"src":"12599:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2400,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12598:9:12"},"scope":2432,"src":"12526:256:12","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2433,"src":"202:12582:12","usedErrors":[],"usedEvents":[]}],"src":"103:12682:12"},"id":12},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[2537]},"id":2538,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2434,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"109:23:13"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":2435,"nodeType":"StructuredDocumentation","src":"134:80:13","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":2537,"linearizedBaseContracts":[2537],"name":"SignedMath","nameLocation":"223:10:13","nodeType":"ContractDefinition","nodes":[{"body":{"id":2452,"nodeType":"Block","src":"375:37:13","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2445,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"392:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2446,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2440,"src":"396:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"392:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2449,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2440,"src":"404:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"392:13:13","trueExpression":{"id":2448,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"400:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":2444,"id":2451,"nodeType":"Return","src":"385:20:13"}]},"documentation":{"id":2436,"nodeType":"StructuredDocumentation","src":"240:66:13","text":" @dev Returns the largest of two signed numbers."},"id":2453,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"320:3:13","nodeType":"FunctionDefinition","parameters":{"id":2441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2438,"mutability":"mutable","name":"a","nameLocation":"331:1:13","nodeType":"VariableDeclaration","scope":2453,"src":"324:8:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2437,"name":"int256","nodeType":"ElementaryTypeName","src":"324:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2440,"mutability":"mutable","name":"b","nameLocation":"341:1:13","nodeType":"VariableDeclaration","scope":2453,"src":"334:8:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2439,"name":"int256","nodeType":"ElementaryTypeName","src":"334:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"323:20:13"},"returnParameters":{"id":2444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2443,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2453,"src":"367:6:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2442,"name":"int256","nodeType":"ElementaryTypeName","src":"367:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"366:8:13"},"scope":2537,"src":"311:101:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2470,"nodeType":"Block","src":"554:37:13","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2463,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2456,"src":"571:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2464,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2458,"src":"575:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"571:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2467,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2458,"src":"583:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"571:13:13","trueExpression":{"id":2466,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2456,"src":"579:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":2462,"id":2469,"nodeType":"Return","src":"564:20:13"}]},"documentation":{"id":2454,"nodeType":"StructuredDocumentation","src":"418:67:13","text":" @dev Returns the smallest of two signed numbers."},"id":2471,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"499:3:13","nodeType":"FunctionDefinition","parameters":{"id":2459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2456,"mutability":"mutable","name":"a","nameLocation":"510:1:13","nodeType":"VariableDeclaration","scope":2471,"src":"503:8:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2455,"name":"int256","nodeType":"ElementaryTypeName","src":"503:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2458,"mutability":"mutable","name":"b","nameLocation":"520:1:13","nodeType":"VariableDeclaration","scope":2471,"src":"513:8:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2457,"name":"int256","nodeType":"ElementaryTypeName","src":"513:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"502:20:13"},"returnParameters":{"id":2462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2471,"src":"546:6:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2460,"name":"int256","nodeType":"ElementaryTypeName","src":"546:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"545:8:13"},"scope":2537,"src":"490:101:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2514,"nodeType":"Block","src":"796:162:13","statements":[{"assignments":[2482],"declarations":[{"constant":false,"id":2482,"mutability":"mutable","name":"x","nameLocation":"865:1:13","nodeType":"VariableDeclaration","scope":2514,"src":"858:8:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2481,"name":"int256","nodeType":"ElementaryTypeName","src":"858:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":2495,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2483,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2474,"src":"870:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":2484,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2476,"src":"874:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:5:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2486,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"869:7:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2487,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2474,"src":"881:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2488,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2476,"src":"885:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"881:5:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2490,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:7:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"880:12:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2493,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"879:14:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"869:24:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"858:35:13"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2496,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"910:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2501,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"930:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"922:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2499,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:13","typeDescriptions":{}}},"id":2502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:10:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":2503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:3:13","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"922:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:6:13","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":2497,"name":"int256","nodeType":"ElementaryTypeName","src":"915:6:13","typeDescriptions":{}}},"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:25:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2506,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2474,"src":"944:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2507,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2476,"src":"948:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"944:5:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2509,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"943:7:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"915:35:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2511,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"914:37:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"910:41:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":2480,"id":2513,"nodeType":"Return","src":"903:48:13"}]},"documentation":{"id":2472,"nodeType":"StructuredDocumentation","src":"597:126:13","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":2515,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"737:7:13","nodeType":"FunctionDefinition","parameters":{"id":2477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2474,"mutability":"mutable","name":"a","nameLocation":"752:1:13","nodeType":"VariableDeclaration","scope":2515,"src":"745:8:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2473,"name":"int256","nodeType":"ElementaryTypeName","src":"745:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2476,"mutability":"mutable","name":"b","nameLocation":"762:1:13","nodeType":"VariableDeclaration","scope":2515,"src":"755:8:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2475,"name":"int256","nodeType":"ElementaryTypeName","src":"755:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"744:20:13"},"returnParameters":{"id":2480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2479,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2515,"src":"788:6:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2478,"name":"int256","nodeType":"ElementaryTypeName","src":"788:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"787:8:13"},"scope":2537,"src":"728:230:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2535,"nodeType":"Block","src":"1102:158:13","statements":[{"id":2534,"nodeType":"UncheckedBlock","src":"1112:142:13","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2525,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2518,"src":"1227:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":2526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1227:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1240:2:13","subExpression":{"id":2529,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2518,"src":"1241:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1227:15:13","trueExpression":{"id":2528,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2518,"src":"1236:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2523,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:13","typeDescriptions":{}}},"id":2532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:24:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2522,"id":2533,"nodeType":"Return","src":"1212:31:13"}]}]},"documentation":{"id":2516,"nodeType":"StructuredDocumentation","src":"964:78:13","text":" @dev Returns the absolute unsigned value of a signed value."},"id":2536,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1056:3:13","nodeType":"FunctionDefinition","parameters":{"id":2519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2518,"mutability":"mutable","name":"n","nameLocation":"1067:1:13","nodeType":"VariableDeclaration","scope":2536,"src":"1060:8:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2517,"name":"int256","nodeType":"ElementaryTypeName","src":"1060:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1059:10:13"},"returnParameters":{"id":2522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2521,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2536,"src":"1093:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2520,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:9:13"},"scope":2537,"src":"1047:213:13","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2538,"src":"215:1047:13","usedErrors":[],"usedEvents":[]}],"src":"109:1154:13"},"id":13},"contracts/Config.sol":{"ast":{"absolutePath":"contracts/Config.sol","exportedSymbols":{"Config":[2630]},"id":2631,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2539,"literals":["solidity","0.8",".20"],"nodeType":"PragmaDirective","src":"33:23:14"},{"abstract":false,"baseContracts":[],"canonicalName":"Config","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":2630,"linearizedBaseContracts":[2630],"name":"Config","nameLocation":"67:6:14","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Config.Config_","id":2546,"members":[{"constant":false,"id":2541,"mutability":"mutable","name":"depositBaseFee","nameLocation":"105:14:14","nodeType":"VariableDeclaration","scope":2546,"src":"97:22:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2540,"name":"uint128","nodeType":"ElementaryTypeName","src":"97:7:14","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":2543,"mutability":"mutable","name":"depositFeeRate","nameLocation":"130:14:14","nodeType":"VariableDeclaration","scope":2546,"src":"123:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2542,"name":"uint32","nodeType":"ElementaryTypeName","src":"123:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":2545,"mutability":"mutable","name":"finalizeTxGas","nameLocation":"155:13:14","nodeType":"VariableDeclaration","scope":2546,"src":"148:20:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2544,"name":"uint32","nodeType":"ElementaryTypeName","src":"148:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"name":"Config_","nameLocation":"85:7:14","nodeType":"StructDefinition","scope":2630,"src":"78:94:14","visibility":"public"},{"constant":false,"functionSelector":"79502c55","id":2549,"mutability":"mutable","name":"config","nameLocation":"190:6:14","nodeType":"VariableDeclaration","scope":2630,"src":"175:21:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_"},"typeName":{"id":2548,"nodeType":"UserDefinedTypeName","pathNode":{"id":2547,"name":"Config_","nameLocations":["175:7:14"],"nodeType":"IdentifierPath","referencedDeclaration":2546,"src":"175:7:14"},"referencedDeclaration":2546,"src":"175:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage_ptr","typeString":"struct Config.Config_"}},"visibility":"public"},{"constant":true,"functionSelector":"cb11b9f4","id":2552,"mutability":"constant","name":"MAXPCT","nameLocation":"223:6:14","nodeType":"VariableDeclaration","scope":2630,"src":"200:39:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2550,"name":"uint32","nodeType":"ElementaryTypeName","src":"200:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"value":{"hexValue":"31303030303030","id":2551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232:7:14","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1000000"},"visibility":"public"},{"anonymous":false,"eventSelector":"c3b5a50e47b6b36cbfdf9f2816f54bcadaa46c6d4469b530f5e1fd8cc70e8fd8","id":2557,"name":"UpdateConfig","nameLocation":"249:12:14","nodeType":"EventDefinition","parameters":{"id":2556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2555,"indexed":false,"mutability":"mutable","name":"config","nameLocation":"270:6:14","nodeType":"VariableDeclaration","scope":2557,"src":"262:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_memory_ptr","typeString":"struct Config.Config_"},"typeName":{"id":2554,"nodeType":"UserDefinedTypeName","pathNode":{"id":2553,"name":"Config_","nameLocations":["262:7:14"],"nodeType":"IdentifierPath","referencedDeclaration":2546,"src":"262:7:14"},"referencedDeclaration":2546,"src":"262:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage_ptr","typeString":"struct Config.Config_"}},"visibility":"internal"}],"src":"261:16:14"},"src":"243:35:14"},{"body":{"id":2571,"nodeType":"Block","src":"337:53:14","statements":[{"expression":{"id":2565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2563,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"341:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2564,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2560,"src":"350:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_memory_ptr","typeString":"struct Config.Config_ memory"}},"src":"341:16:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}},"id":2566,"nodeType":"ExpressionStatement","src":"341:16:14"},{"eventCall":{"arguments":[{"id":2568,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"379:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}],"id":2567,"name":"UpdateConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2557,"src":"366:12:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_struct$_Config__$2546_memory_ptr_$returns$__$","typeString":"function (struct Config.Config_ memory)"}},"id":2569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"366:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2570,"nodeType":"EmitStatement","src":"361:25:14"}]},"id":2572,"implemented":true,"kind":"function","modifiers":[],"name":"_updateConfig","nameLocation":"290:13:14","nodeType":"FunctionDefinition","parameters":{"id":2561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2560,"mutability":"mutable","name":"_config","nameLocation":"319:7:14","nodeType":"VariableDeclaration","scope":2572,"src":"304:22:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_memory_ptr","typeString":"struct Config.Config_"},"typeName":{"id":2559,"nodeType":"UserDefinedTypeName","pathNode":{"id":2558,"name":"Config_","nameLocations":["304:7:14"],"nodeType":"IdentifierPath","referencedDeclaration":2546,"src":"304:7:14"},"referencedDeclaration":2546,"src":"304:7:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage_ptr","typeString":"struct Config.Config_"}},"visibility":"internal"}],"src":"303:24:14"},"returnParameters":{"id":2562,"nodeType":"ParameterList","parameters":[],"src":"337:0:14"},"scope":2630,"src":"281:109:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2587,"nodeType":"Block","src":"458:77:14","statements":[{"expression":{"id":2581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2577,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"462:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}},"id":2579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"469:14:14","memberName":"depositBaseFee","nodeType":"MemberAccess","referencedDeclaration":2541,"src":"462:21:14","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2580,"name":"_depositBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"486:15:14","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"462:39:14","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":2582,"nodeType":"ExpressionStatement","src":"462:39:14"},{"eventCall":{"arguments":[{"id":2584,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"524:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}],"id":2583,"name":"UpdateConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2557,"src":"511:12:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_struct$_Config__$2546_memory_ptr_$returns$__$","typeString":"function (struct Config.Config_ memory)"}},"id":2585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"511:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2586,"nodeType":"EmitStatement","src":"506:25:14"}]},"id":2588,"implemented":true,"kind":"function","modifiers":[],"name":"_updateDepositBaseFee","nameLocation":"402:21:14","nodeType":"FunctionDefinition","parameters":{"id":2575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2574,"mutability":"mutable","name":"_depositBaseFee","nameLocation":"432:15:14","nodeType":"VariableDeclaration","scope":2588,"src":"424:23:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2573,"name":"uint128","nodeType":"ElementaryTypeName","src":"424:7:14","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"423:25:14"},"returnParameters":{"id":2576,"nodeType":"ParameterList","parameters":[],"src":"458:0:14"},"scope":2630,"src":"393:142:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2612,"nodeType":"Block","src":"602:162:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":2598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2594,"name":"_depositFeeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2590,"src":"614:15:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":2597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2595,"name":"MAXPCT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"633:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3230","id":2596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"642:2:14","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"633:11:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"614:30:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6665652072617465206d757374206265206c657373206f7220657175616c207468616e203525","id":2599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"646:40:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef","typeString":"literal_string \"fee rate must be less or equal than 5%\""},"value":"fee rate must be less or equal than 5%"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef","typeString":"literal_string \"fee rate must be less or equal than 5%\""}],"id":2593,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"606:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"606:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2601,"nodeType":"ExpressionStatement","src":"606:81:14"},{"expression":{"id":2606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2602,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"691:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}},"id":2604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"698:14:14","memberName":"depositFeeRate","nodeType":"MemberAccess","referencedDeclaration":2543,"src":"691:21:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2605,"name":"_depositFeeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2590,"src":"715:15:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"691:39:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2607,"nodeType":"ExpressionStatement","src":"691:39:14"},{"eventCall":{"arguments":[{"id":2609,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"753:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}],"id":2608,"name":"UpdateConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2557,"src":"740:12:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_struct$_Config__$2546_memory_ptr_$returns$__$","typeString":"function (struct Config.Config_ memory)"}},"id":2610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"740:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2611,"nodeType":"EmitStatement","src":"735:25:14"}]},"id":2613,"implemented":true,"kind":"function","modifiers":[],"name":"_updateDepositFeeRate","nameLocation":"547:21:14","nodeType":"FunctionDefinition","parameters":{"id":2591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2590,"mutability":"mutable","name":"_depositFeeRate","nameLocation":"576:15:14","nodeType":"VariableDeclaration","scope":2613,"src":"569:22:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2589,"name":"uint32","nodeType":"ElementaryTypeName","src":"569:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"568:24:14"},"returnParameters":{"id":2592,"nodeType":"ParameterList","parameters":[],"src":"602:0:14"},"scope":2630,"src":"538:226:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2628,"nodeType":"Block","src":"829:75:14","statements":[{"expression":{"id":2622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2618,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"833:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}},"id":2620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"840:13:14","memberName":"finalizeTxGas","nodeType":"MemberAccess","referencedDeclaration":2545,"src":"833:20:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2621,"name":"_finalizeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2615,"src":"856:14:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"833:37:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2623,"nodeType":"ExpressionStatement","src":"833:37:14"},{"eventCall":{"arguments":[{"id":2625,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"893:6:14","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}],"id":2624,"name":"UpdateConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2557,"src":"880:12:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_struct$_Config__$2546_memory_ptr_$returns$__$","typeString":"function (struct Config.Config_ memory)"}},"id":2626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"880:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2627,"nodeType":"EmitStatement","src":"875:25:14"}]},"id":2629,"implemented":true,"kind":"function","modifiers":[],"name":"_updateFinalizeTxGas","nameLocation":"776:20:14","nodeType":"FunctionDefinition","parameters":{"id":2616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2615,"mutability":"mutable","name":"_finalizeTxGas","nameLocation":"804:14:14","nodeType":"VariableDeclaration","scope":2629,"src":"797:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2614,"name":"uint32","nodeType":"ElementaryTypeName","src":"797:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"796:23:14"},"returnParameters":{"id":2617,"nodeType":"ParameterList","parameters":[],"src":"829:0:14"},"scope":2630,"src":"767:137:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":2631,"src":"58:849:14","usedErrors":[],"usedEvents":[2557]}],"src":"33:875:14"},"id":14},"contracts/Controller.sol":{"ast":{"absolutePath":"contracts/Controller.sol","exportedSymbols":{"Config":[2630],"Context":[342],"Controller":[2776],"Ownable":[112],"Ownable2Step":[195],"Relayers":[3422]},"id":2777,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2632,"literals":["solidity","0.8",".20"],"nodeType":"PragmaDirective","src":"33:23:15"},{"absolutePath":"@openzeppelin/contracts/access/Ownable2Step.sol","file":"@openzeppelin/contracts/access/Ownable2Step.sol","id":2633,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2777,"sourceUnit":196,"src":"58:57:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Relayers.sol","file":"./Relayers.sol","id":2634,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2777,"sourceUnit":3423,"src":"116:24:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Config.sol","file":"./Config.sol","id":2635,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2777,"sourceUnit":2631,"src":"141:22:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2636,"name":"Relayers","nameLocations":["188:8:15"],"nodeType":"IdentifierPath","referencedDeclaration":3422,"src":"188:8:15"},"id":2637,"nodeType":"InheritanceSpecifier","src":"188:8:15"},{"baseName":{"id":2638,"name":"Config","nameLocations":["198:6:15"],"nodeType":"IdentifierPath","referencedDeclaration":2630,"src":"198:6:15"},"id":2639,"nodeType":"InheritanceSpecifier","src":"198:6:15"},{"baseName":{"id":2640,"name":"Ownable2Step","nameLocations":["206:12:15"],"nodeType":"IdentifierPath","referencedDeclaration":195,"src":"206:12:15"},"id":2641,"nodeType":"InheritanceSpecifier","src":"206:12:15"}],"canonicalName":"Controller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":2776,"linearizedBaseContracts":[2776,195,112,342,2630,3422],"name":"Controller","nameLocation":"174:10:15","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"5c975abb","id":2643,"mutability":"mutable","name":"paused","nameLocation":"234:6:15","nodeType":"VariableDeclaration","scope":2776,"src":"222:18:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2642,"name":"bool","nodeType":"ElementaryTypeName","src":"222:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"body":{"id":2652,"nodeType":"Block","src":"269:40:15","statements":[{"expression":{"arguments":[{"id":2647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"281:7:15","subExpression":{"id":2646,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2643,"src":"282:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"70617573656421","id":2648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"290:9:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601","typeString":"literal_string \"paused!\""},"value":"paused!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601","typeString":"literal_string \"paused!\""}],"id":2645,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"273:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"273:27:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2650,"nodeType":"ExpressionStatement","src":"273:27:15"},{"id":2651,"nodeType":"PlaceholderStatement","src":"304:1:15"}]},"id":2653,"name":"wherNotPaused","nameLocation":"253:13:15","nodeType":"ModifierDefinition","parameters":{"id":2644,"nodeType":"ParameterList","parameters":[],"src":"266:2:15"},"src":"244:65:15","virtual":false,"visibility":"internal"},{"body":{"id":2670,"nodeType":"Block","src":"363:54:15","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2662,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"379:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"379:7:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2661,"name":"_addRelayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3398,"src":"367:11:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"367:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2665,"nodeType":"ExpressionStatement","src":"367:20:15"},{"expression":{"arguments":[{"id":2667,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2656,"src":"405:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_memory_ptr","typeString":"struct Config.Config_ memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Config__$2546_memory_ptr","typeString":"struct Config.Config_ memory"}],"id":2666,"name":"_updateConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2572,"src":"391:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Config__$2546_memory_ptr_$returns$__$","typeString":"function (struct Config.Config_ memory)"}},"id":2668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"391:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2669,"nodeType":"ExpressionStatement","src":"391:22:15"}]},"id":2671,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":2659,"kind":"baseConstructorSpecifier","modifierName":{"id":2658,"name":"Ownable2Step","nameLocations":["348:12:15"],"nodeType":"IdentifierPath","referencedDeclaration":195,"src":"348:12:15"},"nodeType":"ModifierInvocation","src":"348:14:15"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2656,"mutability":"mutable","name":"_config","nameLocation":"339:7:15","nodeType":"VariableDeclaration","scope":2671,"src":"324:22:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_memory_ptr","typeString":"struct Config.Config_"},"typeName":{"id":2655,"nodeType":"UserDefinedTypeName","pathNode":{"id":2654,"name":"Config_","nameLocations":["324:7:15"],"nodeType":"IdentifierPath","referencedDeclaration":2546,"src":"324:7:15"},"referencedDeclaration":2546,"src":"324:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage_ptr","typeString":"struct Config.Config_"}},"visibility":"internal"}],"src":"323:24:15"},"returnParameters":{"id":2660,"nodeType":"ParameterList","parameters":[],"src":"363:0:15"},"scope":2776,"src":"312:105:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2686,"nodeType":"Block","src":"456:59:15","statements":[{"expression":{"arguments":[{"id":2678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"468:7:15","subExpression":{"id":2677,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2643,"src":"469:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"616c726561647920706175736564","id":2679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"477:16:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b","typeString":"literal_string \"already paused\""},"value":"already paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b","typeString":"literal_string \"already paused\""}],"id":2676,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"460:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"460:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2681,"nodeType":"ExpressionStatement","src":"460:34:15"},{"expression":{"id":2684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2682,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2643,"src":"498:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"507:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"498:13:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2685,"nodeType":"ExpressionStatement","src":"498:13:15"}]},"functionSelector":"8456cb59","id":2687,"implemented":true,"kind":"function","modifiers":[{"id":2674,"kind":"modifierInvocation","modifierName":{"id":2673,"name":"onlyOwner","nameLocations":["446:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"446:9:15"},"nodeType":"ModifierInvocation","src":"446:9:15"}],"name":"pause","nameLocation":"429:5:15","nodeType":"FunctionDefinition","parameters":{"id":2672,"nodeType":"ParameterList","parameters":[],"src":"434:2:15"},"returnParameters":{"id":2675,"nodeType":"ParameterList","parameters":[],"src":"456:0:15"},"scope":2776,"src":"420:95:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2701,"nodeType":"Block","src":"556:55:15","statements":[{"expression":{"arguments":[{"id":2693,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2643,"src":"568:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f7420706175736564","id":2694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"576:12:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b","typeString":"literal_string \"not paused\""},"value":"not paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b","typeString":"literal_string \"not paused\""}],"id":2692,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"560:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"560:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2696,"nodeType":"ExpressionStatement","src":"560:29:15"},{"expression":{"id":2699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2697,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2643,"src":"593:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":2698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"602:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"593:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2700,"nodeType":"ExpressionStatement","src":"593:14:15"}]},"functionSelector":"3f4ba83a","id":2702,"implemented":true,"kind":"function","modifiers":[{"id":2690,"kind":"modifierInvocation","modifierName":{"id":2689,"name":"onlyOwner","nameLocations":["546:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"546:9:15"},"nodeType":"ModifierInvocation","src":"546:9:15"}],"name":"unpause","nameLocation":"527:7:15","nodeType":"FunctionDefinition","parameters":{"id":2688,"nodeType":"ParameterList","parameters":[],"src":"534:2:15"},"returnParameters":{"id":2691,"nodeType":"ParameterList","parameters":[],"src":"556:0:15"},"scope":2776,"src":"518:93:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2713,"nodeType":"Block","src":"670:28:15","statements":[{"expression":{"arguments":[{"id":2710,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2704,"src":"686:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2709,"name":"_addRelayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3398,"src":"674:11:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"674:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2712,"nodeType":"ExpressionStatement","src":"674:20:15"}]},"functionSelector":"dd39f00d","id":2714,"implemented":true,"kind":"function","modifiers":[{"id":2707,"kind":"modifierInvocation","modifierName":{"id":2706,"name":"onlyOwner","nameLocations":["660:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"660:9:15"},"nodeType":"ModifierInvocation","src":"660:9:15"}],"name":"addRelayer","nameLocation":"623:10:15","nodeType":"FunctionDefinition","parameters":{"id":2705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2704,"mutability":"mutable","name":"relayer","nameLocation":"642:7:15","nodeType":"VariableDeclaration","scope":2714,"src":"634:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2703,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"633:17:15"},"returnParameters":{"id":2708,"nodeType":"ParameterList","parameters":[],"src":"670:0:15"},"scope":2776,"src":"614:84:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2725,"nodeType":"Block","src":"760:31:15","statements":[{"expression":{"arguments":[{"id":2722,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2716,"src":"779:7:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2721,"name":"_removeRelayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3421,"src":"764:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"764:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2724,"nodeType":"ExpressionStatement","src":"764:23:15"}]},"functionSelector":"60f0a5ac","id":2726,"implemented":true,"kind":"function","modifiers":[{"id":2719,"kind":"modifierInvocation","modifierName":{"id":2718,"name":"onlyOwner","nameLocations":["750:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"750:9:15"},"nodeType":"ModifierInvocation","src":"750:9:15"}],"name":"removeRelayer","nameLocation":"710:13:15","nodeType":"FunctionDefinition","parameters":{"id":2717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2716,"mutability":"mutable","name":"relayer","nameLocation":"732:7:15","nodeType":"VariableDeclaration","scope":2726,"src":"724:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2715,"name":"address","nodeType":"ElementaryTypeName","src":"724:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"723:17:15"},"returnParameters":{"id":2720,"nodeType":"ParameterList","parameters":[],"src":"760:0:15"},"scope":2776,"src":"701:90:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2738,"nodeType":"Block","src":"859:30:15","statements":[{"expression":{"arguments":[{"id":2735,"name":"_config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2729,"src":"877:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_memory_ptr","typeString":"struct Config.Config_ memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Config__$2546_memory_ptr","typeString":"struct Config.Config_ memory"}],"id":2734,"name":"_updateConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2572,"src":"863:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Config__$2546_memory_ptr_$returns$__$","typeString":"function (struct Config.Config_ memory)"}},"id":2736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2737,"nodeType":"ExpressionStatement","src":"863:22:15"}]},"functionSelector":"28ad6c16","id":2739,"implemented":true,"kind":"function","modifiers":[{"id":2732,"kind":"modifierInvocation","modifierName":{"id":2731,"name":"onlyOwner","nameLocations":["849:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"849:9:15"},"nodeType":"ModifierInvocation","src":"849:9:15"}],"name":"updateConfig","nameLocation":"803:12:15","nodeType":"FunctionDefinition","parameters":{"id":2730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2729,"mutability":"mutable","name":"_config","nameLocation":"831:7:15","nodeType":"VariableDeclaration","scope":2739,"src":"816:22:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_memory_ptr","typeString":"struct Config.Config_"},"typeName":{"id":2728,"nodeType":"UserDefinedTypeName","pathNode":{"id":2727,"name":"Config_","nameLocations":["816:7:15"],"nodeType":"IdentifierPath","referencedDeclaration":2546,"src":"816:7:15"},"referencedDeclaration":2546,"src":"816:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage_ptr","typeString":"struct Config.Config_"}},"visibility":"internal"}],"src":"815:24:15"},"returnParameters":{"id":2733,"nodeType":"ParameterList","parameters":[],"src":"859:0:15"},"scope":2776,"src":"794:95:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2750,"nodeType":"Block","src":"966:46:15","statements":[{"expression":{"arguments":[{"id":2747,"name":"_depositBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2741,"src":"992:15:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":2746,"name":"_updateDepositBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2588,"src":"970:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":2748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"970:38:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2749,"nodeType":"ExpressionStatement","src":"970:38:15"}]},"functionSelector":"c8dc8a0c","id":2751,"implemented":true,"kind":"function","modifiers":[{"id":2744,"kind":"modifierInvocation","modifierName":{"id":2743,"name":"onlyOwner","nameLocations":["956:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"956:9:15"},"nodeType":"ModifierInvocation","src":"956:9:15"}],"name":"updateDepositBaseFee","nameLocation":"901:20:15","nodeType":"FunctionDefinition","parameters":{"id":2742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2741,"mutability":"mutable","name":"_depositBaseFee","nameLocation":"930:15:15","nodeType":"VariableDeclaration","scope":2751,"src":"922:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":2740,"name":"uint128","nodeType":"ElementaryTypeName","src":"922:7:15","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"921:25:15"},"returnParameters":{"id":2745,"nodeType":"ParameterList","parameters":[],"src":"966:0:15"},"scope":2776,"src":"892:120:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2762,"nodeType":"Block","src":"1088:46:15","statements":[{"expression":{"arguments":[{"id":2759,"name":"_depositFeeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2753,"src":"1114:15:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2758,"name":"_updateDepositFeeRate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2613,"src":"1092:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint32_$returns$__$","typeString":"function (uint32)"}},"id":2760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1092:38:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2761,"nodeType":"ExpressionStatement","src":"1092:38:15"}]},"functionSelector":"1251d14e","id":2763,"implemented":true,"kind":"function","modifiers":[{"id":2756,"kind":"modifierInvocation","modifierName":{"id":2755,"name":"onlyOwner","nameLocations":["1078:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"1078:9:15"},"nodeType":"ModifierInvocation","src":"1078:9:15"}],"name":"updateDepositFeeRate","nameLocation":"1024:20:15","nodeType":"FunctionDefinition","parameters":{"id":2754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2753,"mutability":"mutable","name":"_depositFeeRate","nameLocation":"1052:15:15","nodeType":"VariableDeclaration","scope":2763,"src":"1045:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2752,"name":"uint32","nodeType":"ElementaryTypeName","src":"1045:6:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1044:24:15"},"returnParameters":{"id":2757,"nodeType":"ParameterList","parameters":[],"src":"1088:0:15"},"scope":2776,"src":"1015:119:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2774,"nodeType":"Block","src":"1208:44:15","statements":[{"expression":{"arguments":[{"id":2771,"name":"_finalizeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2765,"src":"1233:14:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2770,"name":"_updateFinalizeTxGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2629,"src":"1212:20:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint32_$returns$__$","typeString":"function (uint32)"}},"id":2772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2773,"nodeType":"ExpressionStatement","src":"1212:36:15"}]},"functionSelector":"10c58d65","id":2775,"implemented":true,"kind":"function","modifiers":[{"id":2768,"kind":"modifierInvocation","modifierName":{"id":2767,"name":"onlyOwner","nameLocations":["1198:9:15"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"1198:9:15"},"nodeType":"ModifierInvocation","src":"1198:9:15"}],"name":"updateFinalizeTxGas","nameLocation":"1146:19:15","nodeType":"FunctionDefinition","parameters":{"id":2766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2765,"mutability":"mutable","name":"_finalizeTxGas","nameLocation":"1173:14:15","nodeType":"VariableDeclaration","scope":2775,"src":"1166:21:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2764,"name":"uint32","nodeType":"ElementaryTypeName","src":"1166:6:15","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1165:23:15"},"returnParameters":{"id":2769,"nodeType":"ParameterList","parameters":[],"src":"1208:0:15"},"scope":2776,"src":"1137:115:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":2777,"src":"165:1090:15","usedErrors":[],"usedEvents":[13,126,2557,3358,3362]}],"src":"33:1223:15"},"id":15},"contracts/ETHDeliver.sol":{"ast":{"absolutePath":"contracts/ETHDeliver.sol","exportedSymbols":{"Config":[2630],"Context":[342],"Controller":[2776],"ECDSA":[1263],"EIP712":[1467],"ETHDeliver":[3348],"IERC1271":[209],"IERC20":[312],"IERC5267":[234],"Math":[2432],"Ownable":[112],"Ownable2Step":[195],"Relayers":[3422],"ShortString":[347],"ShortStrings":[558],"SignatureChecker":[1566],"SignedMath":[2537],"StorageSlot":[668],"Strings":[897]},"id":3349,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2778,"literals":["solidity","0.8",".20"],"nodeType":"PragmaDirective","src":"33:23:16"},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","file":"@openzeppelin/contracts/utils/cryptography/EIP712.sol","id":2779,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3349,"sourceUnit":1468,"src":"58:63:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol","file":"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol","id":2780,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3349,"sourceUnit":1567,"src":"122:73:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":2781,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3349,"sourceUnit":313,"src":"196:56:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Controller.sol","file":"./Controller.sol","id":2782,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3349,"sourceUnit":2777,"src":"253:26:16","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2783,"name":"Controller","nameLocations":["304:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":2776,"src":"304:10:16"},"id":2784,"nodeType":"InheritanceSpecifier","src":"304:10:16"},{"baseName":{"id":2785,"name":"EIP712","nameLocations":["316:6:16"],"nodeType":"IdentifierPath","referencedDeclaration":1467,"src":"316:6:16"},"id":2786,"nodeType":"InheritanceSpecifier","src":"316:6:16"}],"canonicalName":"ETHDeliver","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3348,"linearizedBaseContracts":[3348,1467,234,2776,195,112,342,2630,3422],"name":"ETHDeliver","nameLocation":"290:10:16","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":2787,"nodeType":"StructuredDocumentation","src":"327:95:16","text":"@dev keccak256(\"DepositorWithdraw(bytes32 logHash,address from,address to,uint256 amount)\")"},"functionSelector":"4d5ff840","id":2792,"mutability":"mutable","name":"DepositorWithdrawTypesHash","nameLocation":"439:26:16","nodeType":"VariableDeclaration","scope":3348,"src":"424:130:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"424:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4465706f7369746f7257697468647261772862797465733332206c6f67486173682c616464726573732066726f6d2c6164647265737320746f2c75696e7432353620616d6f756e7429","id":2790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"478:75:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca4b8f8c7d0ade5601d7a2c664085fe922706852ae451e86e32cd91be82b8a00","typeString":"literal_string \"DepositorWithdraw(bytes32 logHash,address from,address to,uint256 amount)\""},"value":"DepositorWithdraw(bytes32 logHash,address from,address to,uint256 amount)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca4b8f8c7d0ade5601d7a2c664085fe922706852ae451e86e32cd91be82b8a00","typeString":"literal_string \"DepositorWithdraw(bytes32 logHash,address from,address to,uint256 amount)\""}],"id":2789,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"468:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"468:86:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"documentation":{"id":2793,"nodeType":"StructuredDocumentation","src":"558:53:16","text":"@dev keccak256(abi.encodePacked(txHash,logIndex))"},"functionSelector":"788daa17","id":2797,"mutability":"mutable","name":"logHashes","nameLocation":"645:9:16","nodeType":"VariableDeclaration","scope":3348,"src":"613:41:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":2796,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":2794,"name":"bytes32","nodeType":"ElementaryTypeName","src":"621:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"613:24:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2795,"name":"bool","nodeType":"ElementaryTypeName","src":"632:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"functionSelector":"638d9c56","id":2801,"mutability":"mutable","name":"depositorWithdrawals","nameLocation":"690:20:16","nodeType":"VariableDeclaration","scope":3348,"src":"658:52:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":2800,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":2798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"666:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"658:24:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2799,"name":"bool","nodeType":"ElementaryTypeName","src":"677:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"anonymous":false,"eventSelector":"073bfd0ef2114072a401cb773cac34805c7a6a50ea8aa09aca0698a1608d47b5","id":2817,"name":"Deposit","nameLocation":"720:7:16","nodeType":"EventDefinition","parameters":{"id":2816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2803,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"736:10:16","nodeType":"VariableDeclaration","scope":2817,"src":"728:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2802,"name":"uint256","nodeType":"ElementaryTypeName","src":"728:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2805,"indexed":false,"mutability":"mutable","name":"dstChainId","nameLocation":"756:10:16","nodeType":"VariableDeclaration","scope":2817,"src":"748:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2804,"name":"uint256","nodeType":"ElementaryTypeName","src":"748:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2807,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"776:4:16","nodeType":"VariableDeclaration","scope":2817,"src":"768:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2806,"name":"address","nodeType":"ElementaryTypeName","src":"768:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2809,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"790:2:16","nodeType":"VariableDeclaration","scope":2817,"src":"782:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2808,"name":"address","nodeType":"ElementaryTypeName","src":"782:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2811,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"802:6:16","nodeType":"VariableDeclaration","scope":2817,"src":"794:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2810,"name":"uint256","nodeType":"ElementaryTypeName","src":"794:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2813,"indexed":false,"mutability":"mutable","name":"fee","nameLocation":"818:3:16","nodeType":"VariableDeclaration","scope":2817,"src":"810:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2812,"name":"uint256","nodeType":"ElementaryTypeName","src":"810:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2815,"indexed":false,"mutability":"mutable","name":"timeoutAt","nameLocation":"830:9:16","nodeType":"VariableDeclaration","scope":2817,"src":"823:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2814,"name":"uint32","nodeType":"ElementaryTypeName","src":"823:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"727:113:16"},"src":"714:127:16"},{"anonymous":false,"eventSelector":"a92a9cf2c9f7f08e828b3b3ad56e58a518a0446039b53c6a35ee54340c1fbf10","id":2822,"name":"DepositorWithdrawn","nameLocation":"850:18:16","nodeType":"EventDefinition","parameters":{"id":2821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2820,"indexed":false,"mutability":"mutable","name":"w","nameLocation":"889:1:16","nodeType":"VariableDeclaration","scope":2822,"src":"869:21:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal"},"typeName":{"id":2819,"nodeType":"UserDefinedTypeName","pathNode":{"id":2818,"name":"DepositorWithdrawal","nameLocations":["869:19:16"],"nodeType":"IdentifierPath","referencedDeclaration":2862,"src":"869:19:16"},"referencedDeclaration":2862,"src":"869:19:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_storage_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal"}},"visibility":"internal"}],"src":"868:23:16"},"src":"844:48:16"},{"anonymous":false,"eventSelector":"02e3e72232a62e8a18c680821d40213041c2c22c1f0b30f80463eeae3320064c","id":2838,"name":"Finalize","nameLocation":"901:8:16","nodeType":"EventDefinition","parameters":{"id":2837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2824,"indexed":false,"mutability":"mutable","name":"relayer","nameLocation":"918:7:16","nodeType":"VariableDeclaration","scope":2838,"src":"910:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2823,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2826,"indexed":false,"mutability":"mutable","name":"srcChainId","nameLocation":"935:10:16","nodeType":"VariableDeclaration","scope":2838,"src":"927:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2825,"name":"uint256","nodeType":"ElementaryTypeName","src":"927:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2828,"indexed":false,"mutability":"mutable","name":"dstChainId","nameLocation":"955:10:16","nodeType":"VariableDeclaration","scope":2838,"src":"947:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2827,"name":"uint256","nodeType":"ElementaryTypeName","src":"947:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2830,"indexed":false,"mutability":"mutable","name":"logHash","nameLocation":"975:7:16","nodeType":"VariableDeclaration","scope":2838,"src":"967:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2829,"name":"bytes32","nodeType":"ElementaryTypeName","src":"967:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2832,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"992:2:16","nodeType":"VariableDeclaration","scope":2838,"src":"984:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2831,"name":"address","nodeType":"ElementaryTypeName","src":"984:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2834,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1004:6:16","nodeType":"VariableDeclaration","scope":2838,"src":"996:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2833,"name":"uint256","nodeType":"ElementaryTypeName","src":"996:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2836,"indexed":false,"mutability":"mutable","name":"fee","nameLocation":"1020:3:16","nodeType":"VariableDeclaration","scope":2838,"src":"1012:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"909:115:16"},"src":"895:130:16"},{"anonymous":false,"eventSelector":"0c8988bc8137b371a82f0a753a05b85a2c3cdecff90c59eaf36ec6f7b3bce499","id":2849,"name":"EmergencyWithdraw","nameLocation":"1034:17:16","nodeType":"EventDefinition","parameters":{"id":2848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2840,"indexed":false,"mutability":"mutable","name":"admin","nameLocation":"1060:5:16","nodeType":"VariableDeclaration","scope":2849,"src":"1052:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2839,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2842,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"1075:2:16","nodeType":"VariableDeclaration","scope":2849,"src":"1067:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2841,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2845,"indexed":false,"mutability":"mutable","name":"token","nameLocation":"1086:5:16","nodeType":"VariableDeclaration","scope":2849,"src":"1079:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$312","typeString":"contract IERC20"},"typeName":{"id":2844,"nodeType":"UserDefinedTypeName","pathNode":{"id":2843,"name":"IERC20","nameLocations":["1079:6:16"],"nodeType":"IdentifierPath","referencedDeclaration":312,"src":"1079:6:16"},"referencedDeclaration":312,"src":"1079:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$312","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":2847,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1101:6:16","nodeType":"VariableDeclaration","scope":2849,"src":"1093:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2846,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1051:57:16"},"src":"1028:81:16"},{"canonicalName":"ETHDeliver.DepositorWithdrawal","id":2862,"members":[{"constant":false,"id":2851,"mutability":"mutable","name":"logHash","nameLocation":"1150:7:16","nodeType":"VariableDeclaration","scope":2862,"src":"1142:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1142:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2853,"mutability":"mutable","name":"from","nameLocation":"1169:4:16","nodeType":"VariableDeclaration","scope":2862,"src":"1161:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2852,"name":"address","nodeType":"ElementaryTypeName","src":"1161:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2855,"mutability":"mutable","name":"to","nameLocation":"1185:2:16","nodeType":"VariableDeclaration","scope":2862,"src":"1177:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2854,"name":"address","nodeType":"ElementaryTypeName","src":"1177:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2857,"mutability":"mutable","name":"amount","nameLocation":"1199:6:16","nodeType":"VariableDeclaration","scope":2862,"src":"1191:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2856,"name":"uint256","nodeType":"ElementaryTypeName","src":"1191:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2859,"mutability":"mutable","name":"depositorSig","nameLocation":"1215:12:16","nodeType":"VariableDeclaration","scope":2862,"src":"1209:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2858,"name":"bytes","nodeType":"ElementaryTypeName","src":"1209:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2861,"mutability":"mutable","name":"adminSig","nameLocation":"1237:8:16","nodeType":"VariableDeclaration","scope":2862,"src":"1231:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2860,"name":"bytes","nodeType":"ElementaryTypeName","src":"1231:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"DepositorWithdrawal","nameLocation":"1119:19:16","nodeType":"StructDefinition","scope":3348,"src":"1112:137:16","visibility":"public"},{"canonicalName":"ETHDeliver.FinalizeTxMeta","id":2873,"members":[{"constant":false,"id":2864,"mutability":"mutable","name":"srcChainId","nameLocation":"1286:10:16","nodeType":"VariableDeclaration","scope":2873,"src":"1278:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2863,"name":"uint256","nodeType":"ElementaryTypeName","src":"1278:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2866,"mutability":"mutable","name":"logHash","nameLocation":"1309:7:16","nodeType":"VariableDeclaration","scope":2873,"src":"1301:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1301:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2868,"mutability":"mutable","name":"to","nameLocation":"1329:2:16","nodeType":"VariableDeclaration","scope":2873,"src":"1321:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2867,"name":"address","nodeType":"ElementaryTypeName","src":"1321:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2870,"mutability":"mutable","name":"amount","nameLocation":"1344:6:16","nodeType":"VariableDeclaration","scope":2873,"src":"1336:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2869,"name":"uint256","nodeType":"ElementaryTypeName","src":"1336:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2872,"mutability":"mutable","name":"timeoutAt","nameLocation":"1361:9:16","nodeType":"VariableDeclaration","scope":2873,"src":"1354:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2871,"name":"uint32","nodeType":"ElementaryTypeName","src":"1354:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"name":"FinalizeTxMeta","nameLocation":"1259:14:16","nodeType":"StructDefinition","scope":3348,"src":"1252:122:16","visibility":"public"},{"body":{"id":2892,"nodeType":"Block","src":"1427:121:16","statements":[{"expression":{"arguments":[{"id":2881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1439:30:16","subExpression":{"baseExpression":{"id":2878,"name":"depositorWithdrawals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2801,"src":"1440:20:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2880,"indexExpression":{"id":2879,"name":"logHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2875,"src":"1461:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1440:29:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6465706f7369747320616c7265616479207769746864726177","id":2882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1471:27:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7","typeString":"literal_string \"deposits already withdraw\""},"value":"deposits already withdraw"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7","typeString":"literal_string \"deposits already withdraw\""}],"id":2877,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1431:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1431:68:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2884,"nodeType":"ExpressionStatement","src":"1431:68:16"},{"expression":{"id":2889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2885,"name":"depositorWithdrawals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2801,"src":"1503:20:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2887,"indexExpression":{"id":2886,"name":"logHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2875,"src":"1524:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1503:29:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1535:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1503:36:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2890,"nodeType":"ExpressionStatement","src":"1503:36:16"},{"id":2891,"nodeType":"PlaceholderStatement","src":"1543:1:16"}]},"id":2893,"name":"ensureDepositorWithdraw","nameLocation":"1386:23:16","nodeType":"ModifierDefinition","parameters":{"id":2876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2875,"mutability":"mutable","name":"logHash","nameLocation":"1418:7:16","nodeType":"VariableDeclaration","scope":2893,"src":"1410:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2874,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1410:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1409:17:16"},"src":"1377:171:16","virtual":false,"visibility":"internal"},{"body":{"id":2912,"nodeType":"Block","src":"1586:86:16","statements":[{"expression":{"arguments":[{"id":2901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1598:19:16","subExpression":{"baseExpression":{"id":2898,"name":"logHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2797,"src":"1599:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2900,"indexExpression":{"id":2899,"name":"logHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2895,"src":"1609:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1599:18:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"74782066696e616c697a6564","id":2902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1619:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb","typeString":"literal_string \"tx finalized\""},"value":"tx finalized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb","typeString":"literal_string \"tx finalized\""}],"id":2897,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1590:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:44:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2904,"nodeType":"ExpressionStatement","src":"1590:44:16"},{"expression":{"id":2909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2905,"name":"logHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2797,"src":"1638:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":2907,"indexExpression":{"id":2906,"name":"logHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2895,"src":"1648:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1638:18:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1659:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1638:25:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2910,"nodeType":"ExpressionStatement","src":"1638:25:16"},{"id":2911,"nodeType":"PlaceholderStatement","src":"1667:1:16"}]},"id":2913,"name":"ensureTx","nameLocation":"1560:8:16","nodeType":"ModifierDefinition","parameters":{"id":2896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2895,"mutability":"mutable","name":"logHash","nameLocation":"1577:7:16","nodeType":"VariableDeclaration","scope":2913,"src":"1569:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1569:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1568:17:16"},"src":"1551:121:16","virtual":false,"visibility":"internal"},{"body":{"id":2926,"nodeType":"Block","src":"1713:64:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2918,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1725:5:16","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1731:9:16","memberName":"timestamp","nodeType":"MemberAccess","src":"1725:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":2920,"name":"timeoutAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2915,"src":"1744:9:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"1725:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"74782074696d656f7574","id":2922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1755:12:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd","typeString":"literal_string \"tx timeout\""},"value":"tx timeout"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd","typeString":"literal_string \"tx timeout\""}],"id":2917,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1717:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1717:51:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2924,"nodeType":"ExpressionStatement","src":"1717:51:16"},{"id":2925,"nodeType":"PlaceholderStatement","src":"1772:1:16"}]},"id":2927,"name":"notTimeout","nameLocation":"1684:10:16","nodeType":"ModifierDefinition","parameters":{"id":2916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2915,"mutability":"mutable","name":"timeoutAt","nameLocation":"1702:9:16","nodeType":"VariableDeclaration","scope":2927,"src":"1695:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2914,"name":"uint32","nodeType":"ElementaryTypeName","src":"1695:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1694:18:16"},"src":"1675:102:16","virtual":false,"visibility":"internal"},{"body":{"id":2940,"nodeType":"Block","src":"1861:4:16","statements":[]},"id":2941,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":2933,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2930,"src":"1826:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_memory_ptr","typeString":"struct Config.Config_ memory"}}],"id":2934,"kind":"baseConstructorSpecifier","modifierName":{"id":2932,"name":"Controller","nameLocations":["1815:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":2776,"src":"1815:10:16"},"nodeType":"ModifierInvocation","src":"1815:18:16"},{"arguments":[{"hexValue":"45544844454c49564552","id":2936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1841:12:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_bcfcca6a6540915e5a2ab26c28811a37dd0620a4619137e983aef2fbd0f30387","typeString":"literal_string \"ETHDELIVER\""},"value":"ETHDELIVER"},{"hexValue":"7631","id":2937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1855:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_0984d5efd47d99151ae1be065a709e56c602102f24c1abc4008eb3f815a8d217","typeString":"literal_string \"v1\""},"value":"v1"}],"id":2938,"kind":"baseConstructorSpecifier","modifierName":{"id":2935,"name":"EIP712","nameLocations":["1834:6:16"],"nodeType":"IdentifierPath","referencedDeclaration":1467,"src":"1834:6:16"},"nodeType":"ModifierInvocation","src":"1834:26:16"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2930,"mutability":"mutable","name":"config","nameLocation":"1807:6:16","nodeType":"VariableDeclaration","scope":2941,"src":"1792:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_memory_ptr","typeString":"struct Config.Config_"},"typeName":{"id":2929,"nodeType":"UserDefinedTypeName","pathNode":{"id":2928,"name":"Config_","nameLocations":["1792:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":2546,"src":"1792:7:16"},"referencedDeclaration":2546,"src":"1792:7:16","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage_ptr","typeString":"struct Config.Config_"}},"visibility":"internal"}],"src":"1791:23:16"},"returnParameters":{"id":2939,"nodeType":"ParameterList","parameters":[],"src":"1861:0:16"},"scope":3348,"src":"1780:85:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2995,"nodeType":"Block","src":"1988:252:16","statements":[{"assignments":[2956],"declarations":[{"constant":false,"id":2956,"mutability":"mutable","name":"value","nameLocation":"2000:5:16","nodeType":"VariableDeclaration","scope":2995,"src":"1992:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2955,"name":"uint256","nodeType":"ElementaryTypeName","src":"1992:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2959,"initialValue":{"expression":{"id":2957,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2008:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2012:5:16","memberName":"value","nodeType":"MemberAccess","src":"2008:9:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1992:25:16"},{"assignments":[2961],"declarations":[{"constant":false,"id":2961,"mutability":"mutable","name":"fee","nameLocation":"2029:3:16","nodeType":"VariableDeclaration","scope":2995,"src":"2021:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2960,"name":"uint256","nodeType":"ElementaryTypeName","src":"2021:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2965,"initialValue":{"arguments":[{"id":2963,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2956,"src":"2046:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2962,"name":"depositFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"2035:10:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":2964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2035:17:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2021:31:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2967,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2956,"src":"2064:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2968,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2961,"src":"2073:3:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2064:12:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e73756666696369656e742076616c756520666f72206465706f73697420666565","id":2970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2078:36:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114","typeString":"literal_string \"insufficient value for deposit fee\""},"value":"insufficient value for deposit fee"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114","typeString":"literal_string \"insufficient value for deposit fee\""}],"id":2966,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2056:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2056:59:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2972,"nodeType":"ExpressionStatement","src":"2056:59:16"},{"expression":{"id":2975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2973,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2956,"src":"2119:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":2974,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2961,"src":"2128:3:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2119:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2976,"nodeType":"ExpressionStatement","src":"2119:12:16"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2978,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"2145:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2145:7:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2980,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2961,"src":"2154:3:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2977,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3187,"src":"2135:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":2981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2982,"nodeType":"ExpressionStatement","src":"2135:23:16"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":2984,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3336,"src":"2175:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2175:9:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2986,"name":"dstChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2945,"src":"2186:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2987,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2198:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2202:6:16","memberName":"sender","nodeType":"MemberAccess","src":"2198:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2989,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2943,"src":"2210:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2990,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2956,"src":"2214:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2991,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2961,"src":"2221:3:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2992,"name":"timeoutAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2947,"src":"2226:9:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"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_uint32","typeString":"uint32"}],"id":2983,"name":"Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2817,"src":"2167:7:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint32_$returns$__$","typeString":"function (uint256,uint256,address,address,uint256,uint256,uint32)"}},"id":2993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2167:69:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2994,"nodeType":"EmitStatement","src":"2162:74:16"}]},"functionSelector":"b1cccca2","id":2996,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2950,"name":"timeoutAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2947,"src":"1963:9:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"id":2951,"kind":"modifierInvocation","modifierName":{"id":2949,"name":"notTimeout","nameLocations":["1952:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":2927,"src":"1952:10:16"},"nodeType":"ModifierInvocation","src":"1952:21:16"},{"id":2953,"kind":"modifierInvocation","modifierName":{"id":2952,"name":"wherNotPaused","nameLocations":["1974:13:16"],"nodeType":"IdentifierPath","referencedDeclaration":2653,"src":"1974:13:16"},"nodeType":"ModifierInvocation","src":"1974:13:16"}],"name":"deposit","nameLocation":"1877:7:16","nodeType":"FunctionDefinition","parameters":{"id":2948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2943,"mutability":"mutable","name":"to","nameLocation":"1893:2:16","nodeType":"VariableDeclaration","scope":2996,"src":"1885:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2942,"name":"address","nodeType":"ElementaryTypeName","src":"1885:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2945,"mutability":"mutable","name":"dstChainId","nameLocation":"1905:10:16","nodeType":"VariableDeclaration","scope":2996,"src":"1897:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2944,"name":"uint256","nodeType":"ElementaryTypeName","src":"1897:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2947,"mutability":"mutable","name":"timeoutAt","nameLocation":"1924:9:16","nodeType":"VariableDeclaration","scope":2996,"src":"1917:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2946,"name":"uint32","nodeType":"ElementaryTypeName","src":"1917:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"1884:50:16"},"returnParameters":{"id":2954,"nodeType":"ParameterList","parameters":[],"src":"1988:0:16"},"scope":3348,"src":"1868:372:16","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":3052,"nodeType":"Block","src":"2316:253:16","statements":[{"body":{"id":3050,"nodeType":"Block","src":"2363:203:16","statements":[{"assignments":[3018],"declarations":[{"constant":false,"id":3018,"mutability":"mutable","name":"meta","nameLocation":"2390:4:16","nodeType":"VariableDeclaration","scope":3050,"src":"2368:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta"},"typeName":{"id":3017,"nodeType":"UserDefinedTypeName","pathNode":{"id":3016,"name":"FinalizeTxMeta","nameLocations":["2368:14:16"],"nodeType":"IdentifierPath","referencedDeclaration":2873,"src":"2368:14:16"},"referencedDeclaration":2873,"src":"2368:14:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_storage_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta"}},"visibility":"internal"}],"id":3022,"initialValue":{"baseExpression":{"id":3019,"name":"metas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3000,"src":"2397:5:16","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory[] memory"}},"id":3021,"indexExpression":{"id":3020,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3006,"src":"2403:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2397:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"nodeType":"VariableDeclarationStatement","src":"2368:37:16"},{"expression":{"arguments":[{"id":3028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2418:24:16","subExpression":{"baseExpression":{"id":3024,"name":"logHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2797,"src":"2419:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":3027,"indexExpression":{"expression":{"id":3025,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"2429:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2434:7:16","memberName":"logHash","nodeType":"MemberAccess","referencedDeclaration":2866,"src":"2429:12:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2419:23:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"74782066696e616c697a6564","id":3029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2444:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb","typeString":"literal_string \"tx finalized\""},"value":"tx finalized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb","typeString":"literal_string \"tx finalized\""}],"id":3023,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2410:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2410:49:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3031,"nodeType":"ExpressionStatement","src":"2410:49:16"},{"expression":{"id":3037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3032,"name":"logHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2797,"src":"2464:9:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":3035,"indexExpression":{"expression":{"id":3033,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"2474:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2479:7:16","memberName":"logHash","nodeType":"MemberAccess","referencedDeclaration":2866,"src":"2474:12:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2464:23:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2490:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2464:30:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3038,"nodeType":"ExpressionStatement","src":"2464:30:16"},{"expression":{"arguments":[{"expression":{"id":3040,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"2509:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2514:10:16","memberName":"srcChainId","nodeType":"MemberAccess","referencedDeclaration":2864,"src":"2509:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3042,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"2526:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2531:7:16","memberName":"logHash","nodeType":"MemberAccess","referencedDeclaration":2866,"src":"2526:12:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3044,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"2540:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2545:2:16","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":2868,"src":"2540:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3046,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"2549:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2554:6:16","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":2870,"src":"2549:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3039,"name":"_finalize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3134,"src":"2499:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,address,uint256)"}},"id":3048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2499:62:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3049,"nodeType":"ExpressionStatement","src":"2499:62:16"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3006,"src":"2340:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":3010,"name":"metas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3000,"src":"2344:5:16","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory[] memory"}},"id":3011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2350:6:16","memberName":"length","nodeType":"MemberAccess","src":"2344:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2340:16:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3051,"initializationExpression":{"assignments":[3006],"declarations":[{"constant":false,"id":3006,"mutability":"mutable","name":"i","nameLocation":"2333:1:16","nodeType":"VariableDeclaration","scope":3051,"src":"2325:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3005,"name":"uint256","nodeType":"ElementaryTypeName","src":"2325:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3008,"initialValue":{"hexValue":"30","id":3007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2337:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2325:13:16"},"loopExpression":{"expression":{"id":3014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2358:3:16","subExpression":{"id":3013,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3006,"src":"2358:1:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3015,"nodeType":"ExpressionStatement","src":"2358:3:16"},"nodeType":"ForStatement","src":"2320:246:16"}]},"functionSelector":"87939d78","id":3053,"implemented":true,"kind":"function","modifiers":[{"id":3003,"kind":"modifierInvocation","modifierName":{"id":3002,"name":"onlyRelayer","nameLocations":["2304:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":3374,"src":"2304:11:16"},"nodeType":"ModifierInvocation","src":"2304:11:16"}],"name":"mulFinalize","nameLocation":"2252:11:16","nodeType":"FunctionDefinition","parameters":{"id":3001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3000,"mutability":"mutable","name":"metas","nameLocation":"2288:5:16","nodeType":"VariableDeclaration","scope":3053,"src":"2264:29:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta[]"},"typeName":{"baseType":{"id":2998,"nodeType":"UserDefinedTypeName","pathNode":{"id":2997,"name":"FinalizeTxMeta","nameLocations":["2264:14:16"],"nodeType":"IdentifierPath","referencedDeclaration":2873,"src":"2264:14:16"},"referencedDeclaration":2873,"src":"2264:14:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_storage_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta"}},"id":2999,"nodeType":"ArrayTypeName","src":"2264:16:16","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FinalizeTxMeta_$2873_storage_$dyn_storage_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta[]"}},"visibility":"internal"}],"src":"2263:31:16"},"returnParameters":{"id":3004,"nodeType":"ParameterList","parameters":[],"src":"2316:0:16"},"scope":3348,"src":"2243:326:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3082,"nodeType":"Block","src":"2703:70:16","statements":[{"expression":{"arguments":[{"expression":{"id":3072,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3056,"src":"2717:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2722:10:16","memberName":"srcChainId","nodeType":"MemberAccess","referencedDeclaration":2864,"src":"2717:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3074,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3056,"src":"2734:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2739:7:16","memberName":"logHash","nodeType":"MemberAccess","referencedDeclaration":2866,"src":"2734:12:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3076,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3056,"src":"2748:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2753:2:16","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":2868,"src":"2748:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3078,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3056,"src":"2757:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2762:6:16","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":2870,"src":"2757:11:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3071,"name":"_finalize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3134,"src":"2707:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,address,uint256)"}},"id":3080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2707:62:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3081,"nodeType":"ExpressionStatement","src":"2707:62:16"}]},"functionSelector":"8fbd65e6","id":3083,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":3059,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3056,"src":"2636:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2641:7:16","memberName":"logHash","nodeType":"MemberAccess","referencedDeclaration":2866,"src":"2636:12:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":3061,"kind":"modifierInvocation","modifierName":{"id":3058,"name":"ensureTx","nameLocations":["2627:8:16"],"nodeType":"IdentifierPath","referencedDeclaration":2913,"src":"2627:8:16"},"nodeType":"ModifierInvocation","src":"2627:22:16"},{"arguments":[{"expression":{"id":3063,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3056,"src":"2661:4:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta memory"}},"id":3064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2666:9:16","memberName":"timeoutAt","nodeType":"MemberAccess","referencedDeclaration":2872,"src":"2661:14:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"id":3065,"kind":"modifierInvocation","modifierName":{"id":3062,"name":"notTimeout","nameLocations":["2650:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":2927,"src":"2650:10:16"},"nodeType":"ModifierInvocation","src":"2650:26:16"},{"id":3067,"kind":"modifierInvocation","modifierName":{"id":3066,"name":"onlyRelayer","nameLocations":["2677:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":3374,"src":"2677:11:16"},"nodeType":"ModifierInvocation","src":"2677:11:16"},{"id":3069,"kind":"modifierInvocation","modifierName":{"id":3068,"name":"wherNotPaused","nameLocations":["2689:13:16"],"nodeType":"IdentifierPath","referencedDeclaration":2653,"src":"2689:13:16"},"nodeType":"ModifierInvocation","src":"2689:13:16"}],"name":"finalize","nameLocation":"2581:8:16","nodeType":"FunctionDefinition","parameters":{"id":3057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3056,"mutability":"mutable","name":"meta","nameLocation":"2612:4:16","nodeType":"VariableDeclaration","scope":3083,"src":"2590:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_memory_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta"},"typeName":{"id":3055,"nodeType":"UserDefinedTypeName","pathNode":{"id":3054,"name":"FinalizeTxMeta","nameLocations":["2590:14:16"],"nodeType":"IdentifierPath","referencedDeclaration":2873,"src":"2590:14:16"},"referencedDeclaration":2873,"src":"2590:14:16","typeDescriptions":{"typeIdentifier":"t_struct$_FinalizeTxMeta_$2873_storage_ptr","typeString":"struct ETHDeliver.FinalizeTxMeta"}},"visibility":"internal"}],"src":"2589:28:16"},"returnParameters":{"id":3070,"nodeType":"ParameterList","parameters":[],"src":"2703:0:16"},"scope":3348,"src":"2572:201:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3133,"nodeType":"Block","src":"2869:256:16","statements":[{"assignments":[3095],"declarations":[{"constant":false,"id":3095,"mutability":"mutable","name":"fee","nameLocation":"2881:3:16","nodeType":"VariableDeclaration","scope":3133,"src":"2873:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3094,"name":"uint256","nodeType":"ElementaryTypeName","src":"2873:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3098,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":3096,"name":"finalizeTxGasFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3165,"src":"2887:16:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2887:18:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2873:32:16"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3100,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"2917:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":3101,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3095,"src":"2927:3:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2917:13:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e73756666696369656e7420616d6f756e7420666f722066696e616c697a6520666565","id":3103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2932:38:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f","typeString":"literal_string \"insufficient amount for finalize fee\""},"value":"insufficient amount for finalize fee"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f","typeString":"literal_string \"insufficient amount for finalize fee\""}],"id":3099,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2909:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2909:62:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3105,"nodeType":"ExpressionStatement","src":"2909:62:16"},{"expression":{"id":3108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3106,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"2975:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":3107,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3095,"src":"2985:3:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2975:13:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3109,"nodeType":"ExpressionStatement","src":"2975:13:16"},{"expression":{"arguments":[{"id":3111,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"3002:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3112,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"3006:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3110,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3187,"src":"2992:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2992:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3114,"nodeType":"ExpressionStatement","src":"2992:21:16"},{"expression":{"arguments":[{"expression":{"id":3116,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3027:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3031:6:16","memberName":"sender","nodeType":"MemberAccess","src":"3027:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3118,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3095,"src":"3039:3:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3115,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3187,"src":"3017:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3017:26:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3120,"nodeType":"ExpressionStatement","src":"3017:26:16"},{"eventCall":{"arguments":[{"expression":{"id":3122,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3061:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3065:6:16","memberName":"sender","nodeType":"MemberAccess","src":"3061:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3124,"name":"srcChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3085,"src":"3073:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":3125,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3336,"src":"3085:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3085:9:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3127,"name":"logHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3087,"src":"3096:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3128,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"3105:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3129,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"3109:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3130,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3095,"src":"3117:3:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3121,"name":"Finalize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"3052:8:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,bytes32,address,uint256,uint256)"}},"id":3131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:69:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3132,"nodeType":"EmitStatement","src":"3047:74:16"}]},"id":3134,"implemented":true,"kind":"function","modifiers":[],"name":"_finalize","nameLocation":"2785:9:16","nodeType":"FunctionDefinition","parameters":{"id":3092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3085,"mutability":"mutable","name":"srcChainId","nameLocation":"2803:10:16","nodeType":"VariableDeclaration","scope":3134,"src":"2795:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3084,"name":"uint256","nodeType":"ElementaryTypeName","src":"2795:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3087,"mutability":"mutable","name":"logHash","nameLocation":"2823:7:16","nodeType":"VariableDeclaration","scope":3134,"src":"2815:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2815:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3089,"mutability":"mutable","name":"to","nameLocation":"2840:2:16","nodeType":"VariableDeclaration","scope":3134,"src":"2832:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3088,"name":"address","nodeType":"ElementaryTypeName","src":"2832:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3091,"mutability":"mutable","name":"amount","nameLocation":"2852:6:16","nodeType":"VariableDeclaration","scope":3134,"src":"2844:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3090,"name":"uint256","nodeType":"ElementaryTypeName","src":"2844:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2794:65:16"},"returnParameters":{"id":3093,"nodeType":"ParameterList","parameters":[],"src":"2869:0:16"},"scope":3348,"src":"2776:349:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3152,"nodeType":"Block","src":"3193:80:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3141,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"3204:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}},"id":3142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3211:14:16","memberName":"depositBaseFee","nodeType":"MemberAccess","referencedDeclaration":2541,"src":"3204:21:16","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3143,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3136,"src":"3229:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":3144,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"3238:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}},"id":3145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3245:14:16","memberName":"depositFeeRate","nodeType":"MemberAccess","referencedDeclaration":2543,"src":"3238:21:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"3229:30:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3147,"name":"MAXPCT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"3262:6:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"3229:39:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3149,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3228:41:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3204:65:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3140,"id":3151,"nodeType":"Return","src":"3197:72:16"}]},"functionSelector":"423c485a","id":3153,"implemented":true,"kind":"function","modifiers":[],"name":"depositFee","nameLocation":"3137:10:16","nodeType":"FunctionDefinition","parameters":{"id":3137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3136,"mutability":"mutable","name":"amount","nameLocation":"3156:6:16","nodeType":"VariableDeclaration","scope":3153,"src":"3148:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3135,"name":"uint256","nodeType":"ElementaryTypeName","src":"3148:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3147:16:16"},"returnParameters":{"id":3140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3153,"src":"3184:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3138,"name":"uint256","nodeType":"ElementaryTypeName","src":"3184:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3183:9:16"},"scope":3348,"src":"3128:145:16","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":3164,"nodeType":"Block","src":"3334:51:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3158,"name":"config","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2549,"src":"3348:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_Config__$2546_storage","typeString":"struct Config.Config_ storage ref"}},"id":3159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3355:13:16","memberName":"finalizeTxGas","nodeType":"MemberAccess","referencedDeclaration":2545,"src":"3348:20:16","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3160,"name":"gasPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"3371:8:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3371:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3348:33:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3157,"id":3163,"nodeType":"Return","src":"3341:40:16"}]},"functionSelector":"f35acf51","id":3165,"implemented":true,"kind":"function","modifiers":[],"name":"finalizeTxGasFee","nameLocation":"3285:16:16","nodeType":"FunctionDefinition","parameters":{"id":3154,"nodeType":"ParameterList","parameters":[],"src":"3301:2:16"},"returnParameters":{"id":3157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3156,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3165,"src":"3325:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3155,"name":"uint256","nodeType":"ElementaryTypeName","src":"3325:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3324:9:16"},"scope":3348,"src":"3276:109:16","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":3186,"nodeType":"Block","src":"3443:93:16","statements":[{"assignments":[3173,null],"declarations":[{"constant":false,"id":3173,"mutability":"mutable","name":"success","nameLocation":"3453:7:16","nodeType":"VariableDeclaration","scope":3186,"src":"3448:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3172,"name":"bool","nodeType":"ElementaryTypeName","src":"3448:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":3180,"initialValue":{"arguments":[{"hexValue":"","id":3178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3490:2:16","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":3174,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3167,"src":"3466:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3469:4:16","memberName":"call","nodeType":"MemberAccess","src":"3466:7:16","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":3177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":3176,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3169,"src":"3482:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3466:23:16","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":3179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3466:27:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3447:46:16"},{"expression":{"arguments":[{"id":3182,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3173,"src":"3505:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7472616e73666572206661696c6564","id":3183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3514:17:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""},"value":"transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","typeString":"literal_string \"transfer failed\""}],"id":3181,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3497:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3497:35:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3185,"nodeType":"ExpressionStatement","src":"3497:35:16"}]},"id":3187,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"3397:9:16","nodeType":"FunctionDefinition","parameters":{"id":3170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3167,"mutability":"mutable","name":"to","nameLocation":"3415:2:16","nodeType":"VariableDeclaration","scope":3187,"src":"3407:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3166,"name":"address","nodeType":"ElementaryTypeName","src":"3407:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3169,"mutability":"mutable","name":"value","nameLocation":"3427:5:16","nodeType":"VariableDeclaration","scope":3187,"src":"3419:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3168,"name":"uint256","nodeType":"ElementaryTypeName","src":"3419:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3406:27:16"},"returnParameters":{"id":3171,"nodeType":"ParameterList","parameters":[],"src":"3443:0:16"},"scope":3348,"src":"3388:148:16","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3247,"nodeType":"Block","src":"3654:345:16","statements":[{"assignments":[3200],"declarations":[{"constant":false,"id":3200,"mutability":"mutable","name":"hash","nameLocation":"3666:4:16","nodeType":"VariableDeclaration","scope":3247,"src":"3658:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3658:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3211,"initialValue":{"arguments":[{"expression":{"id":3202,"name":"w","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3709:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}},"id":3203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3711:7:16","memberName":"logHash","nodeType":"MemberAccess","referencedDeclaration":2851,"src":"3709:9:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3204,"name":"w","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3720:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}},"id":3205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3722:4:16","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":2853,"src":"3720:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3206,"name":"w","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3728:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}},"id":3207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3730:2:16","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":2855,"src":"3728:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3208,"name":"w","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3734:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}},"id":3209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3736:6:16","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":2857,"src":"3734:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3201,"name":"hashTypedDataV4ForDepositorWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3275,"src":"3673:35:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes32,address,address,uint256) view returns (bytes32)"}},"id":3210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3673:70:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3658:85:16"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":3215,"name":"w","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3792:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}},"id":3216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3794:4:16","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":2853,"src":"3792:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3217,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3200,"src":"3800:4:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3218,"name":"w","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3806:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}},"id":3219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3808:12:16","memberName":"depositorSig","nodeType":"MemberAccess","referencedDeclaration":2859,"src":"3806:14:16","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":3213,"name":"SignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"3755:16:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignatureChecker_$1566_$","typeString":"type(library SignatureChecker)"}},"id":3214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3772:19:16","memberName":"isValidSignatureNow","nodeType":"MemberAccess","referencedDeclaration":1513,"src":"3755:36:16","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":3220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3755:66:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c6964206465706f7369746f72","id":3221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3823:19:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298","typeString":"literal_string \"invalid depositor\""},"value":"invalid depositor"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298","typeString":"literal_string \"invalid depositor\""}],"id":3212,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3747:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3747:96:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3223,"nodeType":"ExpressionStatement","src":"3747:96:16"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3227,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"3892:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3892:7:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3229,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3200,"src":"3901:4:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3230,"name":"w","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3907:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}},"id":3231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3909:8:16","memberName":"adminSig","nodeType":"MemberAccess","referencedDeclaration":2861,"src":"3907:10:16","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":3225,"name":"SignatureChecker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"3855:16:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignatureChecker_$1566_$","typeString":"type(library SignatureChecker)"}},"id":3226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3872:19:16","memberName":"isValidSignatureNow","nodeType":"MemberAccess","referencedDeclaration":1513,"src":"3855:36:16","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":3232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:63:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"696e76616c69642061646d696e","id":3233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3920:15:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8","typeString":"literal_string \"invalid admin\""},"value":"invalid admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8","typeString":"literal_string \"invalid admin\""}],"id":3224,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3847:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3847:89:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3235,"nodeType":"ExpressionStatement","src":"3847:89:16"},{"expression":{"arguments":[{"expression":{"id":3237,"name":"w","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3950:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}},"id":3238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3952:2:16","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":2855,"src":"3950:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3239,"name":"w","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3956:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}},"id":3240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3958:6:16","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":2857,"src":"3956:8:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3236,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3187,"src":"3940:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3940:25:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3242,"nodeType":"ExpressionStatement","src":"3940:25:16"},{"eventCall":{"arguments":[{"id":3244,"name":"w","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3993:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}],"id":3243,"name":"DepositorWithdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2822,"src":"3974:18:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_struct$_DepositorWithdrawal_$2862_memory_ptr_$returns$__$","typeString":"function (struct ETHDeliver.DepositorWithdrawal memory)"}},"id":3245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3974:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3246,"nodeType":"EmitStatement","src":"3969:26:16"}]},"functionSelector":"5aaf6cc7","id":3248,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":3193,"name":"w","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"3629:1:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal memory"}},"id":3194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3631:7:16","memberName":"logHash","nodeType":"MemberAccess","referencedDeclaration":2851,"src":"3629:9:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":3195,"kind":"modifierInvocation","modifierName":{"id":3192,"name":"ensureDepositorWithdraw","nameLocations":["3605:23:16"],"nodeType":"IdentifierPath","referencedDeclaration":2893,"src":"3605:23:16"},"nodeType":"ModifierInvocation","src":"3605:34:16"},{"id":3197,"kind":"modifierInvocation","modifierName":{"id":3196,"name":"wherNotPaused","nameLocations":["3640:13:16"],"nodeType":"IdentifierPath","referencedDeclaration":2653,"src":"3640:13:16"},"nodeType":"ModifierInvocation","src":"3640:13:16"}],"name":"depositorWithdraw","nameLocation":"3548:17:16","nodeType":"FunctionDefinition","parameters":{"id":3191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3190,"mutability":"mutable","name":"w","nameLocation":"3593:1:16","nodeType":"VariableDeclaration","scope":3248,"src":"3566:28:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_memory_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal"},"typeName":{"id":3189,"nodeType":"UserDefinedTypeName","pathNode":{"id":3188,"name":"DepositorWithdrawal","nameLocations":["3566:19:16"],"nodeType":"IdentifierPath","referencedDeclaration":2862,"src":"3566:19:16"},"referencedDeclaration":2862,"src":"3566:19:16","typeDescriptions":{"typeIdentifier":"t_struct$_DepositorWithdrawal_$2862_storage_ptr","typeString":"struct ETHDeliver.DepositorWithdrawal"}},"visibility":"internal"}],"src":"3565:30:16"},"returnParameters":{"id":3198,"nodeType":"ParameterList","parameters":[],"src":"3654:0:16"},"scope":3348,"src":"3539:460:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3274,"nodeType":"Block","src":"4147:109:16","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":3265,"name":"DepositorWithdrawTypesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2792,"src":"4196:26:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3266,"name":"logHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3250,"src":"4224:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3267,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3252,"src":"4233:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3268,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3254,"src":"4239:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3269,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3256,"src":"4243:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3263,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4185:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4189:6:16","memberName":"encode","nodeType":"MemberAccess","src":"4185:10:16","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4185:65:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3262,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4175:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4175:76:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3261,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1419,"src":"4158:16:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":3272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4158:94:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3260,"id":3273,"nodeType":"Return","src":"4151:101:16"}]},"functionSelector":"e183bb5a","id":3275,"implemented":true,"kind":"function","modifiers":[],"name":"hashTypedDataV4ForDepositorWithdraw","nameLocation":"4011:35:16","nodeType":"FunctionDefinition","parameters":{"id":3257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3250,"mutability":"mutable","name":"logHash","nameLocation":"4058:7:16","nodeType":"VariableDeclaration","scope":3275,"src":"4050:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4050:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3252,"mutability":"mutable","name":"from","nameLocation":"4077:4:16","nodeType":"VariableDeclaration","scope":3275,"src":"4069:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3251,"name":"address","nodeType":"ElementaryTypeName","src":"4069:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3254,"mutability":"mutable","name":"to","nameLocation":"4093:2:16","nodeType":"VariableDeclaration","scope":3275,"src":"4085:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3253,"name":"address","nodeType":"ElementaryTypeName","src":"4085:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3256,"mutability":"mutable","name":"amount","nameLocation":"4107:6:16","nodeType":"VariableDeclaration","scope":3275,"src":"4099:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3255,"name":"uint256","nodeType":"ElementaryTypeName","src":"4099:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4046:70:16"},"returnParameters":{"id":3260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3275,"src":"4138:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4138:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4137:9:16"},"scope":3348,"src":"4002:254:16","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":3328,"nodeType":"Block","src":"4347:241:16","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3289,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3278,"src":"4363:5:16","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$312","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$312","typeString":"contract IERC20"}],"id":3288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4355:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3287,"name":"address","nodeType":"ElementaryTypeName","src":"4355:7:16","typeDescriptions":{}}},"id":3290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4355:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":3293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4381:1:16","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":3292,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4373:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3291,"name":"address","nodeType":"ElementaryTypeName","src":"4373:7:16","typeDescriptions":{}}},"id":3294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4373:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4355:28:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3318,"nodeType":"Block","src":"4492:36:16","statements":[{"expression":{"arguments":[{"id":3314,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3280,"src":"4512:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3315,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"4516:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3311,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3278,"src":"4497:5:16","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$312","typeString":"contract IERC20"}},"id":3313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4503:8:16","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":279,"src":"4497:14:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":3316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4497:26:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3317,"nodeType":"ExpressionStatement","src":"4497:26:16"}]},"id":3319,"nodeType":"IfStatement","src":"4351:177:16","trueBody":{"id":3310,"nodeType":"Block","src":"4385:101:16","statements":[{"assignments":[3297,null],"declarations":[{"constant":false,"id":3297,"mutability":"mutable","name":"success","nameLocation":"4396:7:16","nodeType":"VariableDeclaration","scope":3310,"src":"4391:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3296,"name":"bool","nodeType":"ElementaryTypeName","src":"4391:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":3304,"initialValue":{"arguments":[{"hexValue":"","id":3302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4434:2:16","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":3298,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3280,"src":"4409:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4412:4:16","memberName":"call","nodeType":"MemberAccess","src":"4409:7:16","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":3301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":3300,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"4425:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"4409:24:16","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":3303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4409:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4390:47:16"},{"expression":{"arguments":[{"id":3306,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3297,"src":"4450:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"776974686472617720657468206661696c6564","id":3307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4459:21:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489","typeString":"literal_string \"withdraw eth failed\""},"value":"withdraw eth failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489","typeString":"literal_string \"withdraw eth failed\""}],"id":3305,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4442:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4442:39:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3309,"nodeType":"ExpressionStatement","src":"4442:39:16"}]}},{"eventCall":{"arguments":[{"expression":{"id":3321,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4554:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4558:6:16","memberName":"sender","nodeType":"MemberAccess","src":"4554:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3323,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3280,"src":"4566:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3324,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3278,"src":"4570:5:16","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$312","typeString":"contract IERC20"}},{"id":3325,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"4577:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_IERC20_$312","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3320,"name":"EmergencyWithdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2849,"src":"4536:17:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_contract$_IERC20_$312_$_t_uint256_$returns$__$","typeString":"function (address,address,contract IERC20,uint256)"}},"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4536:48:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3327,"nodeType":"EmitStatement","src":"4531:53:16"}]},"functionSelector":"e63ea408","id":3329,"implemented":true,"kind":"function","modifiers":[{"id":3285,"kind":"modifierInvocation","modifierName":{"id":3284,"name":"onlyOwner","nameLocations":["4337:9:16"],"nodeType":"IdentifierPath","referencedDeclaration":31,"src":"4337:9:16"},"nodeType":"ModifierInvocation","src":"4337:9:16"}],"name":"emergencyWithdraw","nameLocation":"4268:17:16","nodeType":"FunctionDefinition","parameters":{"id":3283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3278,"mutability":"mutable","name":"token","nameLocation":"4293:5:16","nodeType":"VariableDeclaration","scope":3329,"src":"4286:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$312","typeString":"contract IERC20"},"typeName":{"id":3277,"nodeType":"UserDefinedTypeName","pathNode":{"id":3276,"name":"IERC20","nameLocations":["4286:6:16"],"nodeType":"IdentifierPath","referencedDeclaration":312,"src":"4286:6:16"},"referencedDeclaration":312,"src":"4286:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$312","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":3280,"mutability":"mutable","name":"to","nameLocation":"4308:2:16","nodeType":"VariableDeclaration","scope":3329,"src":"4300:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3279,"name":"address","nodeType":"ElementaryTypeName","src":"4300:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3282,"mutability":"mutable","name":"amount","nameLocation":"4320:6:16","nodeType":"VariableDeclaration","scope":3329,"src":"4312:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3281,"name":"uint256","nodeType":"ElementaryTypeName","src":"4312:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4285:42:16"},"returnParameters":{"id":3286,"nodeType":"ParameterList","parameters":[],"src":"4347:0:16"},"scope":3348,"src":"4259:329:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3335,"nodeType":"Block","src":"4643:40:16","statements":[{"AST":{"nodeType":"YulBlock","src":"4656:24:16","statements":[{"nodeType":"YulAssignment","src":"4661:15:16","value":{"arguments":[],"functionName":{"name":"chainid","nodeType":"YulIdentifier","src":"4667:7:16"},"nodeType":"YulFunctionCall","src":"4667:9:16"},"variableNames":[{"name":"id","nodeType":"YulIdentifier","src":"4661:2:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3332,"isOffset":false,"isSlot":false,"src":"4661:2:16","valueSize":1}],"id":3334,"nodeType":"InlineAssembly","src":"4647:33:16"}]},"functionSelector":"9a8a0592","id":3336,"implemented":true,"kind":"function","modifiers":[],"name":"chainId","nameLocation":"4600:7:16","nodeType":"FunctionDefinition","parameters":{"id":3330,"nodeType":"ParameterList","parameters":[],"src":"4607:2:16"},"returnParameters":{"id":3333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3332,"mutability":"mutable","name":"id","nameLocation":"4639:2:16","nodeType":"VariableDeclaration","scope":3336,"src":"4631:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3331,"name":"uint256","nodeType":"ElementaryTypeName","src":"4631:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4630:12:16"},"scope":3348,"src":"4591:92:16","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":3342,"nodeType":"Block","src":"4742:44:16","statements":[{"AST":{"nodeType":"YulBlock","src":"4755:28:16","statements":[{"nodeType":"YulAssignment","src":"4760:19:16","value":{"arguments":[],"functionName":{"name":"gasprice","nodeType":"YulIdentifier","src":"4769:8:16"},"nodeType":"YulFunctionCall","src":"4769:10:16"},"variableNames":[{"name":"price","nodeType":"YulIdentifier","src":"4760:5:16"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":3339,"isOffset":false,"isSlot":false,"src":"4760:5:16","valueSize":1}],"id":3341,"nodeType":"InlineAssembly","src":"4746:37:16"}]},"functionSelector":"fe173b97","id":3343,"implemented":true,"kind":"function","modifiers":[],"name":"gasPrice","nameLocation":"4695:8:16","nodeType":"FunctionDefinition","parameters":{"id":3337,"nodeType":"ParameterList","parameters":[],"src":"4703:2:16"},"returnParameters":{"id":3340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3339,"mutability":"mutable","name":"price","nameLocation":"4735:5:16","nodeType":"VariableDeclaration","scope":3343,"src":"4727:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3338,"name":"uint256","nodeType":"ElementaryTypeName","src":"4727:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4726:15:16"},"scope":3348,"src":"4686:100:16","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":3346,"nodeType":"Block","src":"4816:2:16","statements":[]},"id":3347,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3344,"nodeType":"ParameterList","parameters":[],"src":"4796:2:16"},"returnParameters":{"id":3345,"nodeType":"ParameterList","parameters":[],"src":"4816:0:16"},"scope":3348,"src":"4789:29:16","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":3349,"src":"281:4539:16","usedErrors":[355,357],"usedEvents":[13,126,214,2557,2817,2822,2838,2849,3358,3362]}],"src":"33:4788:16"},"id":16},"contracts/Relayers.sol":{"ast":{"absolutePath":"contracts/Relayers.sol","exportedSymbols":{"Relayers":[3422]},"id":3423,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3350,"literals":["solidity","0.8",".20"],"nodeType":"PragmaDirective","src":"33:23:17"},{"abstract":false,"baseContracts":[],"canonicalName":"Relayers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3422,"linearizedBaseContracts":[3422],"name":"Relayers","nameLocation":"67:8:17","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"5300f841","id":3354,"mutability":"mutable","name":"relayers","nameLocation":"111:8:17","nodeType":"VariableDeclaration","scope":3422,"src":"79:40:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":3353,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3351,"name":"address","nodeType":"ElementaryTypeName","src":"87:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"79:24:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3352,"name":"bool","nodeType":"ElementaryTypeName","src":"98:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"anonymous":false,"eventSelector":"7c363f8df6087ba61be7d84b7a936d5eb39ebd1ab56dd8188a27a60e3b301a27","id":3358,"name":"AddRelayer","nameLocation":"129:10:17","nodeType":"EventDefinition","parameters":{"id":3357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3356,"indexed":false,"mutability":"mutable","name":"relayer","nameLocation":"148:7:17","nodeType":"VariableDeclaration","scope":3358,"src":"140:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3355,"name":"address","nodeType":"ElementaryTypeName","src":"140:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"139:17:17"},"src":"123:34:17"},{"anonymous":false,"eventSelector":"370e7a3077485fd8cef64916374045a1bfae1d0984617c2833e614ed87b9d0df","id":3362,"name":"RemoveRelayer","nameLocation":"165:13:17","nodeType":"EventDefinition","parameters":{"id":3361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3360,"indexed":false,"mutability":"mutable","name":"relayer","nameLocation":"187:7:17","nodeType":"VariableDeclaration","scope":3362,"src":"179:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3359,"name":"address","nodeType":"ElementaryTypeName","src":"179:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"178:17:17"},"src":"159:37:17"},{"body":{"id":3373,"nodeType":"Block","src":"222:69:17","statements":[{"expression":{"arguments":[{"baseExpression":{"id":3365,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"234:8:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3368,"indexExpression":{"expression":{"id":3366,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"243:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"247:6:17","memberName":"sender","nodeType":"MemberAccess","src":"243:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"234:20:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c6572206973206e6f7420612072656c61796572","id":3369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"256:25:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c","typeString":"literal_string \"caller is not a relayer\""},"value":"caller is not a relayer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c","typeString":"literal_string \"caller is not a relayer\""}],"id":3364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"226:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"226:56:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3371,"nodeType":"ExpressionStatement","src":"226:56:17"},{"id":3372,"nodeType":"PlaceholderStatement","src":"286:1:17"}]},"id":3374,"name":"onlyRelayer","nameLocation":"208:11:17","nodeType":"ModifierDefinition","parameters":{"id":3363,"nodeType":"ParameterList","parameters":[],"src":"219:2:17"},"src":"199:92:17","virtual":false,"visibility":"internal"},{"body":{"id":3397,"nodeType":"Block","src":"341:109:17","statements":[{"expression":{"arguments":[{"id":3383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"353:18:17","subExpression":{"baseExpression":{"id":3380,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"354:8:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3382,"indexExpression":{"id":3381,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"363:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"354:17:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"72656c6179657220657869737473","id":3384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"373:16:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1","typeString":"literal_string \"relayer exists\""},"value":"relayer exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1","typeString":"literal_string \"relayer exists\""}],"id":3379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"345:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"345:45:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3386,"nodeType":"ExpressionStatement","src":"345:45:17"},{"expression":{"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3387,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"394:8:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3389,"indexExpression":{"id":3388,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"403:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"394:17:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"414:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"394:24:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3392,"nodeType":"ExpressionStatement","src":"394:24:17"},{"eventCall":{"arguments":[{"id":3394,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"438:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3393,"name":"AddRelayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3358,"src":"427:10:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"427:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3396,"nodeType":"EmitStatement","src":"422:24:17"}]},"id":3398,"implemented":true,"kind":"function","modifiers":[],"name":"_addRelayer","nameLocation":"303:11:17","nodeType":"FunctionDefinition","parameters":{"id":3377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3376,"mutability":"mutable","name":"relayer","nameLocation":"323:7:17","nodeType":"VariableDeclaration","scope":3398,"src":"315:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3375,"name":"address","nodeType":"ElementaryTypeName","src":"315:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"314:17:17"},"returnParameters":{"id":3378,"nodeType":"ParameterList","parameters":[],"src":"341:0:17"},"scope":3422,"src":"294:156:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3420,"nodeType":"Block","src":"503:116:17","statements":[{"expression":{"arguments":[{"baseExpression":{"id":3404,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"515:8:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3406,"indexExpression":{"id":3405,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"524:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"515:17:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e6f6e6578697374656e742072656c61796572","id":3407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"534:21:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3","typeString":"literal_string \"nonexistent relayer\""},"value":"nonexistent relayer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3","typeString":"literal_string \"nonexistent relayer\""}],"id":3403,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"507:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"507:49:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3409,"nodeType":"ExpressionStatement","src":"507:49:17"},{"expression":{"id":3414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3410,"name":"relayers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"560:8:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":3412,"indexExpression":{"id":3411,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"569:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"560:17:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"580:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"560:24:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3415,"nodeType":"ExpressionStatement","src":"560:24:17"},{"eventCall":{"arguments":[{"id":3417,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"607:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3416,"name":"RemoveRelayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3362,"src":"593:13:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"593:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3419,"nodeType":"EmitStatement","src":"588:27:17"}]},"id":3421,"implemented":true,"kind":"function","modifiers":[],"name":"_removeRelayer","nameLocation":"462:14:17","nodeType":"FunctionDefinition","parameters":{"id":3401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3400,"mutability":"mutable","name":"relayer","nameLocation":"485:7:17","nodeType":"VariableDeclaration","scope":3421,"src":"477:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3399,"name":"address","nodeType":"ElementaryTypeName","src":"477:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"476:17:17"},"returnParameters":{"id":3402,"nodeType":"ParameterList","parameters":[],"src":"503:0:17"},"scope":3422,"src":"453:166:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":3423,"src":"58:563:17","usedErrors":[],"usedEvents":[3358,3362]}],"src":"33:589:17"},"id":17}},"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"}],"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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"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\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":7,"contract":"@openzeppelin/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"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"}],"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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"acceptOwnership()":"79ba5097","owner()":"8da5cb5b","pendingOwner()":"e30c3978","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"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\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xde231558366826d7cb61725af8147965a61c53b77a352cc8c9af38fc5a92ac3c\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":7,"contract":"@openzeppelin/contracts/access/Ownable2Step.sol:Ownable2Step","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":120,"contract":"@openzeppelin/contracts/access/Ownable2Step.sol:Ownable2Step","label":"_pendingOwner","offset":0,"slot":"1","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"kind":"user","methods":{},"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"}],"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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"isValidSignature(bytes32,bytes)":"1626ba7e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"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"}],"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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"eip712Domain()":"84b0196e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"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"}],"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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"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.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"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"}],"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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122013fe01ae3718af7013b8ff674b172d0bed3292aa22543a5c0ec2bc028fe3db3a64736f6c63430008140033","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 SGT INVALID ADD 0xAE CALLDATACOPY XOR 0xAF PUSH17 0x13B8FF674B172D0BED3292AA22543A5C0E 0xC2 0xBC MUL DUP16 0xE3 0xDB GASPRICE PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"1235:3050:6:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1235:3050:6;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122013fe01ae3718af7013b8ff674b172d0bed3292aa22543a5c0ec2bc028fe3db3a64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SGT INVALID ADD 0xAE CALLDATACOPY XOR 0xAF PUSH17 0x13B8FF674B172D0BED3292AA22543A5C0E 0xC2 0xBC MUL DUP16 0xE3 0xDB GASPRICE PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"1235:3050:6:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"byteLength(ShortString)":"infinite","byteLengthWithFallback(ShortString,string storage pointer)":"infinite","toShortString(string memory)":"infinite","toShortStringWithFallback(string memory,string storage pointer)":"infinite","toString(ShortString)":"infinite","toStringWithFallback(ShortString,string storage pointer)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/StorageSlot.sol":{"StorageSlot":{"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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122002f3cc8116349ade9aa116d6eaead3c47566b7a583df16e1c8a56e72b9a3418164736f6c63430008140033","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 MUL RETURN 0xCC DUP2 AND CALLVALUE SWAP11 0xDE SWAP11 LOG1 AND 0xD6 0xEA 0xEA 0xD3 0xC4 PUSH22 0x66B7A583DF16E1C8A56E72B9A3418164736F6C634300 ADDMOD EQ STOP CALLER ","sourceMap":"1420:2685:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1420:2685:7;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122002f3cc8116349ade9aa116d6eaead3c47566b7a583df16e1c8a56e72b9a3418164736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL RETURN 0xCC DUP2 AND CALLVALUE SWAP11 0xDE SWAP11 LOG1 AND 0xD6 0xEA 0xEA 0xD3 0xC4 PUSH22 0x66B7A583DF16E1C8A56E72B9A3418164736F6C634300 ADDMOD EQ STOP CALLER ","sourceMap":"1420:2685:7:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"getAddressSlot(bytes32)":"infinite","getBooleanSlot(bytes32)":"infinite","getBytes32Slot(bytes32)":"infinite","getBytesSlot(bytes storage pointer)":"infinite","getBytesSlot(bytes32)":"infinite","getStringSlot(bytes32)":"infinite","getStringSlot(string storage pointer)":"infinite","getUint256Slot(bytes32)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"devdoc":{"details":"String operations.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca11565f11b95af19a62f5bb8f19285c34551c245aa14218788fc56681ccd03f64736f6c63430008140033","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 0xCA GT JUMP PUSH0 GT 0xB9 GAS CALL SWAP11 PUSH3 0xF5BB8F NOT 0x28 0x5C CALLVALUE SSTORE SHR 0x24 GAS LOG1 TIMESTAMP XOR PUSH25 0x8FC56681CCD03F64736F6C6343000814003300000000000000 ","sourceMap":"220:2559:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;220:2559:8;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ca11565f11b95af19a62f5bb8f19285c34551c245aa14218788fc56681ccd03f64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA GT JUMP PUSH0 GT 0xB9 GAS CALL SWAP11 PUSH3 0xF5BB8F NOT 0x28 0x5C CALLVALUE SSTORE SHR 0x24 GAS LOG1 TIMESTAMP XOR PUSH25 0x8FC56681CCD03F64736F6C6343000814003300000000000000 ","sourceMap":"220:2559:8:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"equal(string memory,string memory)":"infinite","toHexString(address)":"infinite","toHexString(uint256)":"infinite","toHexString(uint256,uint256)":"infinite","toString(int256)":"infinite","toString(uint256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@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        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `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\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ECDSA":{"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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122033720d83b222d5e196435c91c17b66b7894e2ceed4197200e8926bdd43172e6764736f6c63430008140033","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 CALLER PUSH19 0xD83B222D5E196435C91C17B66B7894E2CEED4 NOT PUSH19 0xE8926BDD43172E6764736F6C634300081400 CALLER ","sourceMap":"369:8761:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;369:8761:9;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122033720d83b222d5e196435c91c17b66b7894e2ceed4197200e8926bdd43172e6764736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER PUSH19 0xD83B222D5E196435C91C17B66B7894E2CEED4 NOT PUSH19 0xE8926BDD43172E6764736F6C634300081400 CALLER ","sourceMap":"369:8761:9:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"_throwError(enum ECDSA.RecoverError)":"infinite","recover(bytes32,bytes memory)":"infinite","recover(bytes32,bytes32,bytes32)":"infinite","recover(bytes32,uint8,bytes32,bytes32)":"infinite","toDataWithIntendedValidatorHash(address,bytes memory)":"infinite","toEthSignedMessageHash(bytes memory)":"infinite","toEthSignedMessageHash(bytes32)":"infinite","toTypedDataHash(bytes32,bytes32)":"infinite","tryRecover(bytes32,bytes memory)":"infinite","tryRecover(bytes32,bytes32,bytes32)":"infinite","tryRecover(bytes32,uint8,bytes32,bytes32)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@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 \\u00f7 2 + 1, and for v in (302): v \\u2208 {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\",\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\"},\"@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        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `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\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"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"}],"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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"gasEstimates":null,"methodIdentifiers":{"eip712Domain()":"84b0196e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@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 \\u00f7 2 + 1, and for v in (302): v \\u2208 {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\",\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\"},\"@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        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `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\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":1296,"contract":"@openzeppelin/contracts/utils/cryptography/EIP712.sol:EIP712","label":"_nameFallback","offset":0,"slot":"0","type":"t_string_storage"},{"astId":1298,"contract":"@openzeppelin/contracts/utils/cryptography/EIP712.sol:EIP712","label":"_versionFallback","offset":0,"slot":"1","type":"t_string_storage"}],"types":{"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol":{"SignatureChecker":{"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},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ff13ea9506658aa670c8f50c9673682626e5a453c2d55a98601eca8e4813a58264736f6c63430008140033","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 SELFDESTRUCT SGT 0xEA SWAP6 MOD PUSH6 0x8AA670C8F50C SWAP7 PUSH20 0x682626E5A453C2D55A98601ECA8E4813A5826473 PUSH16 0x6C634300081400330000000000000000 ","sourceMap":"506:1755:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;506:1755:11;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ff13ea9506658aa670c8f50c9673682626e5a453c2d55a98601eca8e4813a58264736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT SGT 0xEA SWAP6 MOD PUSH6 0x8AA670C8F50C SWAP7 PUSH20 0x682626E5A453C2D55A98601ECA8E4813A5826473 PUSH16 0x6C634300081400330000000000000000 ","sourceMap":"506:1755:11:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"isValidERC1271SignatureNow(address,bytes32,bytes memory)":"infinite","isValidSignatureNow(address,bytes32,bytes memory)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@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 \\u00f7 2 + 1, and for v in (302): v \\u2208 {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\",\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x3af3ca86df39aac39a0514c84459d691434a108d2151c8ce9d69f32e315cab80\",\"license\":\"MIT\"},\"@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        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `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\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"devdoc":{"details":"Standard math utilities missing in the Solidity language.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220374f32e6e6299b8bf8c9a28c76985c8bc8ed8db13e4ed53dcf89a8d3a5e8282d64736f6c63430008140033","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 CALLDATACOPY 0x4F ORIGIN 0xE6 0xE6 0x29 SWAP12 DUP12 0xF8 0xC9 LOG2 DUP13 PUSH23 0x985C8BC8ED8DB13E4ED53DCF89A8D3A5E8282D64736F6C PUSH4 0x43000814 STOP CALLER ","sourceMap":"202:12582:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;202:12582:12;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220374f32e6e6299b8bf8c9a28c76985c8bc8ed8db13e4ed53dcf89a8d3a5e8282d64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY 0x4F ORIGIN 0xE6 0xE6 0x29 SWAP12 DUP12 0xF8 0xC9 LOG2 DUP13 PUSH23 0x985C8BC8ED8DB13E4ED53DCF89A8D3A5E8282D64736F6C PUSH4 0x43000814 STOP CALLER ","sourceMap":"202:12582:12:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"average(uint256,uint256)":"infinite","ceilDiv(uint256,uint256)":"infinite","log10(uint256)":"infinite","log10(uint256,enum Math.Rounding)":"infinite","log2(uint256)":"infinite","log2(uint256,enum Math.Rounding)":"infinite","log256(uint256)":"infinite","log256(uint256,enum Math.Rounding)":"infinite","max(uint256,uint256)":"infinite","min(uint256,uint256)":"infinite","mulDiv(uint256,uint256,uint256)":"infinite","mulDiv(uint256,uint256,uint256,enum Math.Rounding)":"infinite","sqrt(uint256)":"infinite","sqrt(uint256,enum Math.Rounding)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `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\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"devdoc":{"details":"Standard signed math utilities missing in the Solidity language.","kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c9f02c2ee71a55c47231f3817ec4ced4f606b293c799df6ca7c9f3d148228c0064736f6c63430008140033","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 0xC9 CREATE 0x2C 0x2E 0xE7 BYTE SSTORE 0xC4 PUSH19 0x31F3817EC4CED4F606B293C799DF6CA7C9F3D1 BASEFEE 0x22 DUP13 STOP PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"215:1047:13:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;215:1047:13;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c9f02c2ee71a55c47231f3817ec4ced4f606b293c799df6ca7c9f3d148228c0064736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC9 CREATE 0x2C 0x2E 0xE7 BYTE SSTORE 0xC4 PUSH19 0x31F3817EC4CED4F606B293C799DF6CA7C9F3D1 BASEFEE 0x22 DUP13 STOP PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"215:1047:13:-:0;;;;;;;;"},"gasEstimates":{"creation":{"codeDepositCost":"17200","executionCost":"103","totalCost":"17303"},"internal":{"abs(int256)":"infinite","average(int256,int256)":"infinite","max(int256,int256)":"infinite","min(int256,int256)":"infinite"}},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"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\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[],"types":null},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/Config.sol":{"Config":{"abi":[{"anonymous":false,"inputs":[{"components":[{"internalType":"uint128","name":"depositBaseFee","type":"uint128"},{"internalType":"uint32","name":"depositFeeRate","type":"uint32"},{"internalType":"uint32","name":"finalizeTxGas","type":"uint32"}],"indexed":false,"internalType":"struct Config.Config_","name":"config","type":"tuple"}],"name":"UpdateConfig","type":"event"},{"inputs":[],"name":"MAXPCT","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"config","outputs":[{"internalType":"uint128","name":"depositBaseFee","type":"uint128"},{"internalType":"uint32","name":"depositFeeRate","type":"uint32"},{"internalType":"uint32","name":"finalizeTxGas","type":"uint32"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061011a806100206000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806379502c55146037578063cb11b9f4146078575b600080fd5b6000546062906001600160801b0381169063ffffffff600160801b8204811691600160a01b90041683565b604051606f9392919060a8565b60405180910390f35b6081620f424081565b604051606f919060d2565b6001600160801b0381165b82525050565b63ffffffff81166097565b6060810160b48286608c565b60bf6020830185609d565b60ca6040830184609d565b949350505050565b6020810160de8284609d565b9291505056fea2646970667358221220b90f1816f9a1fd59f3228b9008a6c2f8ff3b44cc77edab201c5649cb4666918964736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79502C55 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xCB11B9F4 EQ PUSH1 0x78 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x62 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x80 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV AND DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH1 0xA8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x81 PUSH3 0xF4240 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x6F SWAP2 SWAP1 PUSH1 0xD2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH1 0x97 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH1 0xB4 DUP3 DUP7 PUSH1 0x8C JUMP JUMPDEST PUSH1 0xBF PUSH1 0x20 DUP4 ADD DUP6 PUSH1 0x9D JUMP JUMPDEST PUSH1 0xCA PUSH1 0x40 DUP4 ADD DUP5 PUSH1 0x9D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0xDE DUP3 DUP5 PUSH1 0x9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 0xF XOR AND 0xF9 LOG1 REVERT MSIZE RETURN 0x22 DUP12 SWAP1 ADDMOD 0xA6 0xC2 0xF8 SELFDESTRUCT EXTCODESIZE PREVRANDAO 0xCC PUSH24 0xEDAB201C5649CB4666918964736F6C634300081400330000 ","sourceMap":"58:849:14:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@MAXPCT_2552":{"entryPoint":null,"id":2552,"parameterSlots":0,"returnSlots":0},"@config_2549":{"entryPoint":null,"id":2549,"parameterSlots":0,"returnSlots":0},"abi_encode_t_uint128_to_t_uint128_fromStack":{"entryPoint":140,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint32_to_t_uint32_fromStack":{"entryPoint":157,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_uint128_t_uint32_t_uint32__to_t_uint128_t_uint32_t_uint32__fromStack_reversed":{"entryPoint":168,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":210,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1136:18","statements":[{"body":{"nodeType":"YulBlock","src":"52:73:18","statements":[{"nodeType":"YulAssignment","src":"62:57:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"77:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"84:34:18","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"73:3:18"},"nodeType":"YulFunctionCall","src":"73:46:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"62:7:18"}]}]},"name":"cleanup_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"34:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"44:7:18","type":""}],"src":"7:118:18"},{"body":{"nodeType":"YulBlock","src":"196:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"213:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"236:5:18"}],"functionName":{"name":"cleanup_t_uint128","nodeType":"YulIdentifier","src":"218:17:18"},"nodeType":"YulFunctionCall","src":"218:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"206:6:18"},"nodeType":"YulFunctionCall","src":"206:37:18"},"nodeType":"YulExpressionStatement","src":"206:37:18"}]},"name":"abi_encode_t_uint128_to_t_uint128_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"184:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"191:3:18","type":""}],"src":"131:118:18"},{"body":{"nodeType":"YulBlock","src":"299:49:18","statements":[{"nodeType":"YulAssignment","src":"309:33:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"324:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"331:10:18","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"320:3:18"},"nodeType":"YulFunctionCall","src":"320:22:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"309:7:18"}]}]},"name":"cleanup_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"281:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"291:7:18","type":""}],"src":"255:93:18"},{"body":{"nodeType":"YulBlock","src":"417:52:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"434:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"456:5:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"439:16:18"},"nodeType":"YulFunctionCall","src":"439:23:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"427:6:18"},"nodeType":"YulFunctionCall","src":"427:36:18"},"nodeType":"YulExpressionStatement","src":"427:36:18"}]},"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"405:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"412:3:18","type":""}],"src":"354:115:18"},{"body":{"nodeType":"YulBlock","src":"625:284:18","statements":[{"nodeType":"YulAssignment","src":"635:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"647:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"658:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"643:3:18"},"nodeType":"YulFunctionCall","src":"643:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"635:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"715:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"728:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"739:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"724:3:18"},"nodeType":"YulFunctionCall","src":"724:17:18"}],"functionName":{"name":"abi_encode_t_uint128_to_t_uint128_fromStack","nodeType":"YulIdentifier","src":"671:43:18"},"nodeType":"YulFunctionCall","src":"671:71:18"},"nodeType":"YulExpressionStatement","src":"671:71:18"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"794:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"807:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"818:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"803:3:18"},"nodeType":"YulFunctionCall","src":"803:18:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulIdentifier","src":"752:41:18"},"nodeType":"YulFunctionCall","src":"752:70:18"},"nodeType":"YulExpressionStatement","src":"752:70:18"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"874:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"887:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"898:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"883:3:18"},"nodeType":"YulFunctionCall","src":"883:18:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulIdentifier","src":"832:41:18"},"nodeType":"YulFunctionCall","src":"832:70:18"},"nodeType":"YulExpressionStatement","src":"832:70:18"}]},"name":"abi_encode_tuple_t_uint128_t_uint32_t_uint32__to_t_uint128_t_uint32_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"581:9:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"593:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"601:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"609:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"620:4:18","type":""}],"src":"475:434:18"},{"body":{"nodeType":"YulBlock","src":"1011:122:18","statements":[{"nodeType":"YulAssignment","src":"1021:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1033:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"1044:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1029:3:18"},"nodeType":"YulFunctionCall","src":"1029:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1021:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1099:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1112:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"1123:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1108:3:18"},"nodeType":"YulFunctionCall","src":"1108:17:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulIdentifier","src":"1057:41:18"},"nodeType":"YulFunctionCall","src":"1057:69:18"},"nodeType":"YulExpressionStatement","src":"1057:69:18"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"983:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"995:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1006:4:18","type":""}],"src":"915:218:18"}]},"contents":"{\n\n    function cleanup_t_uint128(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n    }\n\n    function abi_encode_t_uint128_to_t_uint128_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint128(value))\n    }\n\n    function cleanup_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function abi_encode_t_uint32_to_t_uint32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function abi_encode_tuple_t_uint128_t_uint32_t_uint32__to_t_uint128_t_uint32_t_uint32__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_uint128_to_t_uint128_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":18,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052348015600f57600080fd5b506004361060325760003560e01c806379502c55146037578063cb11b9f4146078575b600080fd5b6000546062906001600160801b0381169063ffffffff600160801b8204811691600160a01b90041683565b604051606f9392919060a8565b60405180910390f35b6081620f424081565b604051606f919060d2565b6001600160801b0381165b82525050565b63ffffffff81166097565b6060810160b48286608c565b60bf6020830185609d565b60ca6040830184609d565b949350505050565b6020810160de8284609d565b9291505056fea2646970667358221220b90f1816f9a1fd59f3228b9008a6c2f8ff3b44cc77edab201c5649cb4666918964736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79502C55 EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xCB11B9F4 EQ PUSH1 0x78 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x62 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x80 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV AND DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH1 0xA8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x81 PUSH3 0xF4240 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x6F SWAP2 SWAP1 PUSH1 0xD2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH1 0x97 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH1 0xB4 DUP3 DUP7 PUSH1 0x8C JUMP JUMPDEST PUSH1 0xBF PUSH1 0x20 DUP4 ADD DUP6 PUSH1 0x9D JUMP JUMPDEST PUSH1 0xCA PUSH1 0x40 DUP4 ADD DUP5 PUSH1 0x9D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0xDE DUP3 DUP5 PUSH1 0x9D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 0xF XOR AND 0xF9 LOG1 REVERT MSIZE RETURN 0x22 DUP12 SWAP1 ADDMOD 0xA6 0xC2 0xF8 SELFDESTRUCT EXTCODESIZE PREVRANDAO 0xCC PUSH24 0xEDAB201C5649CB4666918964736F6C634300081400330000 ","sourceMap":"58:849:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;175:21;;;;;-1:-1:-1;;;;;175:21:14;;;;-1:-1:-1;;;175:21:14;;;;;-1:-1:-1;;;175:21:14;;;;;;;;;;;;;;:::i;:::-;;;;;;;;200:39;;232:7;200:39;;;;;;;;;:::i;131:118:18:-;-1:-1:-1;;;;;73:46:18;;218:24;213:3;206:37;131:118;;:::o;354:115::-;331:10;320:22;;439:23;255:93;475:434;658:2;643:18;;671:71;647:9;715:6;671:71;:::i;:::-;752:70;818:2;807:9;803:18;794:6;752:70;:::i;:::-;832;898:2;887:9;883:18;874:6;832:70;:::i;:::-;475:434;;;;;;:::o;915:218::-;1044:2;1029:18;;1057:69;1033:9;1099:6;1057:69;:::i;:::-;915:218;;;;:::o"},"gasEstimates":{"creation":{"codeDepositCost":"56400","executionCost":"105","totalCost":"56505"},"external":{"MAXPCT()":"278","config()":"infinite"},"internal":{"_updateConfig(struct Config.Config_ memory)":"infinite","_updateDepositBaseFee(uint128)":"infinite","_updateDepositFeeRate(uint32)":"infinite","_updateFinalizeTxGas(uint32)":"infinite"}},"methodIdentifiers":{"MAXPCT()":"cb11b9f4","config()":"79502c55"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"depositBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"depositFeeRate\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"finalizeTxGas\",\"type\":\"uint32\"}],\"indexed\":false,\"internalType\":\"struct Config.Config_\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"UpdateConfig\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAXPCT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"config\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"depositBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"depositFeeRate\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"finalizeTxGas\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Config.sol\":\"Config\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Config.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.20;\\n\\ncontract Config {\\n\\n\\tstruct Config_ {\\n\\t\\tuint128 depositBaseFee;\\n\\t\\tuint32 depositFeeRate;\\n\\t\\tuint32 finalizeTxGas;\\n\\t}\\n\\n\\tConfig_ public config;\\n\\n\\tuint32 public constant MAXPCT = 1000000;\\n\\n\\tevent UpdateConfig(Config_ config);\\n\\n\\tfunction _updateConfig(Config_ memory _config) internal {\\n\\t\\tconfig = _config;\\n\\t\\temit UpdateConfig(config);\\n\\t}\\n\\n\\tfunction _updateDepositBaseFee(uint128 _depositBaseFee) internal {\\n\\t\\tconfig.depositBaseFee = _depositBaseFee;\\n \\t\\temit UpdateConfig(config);\\n\\t}\\n\\n\\tfunction _updateDepositFeeRate(uint32 _depositFeeRate) internal {\\n\\t\\trequire(_depositFeeRate <= MAXPCT / 20, \\\"fee rate must be less or equal than 5%\\\");\\n\\t\\tconfig.depositFeeRate = _depositFeeRate;\\n \\t\\temit UpdateConfig(config);\\n\\t}\\n\\n\\tfunction _updateFinalizeTxGas(uint32 _finalizeTxGas) internal {\\n\\t\\tconfig.finalizeTxGas = _finalizeTxGas;\\n \\t\\temit UpdateConfig(config);\\n\\t}\\n\\n}\\n\",\"keccak256\":\"0x716183a600cab1ee8bc276840bfbfda8bd6e4d32698f97f0ab617b0afa946cd2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":2549,"contract":"contracts/Config.sol:Config","label":"config","offset":0,"slot":"0","type":"t_struct(Config_)2546_storage"}],"types":{"t_struct(Config_)2546_storage":{"encoding":"inplace","label":"struct Config.Config_","members":[{"astId":2541,"contract":"contracts/Config.sol:Config","label":"depositBaseFee","offset":0,"slot":"0","type":"t_uint128"},{"astId":2543,"contract":"contracts/Config.sol:Config","label":"depositFeeRate","offset":16,"slot":"0","type":"t_uint32"},{"astId":2545,"contract":"contracts/Config.sol:Config","label":"finalizeTxGas","offset":20,"slot":"0","type":"t_uint32"}],"numberOfBytes":"32"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/Controller.sol":{"Controller":{"abi":[{"inputs":[{"components":[{"internalType":"uint128","name":"depositBaseFee","type":"uint128"},{"internalType":"uint32","name":"depositFeeRate","type":"uint32"},{"internalType":"uint32","name":"finalizeTxGas","type":"uint32"}],"internalType":"struct Config.Config_","name":"_config","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"relayer","type":"address"}],"name":"AddRelayer","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":false,"internalType":"address","name":"relayer","type":"address"}],"name":"RemoveRelayer","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint128","name":"depositBaseFee","type":"uint128"},{"internalType":"uint32","name":"depositFeeRate","type":"uint32"},{"internalType":"uint32","name":"finalizeTxGas","type":"uint32"}],"indexed":false,"internalType":"struct Config.Config_","name":"config","type":"tuple"}],"name":"UpdateConfig","type":"event"},{"inputs":[],"name":"MAXPCT","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"relayer","type":"address"}],"name":"addRelayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"config","outputs":[{"internalType":"uint128","name":"depositBaseFee","type":"uint128"},{"internalType":"uint32","name":"depositFeeRate","type":"uint32"},{"internalType":"uint32","name":"finalizeTxGas","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"relayers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"relayer","type":"address"}],"name":"removeRelayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint128","name":"depositBaseFee","type":"uint128"},{"internalType":"uint32","name":"depositFeeRate","type":"uint32"},{"internalType":"uint32","name":"finalizeTxGas","type":"uint32"}],"internalType":"struct Config.Config_","name":"_config","type":"tuple"}],"name":"updateConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_depositBaseFee","type":"uint128"}],"name":"updateDepositBaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_depositFeeRate","type":"uint32"}],"name":"updateDepositFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_finalizeTxGas","type":"uint32"}],"name":"updateFinalizeTxGas","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"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},"evm":{"bytecode":{"functionDebugData":{"@_23":{"entryPoint":null,"id":23,"parameterSlots":0,"returnSlots":0},"@_2671":{"entryPoint":null,"id":2671,"parameterSlots":1,"returnSlots":0},"@_addRelayer_3398":{"entryPoint":140,"id":3398,"parameterSlots":1,"returnSlots":0},"@_msgSender_324":{"entryPoint":null,"id":324,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_111":{"entryPoint":437,"id":111,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_172":{"entryPoint":110,"id":172,"parameterSlots":1,"returnSlots":0},"@_updateConfig_2572":{"entryPoint":305,"id":2572,"parameterSlots":1,"returnSlots":0},"@owner_40":{"entryPoint":null,"id":40,"parameterSlots":0,"returnSlots":1},"abi_decode_t_struct$_Config__$2546_memory_ptr_fromMemory":{"entryPoint":687,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint128_fromMemory":{"entryPoint":642,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint32_fromMemory":{"entryPoint":674,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Config__$2546_memory_ptr_fromMemory":{"entryPoint":791,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":899,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack":{"entryPoint":1022,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint128_to_t_uint128":{"entryPoint":950,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint32_to_t_uint32":{"entryPoint":992,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":916,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":836,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed":{"entryPoint":1113,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":588,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_from_storage_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_from_storage_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address":{"entryPoint":881,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_0t_uint128":{"entryPoint":932,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_16t_uint32":{"entryPoint":966,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_20t_uint32":{"entryPoint":1005,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":541,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x41":{"entryPoint":519,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_0_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_128_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_160_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint128":{"entryPoint":619,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint32":{"entryPoint":661,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7622:18","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:18","statements":[{"nodeType":"YulAssignment","src":"57:19:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:18","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:18"},"nodeType":"YulFunctionCall","src":"67:9:18"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:18"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:18","type":""}],"src":"7:75:18"},{"body":{"nodeType":"YulBlock","src":"177:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:18"},"nodeType":"YulFunctionCall","src":"187:12:18"},"nodeType":"YulExpressionStatement","src":"187:12:18"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:18"},{"body":{"nodeType":"YulBlock","src":"300:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:18"},"nodeType":"YulFunctionCall","src":"310:12:18"},"nodeType":"YulExpressionStatement","src":"310:12:18"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:18"},{"body":{"nodeType":"YulBlock","src":"423:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"440:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"443:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"433:6:18"},"nodeType":"YulFunctionCall","src":"433:12:18"},"nodeType":"YulExpressionStatement","src":"433:12:18"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulFunctionDefinition","src":"334:117:18"},{"body":{"nodeType":"YulBlock","src":"505:54:18","statements":[{"nodeType":"YulAssignment","src":"515:38:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"533:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"540:2:18","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"529:3:18"},"nodeType":"YulFunctionCall","src":"529:14:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"549:2:18","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"545:3:18"},"nodeType":"YulFunctionCall","src":"545:7:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"525:3:18"},"nodeType":"YulFunctionCall","src":"525:28:18"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"515:6:18"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"488:5:18","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"498:6:18","type":""}],"src":"457:102:18"},{"body":{"nodeType":"YulBlock","src":"593:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"610:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"613:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"603:6:18"},"nodeType":"YulFunctionCall","src":"603:88:18"},"nodeType":"YulExpressionStatement","src":"603:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"707:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"710:4:18","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"700:6:18"},"nodeType":"YulFunctionCall","src":"700:15:18"},"nodeType":"YulExpressionStatement","src":"700:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"734:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"724:6:18"},"nodeType":"YulFunctionCall","src":"724:15:18"},"nodeType":"YulExpressionStatement","src":"724:15:18"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"565:180:18"},{"body":{"nodeType":"YulBlock","src":"794:238:18","statements":[{"nodeType":"YulVariableDeclaration","src":"804:58:18","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"826:6:18"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"856:4:18"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"834:21:18"},"nodeType":"YulFunctionCall","src":"834:27:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"822:3:18"},"nodeType":"YulFunctionCall","src":"822:40:18"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"808:10:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"973:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"975:16:18"},"nodeType":"YulFunctionCall","src":"975:18:18"},"nodeType":"YulExpressionStatement","src":"975:18:18"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"916:10:18"},{"kind":"number","nodeType":"YulLiteral","src":"928:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"913:2:18"},"nodeType":"YulFunctionCall","src":"913:34:18"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"952:10:18"},{"name":"memPtr","nodeType":"YulIdentifier","src":"964:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"949:2:18"},"nodeType":"YulFunctionCall","src":"949:22:18"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"910:2:18"},"nodeType":"YulFunctionCall","src":"910:62:18"},"nodeType":"YulIf","src":"907:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1011:2:18","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1015:10:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1004:6:18"},"nodeType":"YulFunctionCall","src":"1004:22:18"},"nodeType":"YulExpressionStatement","src":"1004:22:18"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"780:6:18","type":""},{"name":"size","nodeType":"YulTypedName","src":"788:4:18","type":""}],"src":"751:281:18"},{"body":{"nodeType":"YulBlock","src":"1079:88:18","statements":[{"nodeType":"YulAssignment","src":"1089:30:18","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"1099:18:18"},"nodeType":"YulFunctionCall","src":"1099:20:18"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1089:6:18"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1148:6:18"},{"name":"size","nodeType":"YulIdentifier","src":"1156:4:18"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"1128:19:18"},"nodeType":"YulFunctionCall","src":"1128:33:18"},"nodeType":"YulExpressionStatement","src":"1128:33:18"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"1063:4:18","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1072:6:18","type":""}],"src":"1038:129:18"},{"body":{"nodeType":"YulBlock","src":"1262:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1279:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1282:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1272:6:18"},"nodeType":"YulFunctionCall","src":"1272:12:18"},"nodeType":"YulExpressionStatement","src":"1272:12:18"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulFunctionDefinition","src":"1173:117:18"},{"body":{"nodeType":"YulBlock","src":"1341:73:18","statements":[{"nodeType":"YulAssignment","src":"1351:57:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1366:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"1373:34:18","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1362:3:18"},"nodeType":"YulFunctionCall","src":"1362:46:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1351:7:18"}]}]},"name":"cleanup_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1323:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1333:7:18","type":""}],"src":"1296:118:18"},{"body":{"nodeType":"YulBlock","src":"1463:79:18","statements":[{"body":{"nodeType":"YulBlock","src":"1520:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1529:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1532:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1522:6:18"},"nodeType":"YulFunctionCall","src":"1522:12:18"},"nodeType":"YulExpressionStatement","src":"1522:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1486:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1511:5:18"}],"functionName":{"name":"cleanup_t_uint128","nodeType":"YulIdentifier","src":"1493:17:18"},"nodeType":"YulFunctionCall","src":"1493:24:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1483:2:18"},"nodeType":"YulFunctionCall","src":"1483:35:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1476:6:18"},"nodeType":"YulFunctionCall","src":"1476:43:18"},"nodeType":"YulIf","src":"1473:63:18"}]},"name":"validator_revert_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1456:5:18","type":""}],"src":"1420:122:18"},{"body":{"nodeType":"YulBlock","src":"1611:80:18","statements":[{"nodeType":"YulAssignment","src":"1621:22:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1636:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1630:5:18"},"nodeType":"YulFunctionCall","src":"1630:13:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1621:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1679:5:18"}],"functionName":{"name":"validator_revert_t_uint128","nodeType":"YulIdentifier","src":"1652:26:18"},"nodeType":"YulFunctionCall","src":"1652:33:18"},"nodeType":"YulExpressionStatement","src":"1652:33:18"}]},"name":"abi_decode_t_uint128_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1589:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"1597:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1605:5:18","type":""}],"src":"1548:143:18"},{"body":{"nodeType":"YulBlock","src":"1741:49:18","statements":[{"nodeType":"YulAssignment","src":"1751:33:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1766:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"1773:10:18","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1762:3:18"},"nodeType":"YulFunctionCall","src":"1762:22:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1751:7:18"}]}]},"name":"cleanup_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1723:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1733:7:18","type":""}],"src":"1697:93:18"},{"body":{"nodeType":"YulBlock","src":"1838:78:18","statements":[{"body":{"nodeType":"YulBlock","src":"1894:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1903:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1906:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1896:6:18"},"nodeType":"YulFunctionCall","src":"1896:12:18"},"nodeType":"YulExpressionStatement","src":"1896:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1861:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1885:5:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"1868:16:18"},"nodeType":"YulFunctionCall","src":"1868:23:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1858:2:18"},"nodeType":"YulFunctionCall","src":"1858:34:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1851:6:18"},"nodeType":"YulFunctionCall","src":"1851:42:18"},"nodeType":"YulIf","src":"1848:62:18"}]},"name":"validator_revert_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1831:5:18","type":""}],"src":"1796:120:18"},{"body":{"nodeType":"YulBlock","src":"1984:79:18","statements":[{"nodeType":"YulAssignment","src":"1994:22:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2009:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2003:5:18"},"nodeType":"YulFunctionCall","src":"2003:13:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1994:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2051:5:18"}],"functionName":{"name":"validator_revert_t_uint32","nodeType":"YulIdentifier","src":"2025:25:18"},"nodeType":"YulFunctionCall","src":"2025:32:18"},"nodeType":"YulExpressionStatement","src":"2025:32:18"}]},"name":"abi_decode_t_uint32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1962:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"1970:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1978:5:18","type":""}],"src":"1922:141:18"},{"body":{"nodeType":"YulBlock","src":"2189:715:18","statements":[{"body":{"nodeType":"YulBlock","src":"2233:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"2235:77:18"},"nodeType":"YulFunctionCall","src":"2235:79:18"},"nodeType":"YulExpressionStatement","src":"2235:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"2210:3:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"2215:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2206:3:18"},"nodeType":"YulFunctionCall","src":"2206:19:18"},{"kind":"number","nodeType":"YulLiteral","src":"2227:4:18","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2202:3:18"},"nodeType":"YulFunctionCall","src":"2202:30:18"},"nodeType":"YulIf","src":"2199:117:18"},{"nodeType":"YulAssignment","src":"2325:30:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2350:4:18","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2334:15:18"},"nodeType":"YulFunctionCall","src":"2334:21:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2325:5:18"}]},{"nodeType":"YulBlock","src":"2365:171:18","statements":[{"nodeType":"YulVariableDeclaration","src":"2410:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2424:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2414:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2450:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2457:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2446:3:18"},"nodeType":"YulFunctionCall","src":"2446:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2500:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"2511:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2496:3:18"},"nodeType":"YulFunctionCall","src":"2496:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"2520:3:18"}],"functionName":{"name":"abi_decode_t_uint128_fromMemory","nodeType":"YulIdentifier","src":"2464:31:18"},"nodeType":"YulFunctionCall","src":"2464:60:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2439:6:18"},"nodeType":"YulFunctionCall","src":"2439:86:18"},"nodeType":"YulExpressionStatement","src":"2439:86:18"}]},{"nodeType":"YulBlock","src":"2546:171:18","statements":[{"nodeType":"YulVariableDeclaration","src":"2591:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2605:2:18","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2595:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2632:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2639:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2628:3:18"},"nodeType":"YulFunctionCall","src":"2628:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2681:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"2692:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2677:3:18"},"nodeType":"YulFunctionCall","src":"2677:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"2701:3:18"}],"functionName":{"name":"abi_decode_t_uint32_fromMemory","nodeType":"YulIdentifier","src":"2646:30:18"},"nodeType":"YulFunctionCall","src":"2646:59:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2621:6:18"},"nodeType":"YulFunctionCall","src":"2621:85:18"},"nodeType":"YulExpressionStatement","src":"2621:85:18"}]},{"nodeType":"YulBlock","src":"2727:170:18","statements":[{"nodeType":"YulVariableDeclaration","src":"2771:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2785:2:18","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2775:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2812:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2819:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2808:3:18"},"nodeType":"YulFunctionCall","src":"2808:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"2872:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:18"},"nodeType":"YulFunctionCall","src":"2857:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"2881:3:18"}],"functionName":{"name":"abi_decode_t_uint32_fromMemory","nodeType":"YulIdentifier","src":"2826:30:18"},"nodeType":"YulFunctionCall","src":"2826:59:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2801:6:18"},"nodeType":"YulFunctionCall","src":"2801:85:18"},"nodeType":"YulExpressionStatement","src":"2801:85:18"}]}]},"name":"abi_decode_t_struct$_Config__$2546_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2164:9:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"2175:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2183:5:18","type":""}],"src":"2098:806:18"},{"body":{"nodeType":"YulBlock","src":"3012:299:18","statements":[{"body":{"nodeType":"YulBlock","src":"3058:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"3060:77:18"},"nodeType":"YulFunctionCall","src":"3060:79:18"},"nodeType":"YulExpressionStatement","src":"3060:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3033:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"3042:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3029:3:18"},"nodeType":"YulFunctionCall","src":"3029:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"3054:2:18","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3025:3:18"},"nodeType":"YulFunctionCall","src":"3025:32:18"},"nodeType":"YulIf","src":"3022:119:18"},{"nodeType":"YulBlock","src":"3151:153:18","statements":[{"nodeType":"YulVariableDeclaration","src":"3166:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"3180:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3170:6:18","type":""}]},{"nodeType":"YulAssignment","src":"3195:99:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3266:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"3277:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3262:3:18"},"nodeType":"YulFunctionCall","src":"3262:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3286:7:18"}],"functionName":{"name":"abi_decode_t_struct$_Config__$2546_memory_ptr_fromMemory","nodeType":"YulIdentifier","src":"3205:56:18"},"nodeType":"YulFunctionCall","src":"3205:89:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3195:6:18"}]}]}]},"name":"abi_decode_tuple_t_struct$_Config__$2546_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2982:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2993:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3005:6:18","type":""}],"src":"2910:401:18"},{"body":{"nodeType":"YulBlock","src":"3413:73:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3430:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"3435:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3423:6:18"},"nodeType":"YulFunctionCall","src":"3423:19:18"},"nodeType":"YulExpressionStatement","src":"3423:19:18"},{"nodeType":"YulAssignment","src":"3451:29:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3470:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"3475:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:18"},"nodeType":"YulFunctionCall","src":"3466:14:18"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"3451:11:18"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3385:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"3390:6:18","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"3401:11:18","type":""}],"src":"3317:169:18"},{"body":{"nodeType":"YulBlock","src":"3598:58:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3620:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"3628:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3616:3:18"},"nodeType":"YulFunctionCall","src":"3616:14:18"},{"hexValue":"72656c6179657220657869737473","kind":"string","nodeType":"YulLiteral","src":"3632:16:18","type":"","value":"relayer exists"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3609:6:18"},"nodeType":"YulFunctionCall","src":"3609:40:18"},"nodeType":"YulExpressionStatement","src":"3609:40:18"}]},"name":"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"3590:6:18","type":""}],"src":"3492:164:18"},{"body":{"nodeType":"YulBlock","src":"3808:220:18","statements":[{"nodeType":"YulAssignment","src":"3818:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3884:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"3889:2:18","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"3825:58:18"},"nodeType":"YulFunctionCall","src":"3825:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3818:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3990:3:18"}],"functionName":{"name":"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1","nodeType":"YulIdentifier","src":"3901:88:18"},"nodeType":"YulFunctionCall","src":"3901:93:18"},"nodeType":"YulExpressionStatement","src":"3901:93:18"},{"nodeType":"YulAssignment","src":"4003:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4014:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"4019:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4010:3:18"},"nodeType":"YulFunctionCall","src":"4010:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4003:3:18"}]}]},"name":"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3796:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3804:3:18","type":""}],"src":"3662:366:18"},{"body":{"nodeType":"YulBlock","src":"4205:248:18","statements":[{"nodeType":"YulAssignment","src":"4215:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4227:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"4238:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4223:3:18"},"nodeType":"YulFunctionCall","src":"4223:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4215:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4262:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"4273:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4258:3:18"},"nodeType":"YulFunctionCall","src":"4258:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"4281:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"4287:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4277:3:18"},"nodeType":"YulFunctionCall","src":"4277:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4251:6:18"},"nodeType":"YulFunctionCall","src":"4251:47:18"},"nodeType":"YulExpressionStatement","src":"4251:47:18"},{"nodeType":"YulAssignment","src":"4307:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"4441:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"4315:124:18"},"nodeType":"YulFunctionCall","src":"4315:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4307:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4185:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4200:4:18","type":""}],"src":"4034:419:18"},{"body":{"nodeType":"YulBlock","src":"4504:81:18","statements":[{"nodeType":"YulAssignment","src":"4514:65:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4529:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"4536:42:18","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4525:3:18"},"nodeType":"YulFunctionCall","src":"4525:54:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4514:7:18"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4486:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4496:7:18","type":""}],"src":"4459:126:18"},{"body":{"nodeType":"YulBlock","src":"4636:51:18","statements":[{"nodeType":"YulAssignment","src":"4646:35:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4675:5:18"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"4657:17:18"},"nodeType":"YulFunctionCall","src":"4657:24:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4646:7:18"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4618:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4628:7:18","type":""}],"src":"4591:96:18"},{"body":{"nodeType":"YulBlock","src":"4758:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4775:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4798:5:18"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"4780:17:18"},"nodeType":"YulFunctionCall","src":"4780:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4768:6:18"},"nodeType":"YulFunctionCall","src":"4768:37:18"},"nodeType":"YulExpressionStatement","src":"4768:37:18"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4746:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4753:3:18","type":""}],"src":"4693:118:18"},{"body":{"nodeType":"YulBlock","src":"4915:124:18","statements":[{"nodeType":"YulAssignment","src":"4925:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4937:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"4948:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4933:3:18"},"nodeType":"YulFunctionCall","src":"4933:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4925:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5005:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5018:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"5029:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5014:3:18"},"nodeType":"YulFunctionCall","src":"5014:17:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"4961:43:18"},"nodeType":"YulFunctionCall","src":"4961:71:18"},"nodeType":"YulExpressionStatement","src":"4961:71:18"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4887:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4899:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4910:4:18","type":""}],"src":"4817:222:18"},{"body":{"nodeType":"YulBlock","src":"5096:51:18","statements":[{"nodeType":"YulAssignment","src":"5106:34:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5131:1:18","type":"","value":"0"},{"name":"value","nodeType":"YulIdentifier","src":"5134:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5127:3:18"},"nodeType":"YulFunctionCall","src":"5127:13:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"5106:8:18"}]}]},"name":"shift_right_0_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5077:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"5087:8:18","type":""}],"src":"5045:102:18"},{"body":{"nodeType":"YulBlock","src":"5211:73:18","statements":[{"nodeType":"YulAssignment","src":"5221:57:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5236:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"5243:34:18","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5232:3:18"},"nodeType":"YulFunctionCall","src":"5232:46:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"5221:7:18"}]}]},"name":"cleanup_from_storage_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5193:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"5203:7:18","type":""}],"src":"5153:131:18"},{"body":{"nodeType":"YulBlock","src":"5365:91:18","statements":[{"nodeType":"YulAssignment","src":"5375:75:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"5438:10:18"}],"functionName":{"name":"shift_right_0_unsigned","nodeType":"YulIdentifier","src":"5415:22:18"},"nodeType":"YulFunctionCall","src":"5415:34:18"}],"functionName":{"name":"cleanup_from_storage_t_uint128","nodeType":"YulIdentifier","src":"5384:30:18"},"nodeType":"YulFunctionCall","src":"5384:66:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5375:5:18"}]}]},"name":"extract_from_storage_value_offset_0t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"5344:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5359:5:18","type":""}],"src":"5290:166:18"},{"body":{"nodeType":"YulBlock","src":"5517:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5534:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5557:5:18"}],"functionName":{"name":"cleanup_t_uint128","nodeType":"YulIdentifier","src":"5539:17:18"},"nodeType":"YulFunctionCall","src":"5539:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5527:6:18"},"nodeType":"YulFunctionCall","src":"5527:37:18"},"nodeType":"YulExpressionStatement","src":"5527:37:18"}]},"name":"abi_encode_t_uint128_to_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5505:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5512:3:18","type":""}],"src":"5462:108:18"},{"body":{"nodeType":"YulBlock","src":"5629:53:18","statements":[{"nodeType":"YulAssignment","src":"5639:36:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5664:3:18","type":"","value":"128"},{"name":"value","nodeType":"YulIdentifier","src":"5669:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5660:3:18"},"nodeType":"YulFunctionCall","src":"5660:15:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"5639:8:18"}]}]},"name":"shift_right_128_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5610:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"5620:8:18","type":""}],"src":"5576:106:18"},{"body":{"nodeType":"YulBlock","src":"5745:49:18","statements":[{"nodeType":"YulAssignment","src":"5755:33:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5770:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"5777:10:18","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5766:3:18"},"nodeType":"YulFunctionCall","src":"5766:22:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"5755:7:18"}]}]},"name":"cleanup_from_storage_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5727:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"5737:7:18","type":""}],"src":"5688:106:18"},{"body":{"nodeType":"YulBlock","src":"5875:92:18","statements":[{"nodeType":"YulAssignment","src":"5885:76:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"5949:10:18"}],"functionName":{"name":"shift_right_128_unsigned","nodeType":"YulIdentifier","src":"5924:24:18"},"nodeType":"YulFunctionCall","src":"5924:36:18"}],"functionName":{"name":"cleanup_from_storage_t_uint32","nodeType":"YulIdentifier","src":"5894:29:18"},"nodeType":"YulFunctionCall","src":"5894:67:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5885:5:18"}]}]},"name":"extract_from_storage_value_offset_16t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"5854:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5869:5:18","type":""}],"src":"5800:167:18"},{"body":{"nodeType":"YulBlock","src":"6026:52:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6043:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6065:5:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"6048:16:18"},"nodeType":"YulFunctionCall","src":"6048:23:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6036:6:18"},"nodeType":"YulFunctionCall","src":"6036:36:18"},"nodeType":"YulExpressionStatement","src":"6036:36:18"}]},"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6014:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6021:3:18","type":""}],"src":"5973:105:18"},{"body":{"nodeType":"YulBlock","src":"6137:53:18","statements":[{"nodeType":"YulAssignment","src":"6147:36:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6172:3:18","type":"","value":"160"},{"name":"value","nodeType":"YulIdentifier","src":"6177:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6168:3:18"},"nodeType":"YulFunctionCall","src":"6168:15:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"6147:8:18"}]}]},"name":"shift_right_160_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6118:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"6128:8:18","type":""}],"src":"6084:106:18"},{"body":{"nodeType":"YulBlock","src":"6271:92:18","statements":[{"nodeType":"YulAssignment","src":"6281:76:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"6345:10:18"}],"functionName":{"name":"shift_right_160_unsigned","nodeType":"YulIdentifier","src":"6320:24:18"},"nodeType":"YulFunctionCall","src":"6320:36:18"}],"functionName":{"name":"cleanup_from_storage_t_uint32","nodeType":"YulIdentifier","src":"6290:29:18"},"nodeType":"YulFunctionCall","src":"6290:67:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6281:5:18"}]}]},"name":"extract_from_storage_value_offset_20t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"6250:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"6265:5:18","type":""}],"src":"6196:167:18"},{"body":{"nodeType":"YulBlock","src":"6536:761:18","statements":[{"nodeType":"YulVariableDeclaration","src":"6546:26:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6562:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"6567:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6558:3:18"},"nodeType":"YulFunctionCall","src":"6558:14:18"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"6550:4:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6581:18:18","value":{"kind":"number","nodeType":"YulLiteral","src":"6598:1:18","type":"","value":"0"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"6585:9:18","type":""}]},{"nodeType":"YulBlock","src":"6609:254:18","statements":[{"nodeType":"YulAssignment","src":"6653:36:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6676:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"6683:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6672:3:18"},"nodeType":"YulFunctionCall","src":"6672:16:18"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"6666:5:18"},"nodeType":"YulFunctionCall","src":"6666:23:18"},"variableNames":[{"name":"slotValue","nodeType":"YulIdentifier","src":"6653:9:18"}]},{"nodeType":"YulVariableDeclaration","src":"6702:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"6767:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_0t_uint128","nodeType":"YulIdentifier","src":"6722:44:18"},"nodeType":"YulFunctionCall","src":"6722:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6706:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6824:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6842:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"6847:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6838:3:18"},"nodeType":"YulFunctionCall","src":"6838:14:18"}],"functionName":{"name":"abi_encode_t_uint128_to_t_uint128","nodeType":"YulIdentifier","src":"6790:33:18"},"nodeType":"YulFunctionCall","src":"6790:63:18"},"nodeType":"YulExpressionStatement","src":"6790:63:18"}]},{"nodeType":"YulBlock","src":"6873:204:18","statements":[{"nodeType":"YulVariableDeclaration","src":"6918:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"6983:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_16t_uint32","nodeType":"YulIdentifier","src":"6938:44:18"},"nodeType":"YulFunctionCall","src":"6938:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6922:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"7038:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7056:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"7061:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7052:3:18"},"nodeType":"YulFunctionCall","src":"7052:14:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulIdentifier","src":"7006:31:18"},"nodeType":"YulFunctionCall","src":"7006:61:18"},"nodeType":"YulExpressionStatement","src":"7006:61:18"}]},{"nodeType":"YulBlock","src":"7087:203:18","statements":[{"nodeType":"YulVariableDeclaration","src":"7131:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"7196:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_20t_uint32","nodeType":"YulIdentifier","src":"7151:44:18"},"nodeType":"YulFunctionCall","src":"7151:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"7135:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"7251:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7269:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"7274:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7265:3:18"},"nodeType":"YulFunctionCall","src":"7265:14:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulIdentifier","src":"7219:31:18"},"nodeType":"YulFunctionCall","src":"7219:61:18"},"nodeType":"YulExpressionStatement","src":"7219:61:18"}]}]},"name":"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6523:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6530:3:18","type":""}],"src":"6423:874:18"},{"body":{"nodeType":"YulBlock","src":"7448:171:18","statements":[{"nodeType":"YulAssignment","src":"7458:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7470:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"7481:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7466:3:18"},"nodeType":"YulFunctionCall","src":"7466:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7458:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7585:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7598:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"7609:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7594:3:18"},"nodeType":"YulFunctionCall","src":"7594:17:18"}],"functionName":{"name":"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"7494:90:18"},"nodeType":"YulFunctionCall","src":"7494:118:18"},"nodeType":"YulExpressionStatement","src":"7494:118:18"}]},"name":"abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7420:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7432:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7443:4:18","type":""}],"src":"7303:316:18"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint128(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n    }\n\n    function validator_revert_t_uint128(value) {\n        if iszero(eq(value, cleanup_t_uint128(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint128_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint128(value)\n    }\n\n    function cleanup_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function validator_revert_t_uint32(value) {\n        if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint32_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint32(value)\n    }\n\n    // struct Config.Config_\n    function abi_decode_t_struct$_Config__$2546_memory_ptr_fromMemory(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // depositBaseFee\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_uint128_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // depositFeeRate\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_uint32_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // finalizeTxGas\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_uint32_fromMemory(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_Config__$2546_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_Config__$2546_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1(memPtr) {\n\n        mstore(add(memPtr, 0), \"relayer exists\")\n\n    }\n\n    function abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n        store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function shift_right_0_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(0, value)\n\n    }\n\n    function cleanup_from_storage_t_uint128(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n    }\n\n    function extract_from_storage_value_offset_0t_uint128(slot_value) -> value {\n        value := cleanup_from_storage_t_uint128(shift_right_0_unsigned(slot_value))\n    }\n\n    function abi_encode_t_uint128_to_t_uint128(value, pos) {\n        mstore(pos, cleanup_t_uint128(value))\n    }\n\n    function shift_right_128_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(128, value)\n\n    }\n\n    function cleanup_from_storage_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function extract_from_storage_value_offset_16t_uint32(slot_value) -> value {\n        value := cleanup_from_storage_t_uint32(shift_right_128_unsigned(slot_value))\n    }\n\n    function abi_encode_t_uint32_to_t_uint32(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function shift_right_160_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(160, value)\n\n    }\n\n    function extract_from_storage_value_offset_20t_uint32(slot_value) -> value {\n        value := cleanup_from_storage_t_uint32(shift_right_160_unsigned(slot_value))\n    }\n\n    // struct Config.Config_ -> struct Config.Config_\n    function abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack(value, pos)  {\n        let tail := add(pos, 0x60)\n        let slotValue := 0\n\n        {\n            // depositBaseFee\n            slotValue := sload(add(value, 0x00))\n            let memberValue0 := extract_from_storage_value_offset_0t_uint128(slotValue)\n            abi_encode_t_uint128_to_t_uint128(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // depositFeeRate\n\n            let memberValue0 := extract_from_storage_value_offset_16t_uint32(slotValue)\n            abi_encode_t_uint32_to_t_uint32(memberValue0, add(pos, 0x20))\n        }\n\n        {\n            // finalizeTxGas\n\n            let memberValue0 := extract_from_storage_value_offset_20t_uint32(slotValue)\n            abi_encode_t_uint32_to_t_uint32(memberValue0, add(pos, 0x40))\n        }\n\n    }\n\n    function abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":18,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620010d2380380620010d2833981016040819052620000349162000317565b6200003f336200006e565b6200005c620000566002546001600160a01b031690565b6200008c565b620000678162000131565b5062000469565b600380546001600160a01b03191690556200008981620001b5565b50565b6001600160a01b03811660009081526020819052604090205460ff1615620000d15760405162461bcd60e51b8152600401620000c89062000344565b60405180910390fd5b6001600160a01b03811660009081526020819052604090819020805460ff19166001179055517f7c363f8df6087ba61be7d84b7a936d5eb39ebd1ab56dd8188a27a60e3b301a27906200012690839062000394565b60405180910390a150565b80516001805460208401516040808601516001600160801b039095166001600160a01b031990931692909217600160801b63ffffffff928316021763ffffffff60a01b1916600160a01b919094160292909217815590517fc3b5a50e47b6b36cbfdf9f2816f54bcadaa46c6d4469b530f5e1fd8cc70e8fd891620001269162000459565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b038211171562000245576200024562000207565b6040525050565b60006200025860405190565b90506200026682826200021d565b919050565b6001600160801b0381165b81146200008957600080fd5b80516200028f816200026b565b92915050565b63ffffffff811662000276565b80516200028f8162000295565b600060608284031215620002c657620002c6600080fd5b620002d260606200024c565b90506000620002e2848462000282565b8252506020620002f584848301620002a2565b60208301525060406200030b84828501620002a2565b60408301525092915050565b6000606082840312156200032e576200032e600080fd5b60006200033c8484620002af565b949350505050565b602080825281016200028f81600e81526d72656c617965722065786973747360901b602082015260400190565b60006001600160a01b0382166200028f565b6200038e8162000371565b82525050565b602081016200028f828462000383565b60006001600160801b0382166200028f565b6001600160801b0381166200038e565b60006200028f620003d78360801c90565b63ffffffff1690565b63ffffffff81166200038e565b60006200028f620003d78360a01c90565b805460608301906200041081620003a4565b6200041c8582620003b6565b506200042881620003c6565b620004376020860182620003e0565b506200044381620003ed565b620004526040860182620003e0565b5050505050565b606081016200028f8284620003fe565b610c5980620004796000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806379502c55116100a2578063c8dc8a0c11610071578063c8dc8a0c14610220578063cb11b9f414610233578063dd39f00d1461024a578063e30c39781461025d578063f2fde38b1461026e57600080fd5b806379502c55146101bb57806379ba5097146101f65780638456cb59146101fe5780638da5cb5b1461020657600080fd5b80635300f841116100de5780635300f841146101535780635c975abb1461018c57806360f0a5ac146101a0578063715018a6146101b357600080fd5b806310c58d65146101105780631251d14e1461012557806328ad6c16146101385780633f4ba83a1461014b575b600080fd5b61012361011e36600461076c565b610281565b005b61012361013336600461076c565b610295565b61012361014636600461086c565b6102a6565b6101236102b7565b6101766101613660046108b2565b60006020819052908152604090205460ff1681565b60405161018391906108dd565b60405180910390f35b60035461017690600160a01b900460ff1681565b6101236101ae3660046108b2565b610300565b610123610311565b6001546101e7906001600160801b0381169063ffffffff600160801b8204811691600160a01b90041683565b60405161018393929190610906565b610123610325565b61012361035a565b6002546001600160a01b03165b6040516101839190610937565b61012361022e366004610945565b6103a1565b61023d620f424081565b6040516101839190610966565b6101236102583660046108b2565b6103b2565b6003546001600160a01b0316610213565b61012361027c3660046108b2565b6103c3565b610289610434565b6102928161045e565b50565b61029d610434565b610292816104a3565b6102ae610434565b61029281610516565b6102bf610434565b600354600160a01b900460ff166102f15760405162461bcd60e51b81526004016102e890610998565b60405180910390fd5b6003805460ff60a01b19169055565b610308610434565b61029281610586565b610319610434565b6103236000610611565b565b60035433906001600160a01b031681146103515760405162461bcd60e51b81526004016102e8906109f1565b61029281610611565b610362610434565b600354600160a01b900460ff161561038c5760405162461bcd60e51b81526004016102e890610a26565b6003805460ff60a01b1916600160a01b179055565b6103a9610434565b6102928161062a565b6103ba610434565b6102928161066a565b6103cb610434565b600380546001600160a01b0383166001600160a01b031990911681179091556103fc6002546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6002546001600160a01b031633146103235760405162461bcd60e51b81526004016102e890610a68565b6001805463ffffffff60a01b1916600160a01b63ffffffff841602178155604051600080516020610c048339815191529161049891610aff565b60405180910390a150565b6104b16014620f4240610b23565b63ffffffff168163ffffffff1611156104dc5760405162461bcd60e51b81526004016102e890610b84565b6001805463ffffffff60801b1916600160801b63ffffffff841602178155604051600080516020610c048339815191529161049891610aff565b80516001805460208401516040808601516001600160801b039095166001600160a01b031990931692909217600160801b63ffffffff928316021763ffffffff60a01b1916600160a01b91909416029290921781559051600080516020610c048339815191529161049891610aff565b6001600160a01b03811660009081526020819052604090205460ff166105be5760405162461bcd60e51b81526004016102e890610bbe565b6001600160a01b03811660009081526020819052604090819020805460ff19166001179055517f370e7a3077485fd8cef64916374045a1bfae1d0984617c2833e614ed87b9d0df90610498908390610937565b600380546001600160a01b0319169055610292816106f6565b600180546fffffffffffffffffffffffffffffffff19166001600160801b038316178155604051600080516020610c048339815191529161049891610aff565b6001600160a01b03811660009081526020819052604090205460ff16156106a35760405162461bcd60e51b81526004016102e890610bf3565b6001600160a01b03811660009081526020819052604090819020805460ff19166001179055517f7c363f8df6087ba61be7d84b7a936d5eb39ebd1ab56dd8188a27a60e3b301a2790610498908390610937565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63ffffffff81165b811461029257600080fd5b803561076681610748565b92915050565b60006020828403121561078157610781600080fd5b600061078d848461075b565b949350505050565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156107d1576107d1610795565b6040525050565b60006107e360405190565b90506107ef82826107ab565b919050565b6001600160801b038116610750565b8035610766816107f4565b60006060828403121561082357610823600080fd5b61082d60606107d8565b9050600061083b8484610803565b825250602061084c8484830161075b565b60208301525060406108608482850161075b565b60408301525092915050565b60006060828403121561088157610881600080fd5b600061078d848461080e565b60006001600160a01b038216610766565b6107508161088d565b80356107668161089e565b6000602082840312156108c7576108c7600080fd5b600061078d84846108a7565b8015155b82525050565b6020810161076682846108d3565b6001600160801b0381166108d7565b63ffffffff81166108d7565b6060810161091482866108eb565b61092160208301856108fa565b61078d60408301846108fa565b6108d78161088d565b60208101610766828461092e565b60006020828403121561095a5761095a600080fd5b600061078d8484610803565b6020810161076682846108fa565b600a8152600060208201691b9bdd081c185d5cd95960b21b815291505b5060200190565b6020808252810161076681610974565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b60208082528101610766816109a8565b600e81526000602082016d185b1c9958591e481c185d5cd95960921b81529150610991565b6020808252810161076681610a01565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000610991565b6020808252810161076681610a36565b60006001600160801b038216610766565b6000610766610a988360801c90565b63ffffffff1690565b6000610766610a988360a01c90565b80546060830190610ac081610a78565b610aca85826108eb565b50610ad481610a89565b610ae160208601826108fa565b50610aeb81610aa1565b610af860408601826108fa565b5050505050565b606081016107668284610ab0565b634e487b7160e01b600052601260045260246000fd5b63ffffffff9182169116600082610b3c57610b3c610b0d565b500490565b602681526000602082017f6665652072617465206d757374206265206c657373206f7220657175616c207481526568616e20352560d01b602082015291506109ea565b6020808252810161076681610b41565b60138152600060208201723737b732bc34b9ba32b73a103932b630bcb2b960691b81529150610991565b6020808252810161076681610b94565b600e81526000602082016d72656c617965722065786973747360901b81529150610991565b6020808252810161076681610bce56fec3b5a50e47b6b36cbfdf9f2816f54bcadaa46c6d4469b530f5e1fd8cc70e8fd8a26469706673582212200c8a3ff6a53e91a1870eebd914c8f994f4b819040d0fc1dadbc27b634f6c0adc64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x10D2 CODESIZE SUB DUP1 PUSH3 0x10D2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x317 JUMP JUMPDEST PUSH3 0x3F CALLER PUSH3 0x6E JUMP JUMPDEST PUSH3 0x5C PUSH3 0x56 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH3 0x8C JUMP JUMPDEST PUSH3 0x67 DUP2 PUSH3 0x131 JUMP JUMPDEST POP PUSH3 0x469 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH3 0x89 DUP2 PUSH3 0x1B5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH3 0xD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0xC8 SWAP1 PUSH3 0x344 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x7C363F8DF6087BA61BE7D84B7A936D5EB39EBD1AB56DD8188A27A60E3B301A27 SWAP1 PUSH3 0x126 SWAP1 DUP4 SWAP1 PUSH3 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x80 SHL PUSH4 0xFFFFFFFF SWAP3 DUP4 AND MUL OR PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL SWAP2 SWAP1 SWAP5 AND MUL SWAP3 SWAP1 SWAP3 OR DUP2 SSTORE SWAP1 MLOAD PUSH32 0xC3B5A50E47B6B36CBFDF9F2816F54BCADAA46C6D4469B530F5E1FD8CC70E8FD8 SWAP2 PUSH3 0x126 SWAP2 PUSH3 0x459 JUMP JUMPDEST PUSH1 0x2 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 PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH3 0x245 JUMPI PUSH3 0x245 PUSH3 0x207 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x258 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH3 0x266 DUP3 DUP3 PUSH3 0x21D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND JUMPDEST DUP2 EQ PUSH3 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH3 0x28F DUP2 PUSH3 0x26B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0x276 JUMP JUMPDEST DUP1 MLOAD PUSH3 0x28F DUP2 PUSH3 0x295 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x2C6 JUMPI PUSH3 0x2C6 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2D2 PUSH1 0x60 PUSH3 0x24C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH3 0x2E2 DUP5 DUP5 PUSH3 0x282 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH3 0x2F5 DUP5 DUP5 DUP4 ADD PUSH3 0x2A2 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH3 0x30B DUP5 DUP3 DUP6 ADD PUSH3 0x2A2 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x32E JUMPI PUSH3 0x32E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x33C DUP5 DUP5 PUSH3 0x2AF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x28F DUP2 PUSH1 0xE DUP2 MSTORE PUSH14 0x72656C6179657220657869737473 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x28F JUMP JUMPDEST PUSH3 0x38E DUP2 PUSH3 0x371 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH3 0x28F DUP3 DUP5 PUSH3 0x383 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 AND PUSH3 0x28F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH3 0x38E JUMP JUMPDEST PUSH1 0x0 PUSH3 0x28F PUSH3 0x3D7 DUP4 PUSH1 0x80 SHR SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0x38E JUMP JUMPDEST PUSH1 0x0 PUSH3 0x28F PUSH3 0x3D7 DUP4 PUSH1 0xA0 SHR SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH3 0x410 DUP2 PUSH3 0x3A4 JUMP JUMPDEST PUSH3 0x41C DUP6 DUP3 PUSH3 0x3B6 JUMP JUMPDEST POP PUSH3 0x428 DUP2 PUSH3 0x3C6 JUMP JUMPDEST PUSH3 0x437 PUSH1 0x20 DUP7 ADD DUP3 PUSH3 0x3E0 JUMP JUMPDEST POP PUSH3 0x443 DUP2 PUSH3 0x3ED JUMP JUMPDEST PUSH3 0x452 PUSH1 0x40 DUP7 ADD DUP3 PUSH3 0x3E0 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH3 0x28F DUP3 DUP5 PUSH3 0x3FE JUMP JUMPDEST PUSH2 0xC59 DUP1 PUSH3 0x479 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 0x10B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79502C55 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xC8DC8A0C GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC8DC8A0C EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0xCB11B9F4 EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0xDD39F00D EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x26E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79502C55 EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x206 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5300F841 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0x5300F841 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x60F0A5AC EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10C58D65 EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0x1251D14E EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0x28AD6C16 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x14B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x123 PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0x76C JUMP JUMPDEST PUSH2 0x281 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x123 PUSH2 0x133 CALLDATASIZE PUSH1 0x4 PUSH2 0x76C JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x146 CALLDATASIZE PUSH1 0x4 PUSH2 0x86C JUMP JUMPDEST PUSH2 0x2A6 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x2B7 JUMP JUMPDEST PUSH2 0x176 PUSH2 0x161 CALLDATASIZE PUSH1 0x4 PUSH2 0x8B2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x8DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x176 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0x8B2 JUMP JUMPDEST PUSH2 0x300 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x311 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x1E7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x80 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV AND DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x906 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x325 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x35A JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x22E CALLDATASIZE PUSH1 0x4 PUSH2 0x945 JUMP JUMPDEST PUSH2 0x3A1 JUMP JUMPDEST PUSH2 0x23D PUSH3 0xF4240 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x966 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x258 CALLDATASIZE PUSH1 0x4 PUSH2 0x8B2 JUMP JUMPDEST PUSH2 0x3B2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x213 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x8B2 JUMP JUMPDEST PUSH2 0x3C3 JUMP JUMPDEST PUSH2 0x289 PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x45E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x29D PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x4A3 JUMP JUMPDEST PUSH2 0x2AE PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x516 JUMP JUMPDEST PUSH2 0x2BF PUSH2 0x434 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0x998 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x308 PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x586 JUMP JUMPDEST PUSH2 0x319 PUSH2 0x434 JUMP JUMPDEST PUSH2 0x323 PUSH1 0x0 PUSH2 0x611 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x3 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x351 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x611 JUMP JUMPDEST PUSH2 0x362 PUSH2 0x434 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x38C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0xA26 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3A9 PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x62A JUMP JUMPDEST PUSH2 0x3BA PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x66A JUMP JUMPDEST PUSH2 0x3CB PUSH2 0x434 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x3FC PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x323 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0xA68 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH4 0xFFFFFFFF DUP5 AND MUL OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xC04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x498 SWAP2 PUSH2 0xAFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x4B1 PUSH1 0x14 PUSH3 0xF4240 PUSH2 0xB23 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0xB84 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x80 SHL NOT AND PUSH1 0x1 PUSH1 0x80 SHL PUSH4 0xFFFFFFFF DUP5 AND MUL OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xC04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x498 SWAP2 PUSH2 0xAFF JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x80 SHL PUSH4 0xFFFFFFFF SWAP3 DUP4 AND MUL OR PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL SWAP2 SWAP1 SWAP5 AND MUL SWAP3 SWAP1 SWAP3 OR DUP2 SSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xC04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x498 SWAP2 PUSH2 0xAFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x370E7A3077485FD8CEF64916374045A1BFAE1D0984617C2833E614ED87B9D0DF SWAP1 PUSH2 0x498 SWAP1 DUP4 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x292 DUP2 PUSH2 0x6F6 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xC04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x498 SWAP2 PUSH2 0xAFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x6A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x7C363F8DF6087BA61BE7D84B7A936D5EB39EBD1AB56DD8188A27A60E3B301A27 SWAP1 PUSH2 0x498 SWAP1 DUP4 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x2 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 PUSH4 0xFFFFFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x766 DUP2 PUSH2 0x748 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x781 JUMPI PUSH2 0x781 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78D DUP5 DUP5 PUSH2 0x75B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x7D1 JUMPI PUSH2 0x7D1 PUSH2 0x795 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7E3 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x7EF DUP3 DUP3 PUSH2 0x7AB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x750 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x766 DUP2 PUSH2 0x7F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x823 JUMPI PUSH2 0x823 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x82D PUSH1 0x60 PUSH2 0x7D8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x83B DUP5 DUP5 PUSH2 0x803 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x84C DUP5 DUP5 DUP4 ADD PUSH2 0x75B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x860 DUP5 DUP3 DUP6 ADD PUSH2 0x75B JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x881 JUMPI PUSH2 0x881 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78D DUP5 DUP5 PUSH2 0x80E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x766 JUMP JUMPDEST PUSH2 0x750 DUP2 PUSH2 0x88D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x766 DUP2 PUSH2 0x89E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8C7 JUMPI PUSH2 0x8C7 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78D DUP5 DUP5 PUSH2 0x8A7 JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x766 DUP3 DUP5 PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x8D7 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x8D7 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x914 DUP3 DUP7 PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x921 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x8FA JUMP JUMPDEST PUSH2 0x78D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8FA JUMP JUMPDEST PUSH2 0x8D7 DUP2 PUSH2 0x88D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x766 DUP3 DUP5 PUSH2 0x92E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x95A JUMPI PUSH2 0x95A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78D DUP5 DUP5 PUSH2 0x803 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x766 DUP3 DUP5 PUSH2 0x8FA JUMP JUMPDEST PUSH1 0xA DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH10 0x1B9BDD081C185D5CD959 PUSH1 0xB2 SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0x974 JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x185B1C9958591E481C185D5CD959 PUSH1 0x92 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x991 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x991 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0xA36 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 AND PUSH2 0x766 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xA98 DUP4 PUSH1 0x80 SHR SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xA98 DUP4 PUSH1 0xA0 SHR SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0xAC0 DUP2 PUSH2 0xA78 JUMP JUMPDEST PUSH2 0xACA DUP6 DUP3 PUSH2 0x8EB JUMP JUMPDEST POP PUSH2 0xAD4 DUP2 PUSH2 0xA89 JUMP JUMPDEST PUSH2 0xAE1 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x8FA JUMP JUMPDEST POP PUSH2 0xAEB DUP2 PUSH2 0xAA1 JUMP JUMPDEST PUSH2 0xAF8 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x8FA JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x766 DUP3 DUP5 PUSH2 0xAB0 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0xFFFFFFFF SWAP2 DUP3 AND SWAP2 AND PUSH1 0x0 DUP3 PUSH2 0xB3C JUMPI PUSH2 0xB3C PUSH2 0xB0D JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x6665652072617465206D757374206265206C657373206F7220657175616C2074 DUP2 MSTORE PUSH6 0x68616E203525 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9EA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0xB41 JUMP JUMPDEST PUSH1 0x13 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH19 0x3737B732BC34B9BA32B73A103932B630BCB2B9 PUSH1 0x69 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x991 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0xB94 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x72656C6179657220657869737473 PUSH1 0x90 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x991 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0xBCE JUMP INVALID 0xC3 0xB5 0xA5 0xE SELFBALANCE 0xB6 0xB3 PUSH13 0xBFDF9F2816F54BCADAA46C6D44 PUSH10 0xB530F5E1FD8CC70E8FD8 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC DUP11 EXTCODEHASH 0xF6 0xA5 RETURNDATACOPY SWAP2 LOG1 DUP8 0xE 0xEB 0xD9 EQ 0xC8 0xF9 SWAP5 DELEGATECALL 0xB8 NOT DIV 0xD 0xF 0xC1 0xDA 0xDB 0xC2 PUSH28 0x634F6C0ADC64736F6C63430008140033000000000000000000000000 ","sourceMap":"165:1090:15:-:0;;;312:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:0;734:10:5;936:18:0;:32::i;:::-;367:20:15::1;379:7;1273:6:0::0;;-1:-1:-1;;;;;1273:6:0;;1201:85;379:7:15::1;367:11;:20::i;:::-;391:22;405:7:::0;391:13:::1;:22::i;:::-;312:105:::0;165:1090;;1501:153:1;1590:13;1583:20;;-1:-1:-1;;;;;;1583:20:1;;;1613:34;1638:8;1613:24;:34::i;:::-;1501:153;:::o;294:156:17:-;-1:-1:-1;;;;;354:17:17;;:8;:17;;;;;;;;;;;;;353:18;345:45;;;;-1:-1:-1;;;345:45:17;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;394:17:17;;:8;:17;;;;;;;;;;;;:24;;-1:-1:-1;;394:24:17;414:4;394:24;;;427:19;;;;;403:7;;427:19;:::i;:::-;;;;;;;;294:156;:::o;281:109:14:-;341:16;;:6;:16;;;;;;;;;;;-1:-1:-1;;;;;341:16:14;;;-1:-1:-1;;;;;;341:16:14;;;;;;;-1:-1:-1;;;341:16:14;;;;;;-1:-1:-1;;;;341:16:14;-1:-1:-1;;;341:16:14;;;;;;;;;;;366:20;;;;;;;:::i;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;565:180:18:-;-1:-1:-1;;;610:1:18;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;-1:-1:-1;;549:2:18;529:14;;525:28;826:6;822:40;964:6;952:10;949:22;-1:-1:-1;;;;;916:10:18;913:34;910:62;907:88;;;975:18;;:::i;:::-;1011:2;1004:22;-1:-1:-1;;751:281:18:o;1038:129::-;1072:6;1099:20;73:2;67:9;;7:75;1099:20;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1420:122::-;-1:-1:-1;;;;;1362:46:18;;1493:24;1486:5;1483:35;1473:63;;1532:1;1529;1522:12;1548:143;1630:13;;1652:33;1630:13;1652:33;:::i;:::-;1548:143;;;;:::o;1796:120::-;1773:10;1762:22;;1868:23;1697:93;1922:141;2003:13;;2025:32;2003:13;2025:32;:::i;2098:806::-;2183:5;2227:4;2215:9;2210:3;2206:19;2202:30;2199:117;;;2235:79;197:1;194;187:12;2235:79;2334:21;2350:4;2334:21;:::i;:::-;2325:30;-1:-1:-1;2424:1:18;2464:60;2520:3;2500:9;2464:60;:::i;:::-;2439:86;;-1:-1:-1;2605:2:18;2646:59;2701:3;2677:22;;;2646:59;:::i;:::-;2639:4;2632:5;2628:16;2621:85;2546:171;2785:2;2826:59;2881:3;2872:6;2861:9;2857:22;2826:59;:::i;:::-;2819:4;2812:5;2808:16;2801:85;2727:170;2098:806;;;;:::o;2910:401::-;3005:6;3054:2;3042:9;3033:7;3029:23;3025:32;3022:119;;;3060:79;197:1;194;187:12;3060:79;3180:1;3205:89;3286:7;3266:9;3205:89;:::i;:::-;3195:99;2910:401;-1:-1:-1;;;;2910:401:18:o;4034:419::-;4238:2;4251:47;;;4223:18;;4315:131;4223:18;3889:2;3423:19;;-1:-1:-1;;;3475:4:18;3466:14;;3609:40;4010:12;;;3662:366;4591:96;4628:7;-1:-1:-1;;;;;4525:54:18;;4657:24;4459:126;4693:118;4780:24;4798:5;4780:24;:::i;:::-;4775:3;4768:37;4693:118;;:::o;4817:222::-;4948:2;4933:18;;4961:71;4937:9;5005:6;4961:71;:::i;5290:166::-;5359:5;-1:-1:-1;;;;;1362:46:18;;5384:66;1296:118;5462:108;-1:-1:-1;;;;;1362:46:18;;5539:24;1296:118;5800:167;5869:5;5894:67;5924:36;5949:10;5664:3;5660:15;;5576:106;5924:36;1773:10;1762:22;;1697:93;5973:105;1773:10;1762:22;;6048:23;1697:93;6196:167;6265:5;6290:67;6320:36;6345:10;6172:3;6168:15;;6084:106;6423:874;6666:23;;6567:4;6558:14;;;6722:55;6666:23;6722:55;:::i;:::-;6790:63;6842:3;6824:12;6790:63;:::i;:::-;6609:254;6938:55;6983:9;6938:55;:::i;:::-;7006:61;7061:4;7056:3;7052:14;7038:12;7006:61;:::i;:::-;6873:204;7151:55;7196:9;7151:55;:::i;:::-;7219:61;7274:4;7269:3;7265:14;7251:12;7219:61;:::i;:::-;7087:203;6536:761;;6423:874;;:::o;7303:316::-;7481:2;7466:18;;7494:118;7470:9;7585:6;7494:118;:::i;7303:316::-;165:1090:15;;;;;;"},"deployedBytecode":{"functionDebugData":{"@MAXPCT_2552":{"entryPoint":null,"id":2552,"parameterSlots":0,"returnSlots":0},"@_addRelayer_3398":{"entryPoint":1642,"id":3398,"parameterSlots":1,"returnSlots":0},"@_checkOwner_54":{"entryPoint":1076,"id":54,"parameterSlots":0,"returnSlots":0},"@_msgSender_324":{"entryPoint":null,"id":324,"parameterSlots":0,"returnSlots":1},"@_removeRelayer_3421":{"entryPoint":1414,"id":3421,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_111":{"entryPoint":1782,"id":111,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_172":{"entryPoint":1553,"id":172,"parameterSlots":1,"returnSlots":0},"@_updateConfig_2572":{"entryPoint":1302,"id":2572,"parameterSlots":1,"returnSlots":0},"@_updateDepositBaseFee_2588":{"entryPoint":1578,"id":2588,"parameterSlots":1,"returnSlots":0},"@_updateDepositFeeRate_2613":{"entryPoint":1187,"id":2613,"parameterSlots":1,"returnSlots":0},"@_updateFinalizeTxGas_2629":{"entryPoint":1118,"id":2629,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_194":{"entryPoint":805,"id":194,"parameterSlots":0,"returnSlots":0},"@addRelayer_2714":{"entryPoint":946,"id":2714,"parameterSlots":1,"returnSlots":0},"@config_2549":{"entryPoint":null,"id":2549,"parameterSlots":0,"returnSlots":0},"@owner_40":{"entryPoint":null,"id":40,"parameterSlots":0,"returnSlots":1},"@pause_2687":{"entryPoint":858,"id":2687,"parameterSlots":0,"returnSlots":0},"@paused_2643":{"entryPoint":null,"id":2643,"parameterSlots":0,"returnSlots":0},"@pendingOwner_135":{"entryPoint":null,"id":135,"parameterSlots":0,"returnSlots":1},"@relayers_3354":{"entryPoint":null,"id":3354,"parameterSlots":0,"returnSlots":0},"@removeRelayer_2726":{"entryPoint":768,"id":2726,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_68":{"entryPoint":785,"id":68,"parameterSlots":0,"returnSlots":0},"@transferOwnership_155":{"entryPoint":963,"id":155,"parameterSlots":1,"returnSlots":0},"@unpause_2702":{"entryPoint":695,"id":2702,"parameterSlots":0,"returnSlots":0},"@updateConfig_2739":{"entryPoint":678,"id":2739,"parameterSlots":1,"returnSlots":0},"@updateDepositBaseFee_2751":{"entryPoint":929,"id":2751,"parameterSlots":1,"returnSlots":0},"@updateDepositFeeRate_2763":{"entryPoint":661,"id":2763,"parameterSlots":1,"returnSlots":0},"@updateFinalizeTxGas_2775":{"entryPoint":641,"id":2775,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address":{"entryPoint":2215,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Config__$2546_memory_ptr":{"entryPoint":2062,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint128":{"entryPoint":2051,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint32":{"entryPoint":1883,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2226,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Config__$2546_memory_ptr":{"entryPoint":2156,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint128":{"entryPoint":2373,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint32":{"entryPoint":1900,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2350,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2259,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":2472,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3_to_t_string_memory_ptr_fromStack":{"entryPoint":2964,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":2614,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b_to_t_string_memory_ptr_fromStack":{"entryPoint":2561,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack":{"entryPoint":3022,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b_to_t_string_memory_ptr_fromStack":{"entryPoint":2420,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef_to_t_string_memory_ptr_fromStack":{"entryPoint":2881,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack":{"entryPoint":2736,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint128_to_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint128_to_t_uint128_fromStack":{"entryPoint":2283,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint32_to_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint32_to_t_uint32_fromStack":{"entryPoint":2298,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2359,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2269,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2545,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3006,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2664,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2598,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3059,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2456,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2948,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed":{"entryPoint":2815,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint128_t_uint32_t_uint32__to_t_uint128_t_uint32_t_uint32__fromStack_reversed":{"entryPoint":2310,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":2406,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":2008,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint32":{"entryPoint":2851,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_from_storage_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_from_storage_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address":{"entryPoint":2189,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_0t_uint128":{"entryPoint":2680,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_16t_uint32":{"entryPoint":2697,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_20t_uint32":{"entryPoint":2721,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":1963,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":2829,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1941,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_0_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_128_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_160_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2206,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint128":{"entryPoint":2036,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint32":{"entryPoint":1864,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:16666:18","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:18","statements":[{"nodeType":"YulAssignment","src":"57:19:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:18","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:18"},"nodeType":"YulFunctionCall","src":"67:9:18"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:18"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:18","type":""}],"src":"7:75:18"},{"body":{"nodeType":"YulBlock","src":"177:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:18"},"nodeType":"YulFunctionCall","src":"187:12:18"},"nodeType":"YulExpressionStatement","src":"187:12:18"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:18"},{"body":{"nodeType":"YulBlock","src":"300:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:18"},"nodeType":"YulFunctionCall","src":"310:12:18"},"nodeType":"YulExpressionStatement","src":"310:12:18"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:18"},{"body":{"nodeType":"YulBlock","src":"378:49:18","statements":[{"nodeType":"YulAssignment","src":"388:33:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"403:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"410:10:18","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"399:3:18"},"nodeType":"YulFunctionCall","src":"399:22:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"388:7:18"}]}]},"name":"cleanup_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"360:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"370:7:18","type":""}],"src":"334:93:18"},{"body":{"nodeType":"YulBlock","src":"475:78:18","statements":[{"body":{"nodeType":"YulBlock","src":"531:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"540:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"543:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"533:6:18"},"nodeType":"YulFunctionCall","src":"533:12:18"},"nodeType":"YulExpressionStatement","src":"533:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"498:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"522:5:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"505:16:18"},"nodeType":"YulFunctionCall","src":"505:23:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"495:2:18"},"nodeType":"YulFunctionCall","src":"495:34:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"488:6:18"},"nodeType":"YulFunctionCall","src":"488:42:18"},"nodeType":"YulIf","src":"485:62:18"}]},"name":"validator_revert_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"468:5:18","type":""}],"src":"433:120:18"},{"body":{"nodeType":"YulBlock","src":"610:86:18","statements":[{"nodeType":"YulAssignment","src":"620:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"642:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"629:12:18"},"nodeType":"YulFunctionCall","src":"629:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"620:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"684:5:18"}],"functionName":{"name":"validator_revert_t_uint32","nodeType":"YulIdentifier","src":"658:25:18"},"nodeType":"YulFunctionCall","src":"658:32:18"},"nodeType":"YulExpressionStatement","src":"658:32:18"}]},"name":"abi_decode_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"588:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"596:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"604:5:18","type":""}],"src":"559:137:18"},{"body":{"nodeType":"YulBlock","src":"767:262:18","statements":[{"body":{"nodeType":"YulBlock","src":"813:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"815:77:18"},"nodeType":"YulFunctionCall","src":"815:79:18"},"nodeType":"YulExpressionStatement","src":"815:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"788:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"797:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"784:3:18"},"nodeType":"YulFunctionCall","src":"784:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"809:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"780:3:18"},"nodeType":"YulFunctionCall","src":"780:32:18"},"nodeType":"YulIf","src":"777:119:18"},{"nodeType":"YulBlock","src":"906:116:18","statements":[{"nodeType":"YulVariableDeclaration","src":"921:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"935:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"925:6:18","type":""}]},{"nodeType":"YulAssignment","src":"950:62:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"984:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"995:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"980:3:18"},"nodeType":"YulFunctionCall","src":"980:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1004:7:18"}],"functionName":{"name":"abi_decode_t_uint32","nodeType":"YulIdentifier","src":"960:19:18"},"nodeType":"YulFunctionCall","src":"960:52:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"950:6:18"}]}]}]},"name":"abi_decode_tuple_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"737:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"748:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"760:6:18","type":""}],"src":"702:327:18"},{"body":{"nodeType":"YulBlock","src":"1124:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1141:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1144:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1134:6:18"},"nodeType":"YulFunctionCall","src":"1134:12:18"},"nodeType":"YulExpressionStatement","src":"1134:12:18"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulFunctionDefinition","src":"1035:117:18"},{"body":{"nodeType":"YulBlock","src":"1206:54:18","statements":[{"nodeType":"YulAssignment","src":"1216:38:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1234:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"1241:2:18","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1230:3:18"},"nodeType":"YulFunctionCall","src":"1230:14:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1250:2:18","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1246:3:18"},"nodeType":"YulFunctionCall","src":"1246:7:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1226:3:18"},"nodeType":"YulFunctionCall","src":"1226:28:18"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"1216:6:18"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1189:5:18","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"1199:6:18","type":""}],"src":"1158:102:18"},{"body":{"nodeType":"YulBlock","src":"1294:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1311:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1314:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1304:6:18"},"nodeType":"YulFunctionCall","src":"1304:88:18"},"nodeType":"YulExpressionStatement","src":"1304:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1408:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1411:4:18","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1401:6:18"},"nodeType":"YulFunctionCall","src":"1401:15:18"},"nodeType":"YulExpressionStatement","src":"1401:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1432:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1435:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1425:6:18"},"nodeType":"YulFunctionCall","src":"1425:15:18"},"nodeType":"YulExpressionStatement","src":"1425:15:18"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1266:180:18"},{"body":{"nodeType":"YulBlock","src":"1495:238:18","statements":[{"nodeType":"YulVariableDeclaration","src":"1505:58:18","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1527:6:18"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"1557:4:18"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"1535:21:18"},"nodeType":"YulFunctionCall","src":"1535:27:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1523:3:18"},"nodeType":"YulFunctionCall","src":"1523:40:18"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1509:10:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"1674:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1676:16:18"},"nodeType":"YulFunctionCall","src":"1676:18:18"},"nodeType":"YulExpressionStatement","src":"1676:18:18"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1617:10:18"},{"kind":"number","nodeType":"YulLiteral","src":"1629:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1614:2:18"},"nodeType":"YulFunctionCall","src":"1614:34:18"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1653:10:18"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1665:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1650:2:18"},"nodeType":"YulFunctionCall","src":"1650:22:18"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1611:2:18"},"nodeType":"YulFunctionCall","src":"1611:62:18"},"nodeType":"YulIf","src":"1608:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1712:2:18","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1716:10:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1705:6:18"},"nodeType":"YulFunctionCall","src":"1705:22:18"},"nodeType":"YulExpressionStatement","src":"1705:22:18"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"1481:6:18","type":""},{"name":"size","nodeType":"YulTypedName","src":"1489:4:18","type":""}],"src":"1452:281:18"},{"body":{"nodeType":"YulBlock","src":"1780:88:18","statements":[{"nodeType":"YulAssignment","src":"1790:30:18","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"1800:18:18"},"nodeType":"YulFunctionCall","src":"1800:20:18"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1790:6:18"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1849:6:18"},{"name":"size","nodeType":"YulIdentifier","src":"1857:4:18"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"1829:19:18"},"nodeType":"YulFunctionCall","src":"1829:33:18"},"nodeType":"YulExpressionStatement","src":"1829:33:18"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"1764:4:18","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1773:6:18","type":""}],"src":"1739:129:18"},{"body":{"nodeType":"YulBlock","src":"1963:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1980:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1983:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1973:6:18"},"nodeType":"YulFunctionCall","src":"1973:12:18"},"nodeType":"YulExpressionStatement","src":"1973:12:18"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulFunctionDefinition","src":"1874:117:18"},{"body":{"nodeType":"YulBlock","src":"2042:73:18","statements":[{"nodeType":"YulAssignment","src":"2052:57:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2067:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2074:34:18","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2063:3:18"},"nodeType":"YulFunctionCall","src":"2063:46:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2052:7:18"}]}]},"name":"cleanup_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2024:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2034:7:18","type":""}],"src":"1997:118:18"},{"body":{"nodeType":"YulBlock","src":"2164:79:18","statements":[{"body":{"nodeType":"YulBlock","src":"2221:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2230:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2233:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2223:6:18"},"nodeType":"YulFunctionCall","src":"2223:12:18"},"nodeType":"YulExpressionStatement","src":"2223:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2187:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2212:5:18"}],"functionName":{"name":"cleanup_t_uint128","nodeType":"YulIdentifier","src":"2194:17:18"},"nodeType":"YulFunctionCall","src":"2194:24:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2184:2:18"},"nodeType":"YulFunctionCall","src":"2184:35:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2177:6:18"},"nodeType":"YulFunctionCall","src":"2177:43:18"},"nodeType":"YulIf","src":"2174:63:18"}]},"name":"validator_revert_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2157:5:18","type":""}],"src":"2121:122:18"},{"body":{"nodeType":"YulBlock","src":"2301:87:18","statements":[{"nodeType":"YulAssignment","src":"2311:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2333:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2320:12:18"},"nodeType":"YulFunctionCall","src":"2320:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2311:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2376:5:18"}],"functionName":{"name":"validator_revert_t_uint128","nodeType":"YulIdentifier","src":"2349:26:18"},"nodeType":"YulFunctionCall","src":"2349:33:18"},"nodeType":"YulExpressionStatement","src":"2349:33:18"}]},"name":"abi_decode_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2279:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"2287:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2295:5:18","type":""}],"src":"2249:139:18"},{"body":{"nodeType":"YulBlock","src":"2503:682:18","statements":[{"body":{"nodeType":"YulBlock","src":"2547:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"2549:77:18"},"nodeType":"YulFunctionCall","src":"2549:79:18"},"nodeType":"YulExpressionStatement","src":"2549:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"2524:3:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"2529:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2520:3:18"},"nodeType":"YulFunctionCall","src":"2520:19:18"},{"kind":"number","nodeType":"YulLiteral","src":"2541:4:18","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2516:3:18"},"nodeType":"YulFunctionCall","src":"2516:30:18"},"nodeType":"YulIf","src":"2513:117:18"},{"nodeType":"YulAssignment","src":"2639:30:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2664:4:18","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2648:15:18"},"nodeType":"YulFunctionCall","src":"2648:21:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2639:5:18"}]},{"nodeType":"YulBlock","src":"2679:160:18","statements":[{"nodeType":"YulVariableDeclaration","src":"2724:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2738:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2728:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2764:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2771:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2760:3:18"},"nodeType":"YulFunctionCall","src":"2760:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2803:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"2814:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2799:3:18"},"nodeType":"YulFunctionCall","src":"2799:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"2823:3:18"}],"functionName":{"name":"abi_decode_t_uint128","nodeType":"YulIdentifier","src":"2778:20:18"},"nodeType":"YulFunctionCall","src":"2778:49:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2753:6:18"},"nodeType":"YulFunctionCall","src":"2753:75:18"},"nodeType":"YulExpressionStatement","src":"2753:75:18"}]},{"nodeType":"YulBlock","src":"2849:160:18","statements":[{"nodeType":"YulVariableDeclaration","src":"2894:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2908:2:18","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2898:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2935:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2942:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2931:3:18"},"nodeType":"YulFunctionCall","src":"2931:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2973:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"2984:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2969:3:18"},"nodeType":"YulFunctionCall","src":"2969:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"2993:3:18"}],"functionName":{"name":"abi_decode_t_uint32","nodeType":"YulIdentifier","src":"2949:19:18"},"nodeType":"YulFunctionCall","src":"2949:48:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2924:6:18"},"nodeType":"YulFunctionCall","src":"2924:74:18"},"nodeType":"YulExpressionStatement","src":"2924:74:18"}]},{"nodeType":"YulBlock","src":"3019:159:18","statements":[{"nodeType":"YulVariableDeclaration","src":"3063:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"3077:2:18","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3067:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3104:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"3111:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3100:3:18"},"nodeType":"YulFunctionCall","src":"3100:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3142:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"3153:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3138:3:18"},"nodeType":"YulFunctionCall","src":"3138:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"3162:3:18"}],"functionName":{"name":"abi_decode_t_uint32","nodeType":"YulIdentifier","src":"3118:19:18"},"nodeType":"YulFunctionCall","src":"3118:48:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3093:6:18"},"nodeType":"YulFunctionCall","src":"3093:74:18"},"nodeType":"YulExpressionStatement","src":"3093:74:18"}]}]},"name":"abi_decode_t_struct$_Config__$2546_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2478:9:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"2489:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2497:5:18","type":""}],"src":"2423:762:18"},{"body":{"nodeType":"YulBlock","src":"3282:288:18","statements":[{"body":{"nodeType":"YulBlock","src":"3328:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"3330:77:18"},"nodeType":"YulFunctionCall","src":"3330:79:18"},"nodeType":"YulExpressionStatement","src":"3330:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3303:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"3312:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3299:3:18"},"nodeType":"YulFunctionCall","src":"3299:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"3324:2:18","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3295:3:18"},"nodeType":"YulFunctionCall","src":"3295:32:18"},"nodeType":"YulIf","src":"3292:119:18"},{"nodeType":"YulBlock","src":"3421:142:18","statements":[{"nodeType":"YulVariableDeclaration","src":"3436:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"3450:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3440:6:18","type":""}]},{"nodeType":"YulAssignment","src":"3465:88:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3525:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"3536:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3521:3:18"},"nodeType":"YulFunctionCall","src":"3521:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3545:7:18"}],"functionName":{"name":"abi_decode_t_struct$_Config__$2546_memory_ptr","nodeType":"YulIdentifier","src":"3475:45:18"},"nodeType":"YulFunctionCall","src":"3475:78:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3465:6:18"}]}]}]},"name":"abi_decode_tuple_t_struct$_Config__$2546_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3252:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3263:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3275:6:18","type":""}],"src":"3191:379:18"},{"body":{"nodeType":"YulBlock","src":"3621:81:18","statements":[{"nodeType":"YulAssignment","src":"3631:65:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3646:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"3653:42:18","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3642:3:18"},"nodeType":"YulFunctionCall","src":"3642:54:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"3631:7:18"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3603:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"3613:7:18","type":""}],"src":"3576:126:18"},{"body":{"nodeType":"YulBlock","src":"3753:51:18","statements":[{"nodeType":"YulAssignment","src":"3763:35:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3792:5:18"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"3774:17:18"},"nodeType":"YulFunctionCall","src":"3774:24:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"3763:7:18"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3735:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"3745:7:18","type":""}],"src":"3708:96:18"},{"body":{"nodeType":"YulBlock","src":"3853:79:18","statements":[{"body":{"nodeType":"YulBlock","src":"3910:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3919:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3922:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3912:6:18"},"nodeType":"YulFunctionCall","src":"3912:12:18"},"nodeType":"YulExpressionStatement","src":"3912:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3876:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3901:5:18"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"3883:17:18"},"nodeType":"YulFunctionCall","src":"3883:24:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3873:2:18"},"nodeType":"YulFunctionCall","src":"3873:35:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3866:6:18"},"nodeType":"YulFunctionCall","src":"3866:43:18"},"nodeType":"YulIf","src":"3863:63:18"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3846:5:18","type":""}],"src":"3810:122:18"},{"body":{"nodeType":"YulBlock","src":"3990:87:18","statements":[{"nodeType":"YulAssignment","src":"4000:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4022:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4009:12:18"},"nodeType":"YulFunctionCall","src":"4009:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4000:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4065:5:18"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"4038:26:18"},"nodeType":"YulFunctionCall","src":"4038:33:18"},"nodeType":"YulExpressionStatement","src":"4038:33:18"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3968:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"3976:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3984:5:18","type":""}],"src":"3938:139:18"},{"body":{"nodeType":"YulBlock","src":"4149:263:18","statements":[{"body":{"nodeType":"YulBlock","src":"4195:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"4197:77:18"},"nodeType":"YulFunctionCall","src":"4197:79:18"},"nodeType":"YulExpressionStatement","src":"4197:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4170:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"4179:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4166:3:18"},"nodeType":"YulFunctionCall","src":"4166:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"4191:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4162:3:18"},"nodeType":"YulFunctionCall","src":"4162:32:18"},"nodeType":"YulIf","src":"4159:119:18"},{"nodeType":"YulBlock","src":"4288:117:18","statements":[{"nodeType":"YulVariableDeclaration","src":"4303:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"4317:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4307:6:18","type":""}]},{"nodeType":"YulAssignment","src":"4332:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4367:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"4378:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4363:3:18"},"nodeType":"YulFunctionCall","src":"4363:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4387:7:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"4342:20:18"},"nodeType":"YulFunctionCall","src":"4342:53:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4332:6:18"}]}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4119:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4130:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4142:6:18","type":""}],"src":"4083:329:18"},{"body":{"nodeType":"YulBlock","src":"4460:48:18","statements":[{"nodeType":"YulAssignment","src":"4470:32:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4495:5:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4488:6:18"},"nodeType":"YulFunctionCall","src":"4488:13:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4481:6:18"},"nodeType":"YulFunctionCall","src":"4481:21:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4470:7:18"}]}]},"name":"cleanup_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4442:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4452:7:18","type":""}],"src":"4418:90:18"},{"body":{"nodeType":"YulBlock","src":"4573:50:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4590:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4610:5:18"}],"functionName":{"name":"cleanup_t_bool","nodeType":"YulIdentifier","src":"4595:14:18"},"nodeType":"YulFunctionCall","src":"4595:21:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4583:6:18"},"nodeType":"YulFunctionCall","src":"4583:34:18"},"nodeType":"YulExpressionStatement","src":"4583:34:18"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4561:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4568:3:18","type":""}],"src":"4514:109:18"},{"body":{"nodeType":"YulBlock","src":"4721:118:18","statements":[{"nodeType":"YulAssignment","src":"4731:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4743:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"4754:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4739:3:18"},"nodeType":"YulFunctionCall","src":"4739:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4731:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4805:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4818:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"4829:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4814:3:18"},"nodeType":"YulFunctionCall","src":"4814:17:18"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulIdentifier","src":"4767:37:18"},"nodeType":"YulFunctionCall","src":"4767:65:18"},"nodeType":"YulExpressionStatement","src":"4767:65:18"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4693:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4705:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4716:4:18","type":""}],"src":"4629:210:18"},{"body":{"nodeType":"YulBlock","src":"4910:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4927:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4950:5:18"}],"functionName":{"name":"cleanup_t_uint128","nodeType":"YulIdentifier","src":"4932:17:18"},"nodeType":"YulFunctionCall","src":"4932:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4920:6:18"},"nodeType":"YulFunctionCall","src":"4920:37:18"},"nodeType":"YulExpressionStatement","src":"4920:37:18"}]},"name":"abi_encode_t_uint128_to_t_uint128_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4898:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4905:3:18","type":""}],"src":"4845:118:18"},{"body":{"nodeType":"YulBlock","src":"5032:52:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5049:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5071:5:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"5054:16:18"},"nodeType":"YulFunctionCall","src":"5054:23:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5042:6:18"},"nodeType":"YulFunctionCall","src":"5042:36:18"},"nodeType":"YulExpressionStatement","src":"5042:36:18"}]},"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5020:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5027:3:18","type":""}],"src":"4969:115:18"},{"body":{"nodeType":"YulBlock","src":"5240:284:18","statements":[{"nodeType":"YulAssignment","src":"5250:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5262:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"5273:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5258:3:18"},"nodeType":"YulFunctionCall","src":"5258:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5250:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5330:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5343:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"5354:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5339:3:18"},"nodeType":"YulFunctionCall","src":"5339:17:18"}],"functionName":{"name":"abi_encode_t_uint128_to_t_uint128_fromStack","nodeType":"YulIdentifier","src":"5286:43:18"},"nodeType":"YulFunctionCall","src":"5286:71:18"},"nodeType":"YulExpressionStatement","src":"5286:71:18"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5409:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5422:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"5433:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5418:3:18"},"nodeType":"YulFunctionCall","src":"5418:18:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulIdentifier","src":"5367:41:18"},"nodeType":"YulFunctionCall","src":"5367:70:18"},"nodeType":"YulExpressionStatement","src":"5367:70:18"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5489:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5502:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"5513:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5498:3:18"},"nodeType":"YulFunctionCall","src":"5498:18:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulIdentifier","src":"5447:41:18"},"nodeType":"YulFunctionCall","src":"5447:70:18"},"nodeType":"YulExpressionStatement","src":"5447:70:18"}]},"name":"abi_encode_tuple_t_uint128_t_uint32_t_uint32__to_t_uint128_t_uint32_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5196:9:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5208:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5216:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5224:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5235:4:18","type":""}],"src":"5090:434:18"},{"body":{"nodeType":"YulBlock","src":"5595:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5612:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5635:5:18"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"5617:17:18"},"nodeType":"YulFunctionCall","src":"5617:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5605:6:18"},"nodeType":"YulFunctionCall","src":"5605:37:18"},"nodeType":"YulExpressionStatement","src":"5605:37:18"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5583:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5590:3:18","type":""}],"src":"5530:118:18"},{"body":{"nodeType":"YulBlock","src":"5752:124:18","statements":[{"nodeType":"YulAssignment","src":"5762:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5774:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"5785:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5770:3:18"},"nodeType":"YulFunctionCall","src":"5770:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5762:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5842:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5855:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"5866:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5851:3:18"},"nodeType":"YulFunctionCall","src":"5851:17:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"5798:43:18"},"nodeType":"YulFunctionCall","src":"5798:71:18"},"nodeType":"YulExpressionStatement","src":"5798:71:18"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5724:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5736:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5747:4:18","type":""}],"src":"5654:222:18"},{"body":{"nodeType":"YulBlock","src":"5948:263:18","statements":[{"body":{"nodeType":"YulBlock","src":"5994:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"5996:77:18"},"nodeType":"YulFunctionCall","src":"5996:79:18"},"nodeType":"YulExpressionStatement","src":"5996:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5969:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"5978:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5965:3:18"},"nodeType":"YulFunctionCall","src":"5965:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"5990:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5961:3:18"},"nodeType":"YulFunctionCall","src":"5961:32:18"},"nodeType":"YulIf","src":"5958:119:18"},{"nodeType":"YulBlock","src":"6087:117:18","statements":[{"nodeType":"YulVariableDeclaration","src":"6102:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"6116:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6106:6:18","type":""}]},{"nodeType":"YulAssignment","src":"6131:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6166:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"6177:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6162:3:18"},"nodeType":"YulFunctionCall","src":"6162:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6186:7:18"}],"functionName":{"name":"abi_decode_t_uint128","nodeType":"YulIdentifier","src":"6141:20:18"},"nodeType":"YulFunctionCall","src":"6141:53:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6131:6:18"}]}]}]},"name":"abi_decode_tuple_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5918:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5929:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5941:6:18","type":""}],"src":"5882:329:18"},{"body":{"nodeType":"YulBlock","src":"6313:122:18","statements":[{"nodeType":"YulAssignment","src":"6323:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6335:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"6346:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6331:3:18"},"nodeType":"YulFunctionCall","src":"6331:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6323:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6401:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6414:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"6425:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6410:3:18"},"nodeType":"YulFunctionCall","src":"6410:17:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulIdentifier","src":"6359:41:18"},"nodeType":"YulFunctionCall","src":"6359:69:18"},"nodeType":"YulExpressionStatement","src":"6359:69:18"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6285:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6297:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6308:4:18","type":""}],"src":"6217:218:18"},{"body":{"nodeType":"YulBlock","src":"6537:73:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6554:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"6559:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6547:6:18"},"nodeType":"YulFunctionCall","src":"6547:19:18"},"nodeType":"YulExpressionStatement","src":"6547:19:18"},{"nodeType":"YulAssignment","src":"6575:29:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6594:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"6599:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6590:3:18"},"nodeType":"YulFunctionCall","src":"6590:14:18"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"6575:11:18"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6509:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"6514:6:18","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"6525:11:18","type":""}],"src":"6441:169:18"},{"body":{"nodeType":"YulBlock","src":"6722:54:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"6744:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"6752:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6740:3:18"},"nodeType":"YulFunctionCall","src":"6740:14:18"},{"hexValue":"6e6f7420706175736564","kind":"string","nodeType":"YulLiteral","src":"6756:12:18","type":"","value":"not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6733:6:18"},"nodeType":"YulFunctionCall","src":"6733:36:18"},"nodeType":"YulExpressionStatement","src":"6733:36:18"}]},"name":"store_literal_in_memory_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"6714:6:18","type":""}],"src":"6616:160:18"},{"body":{"nodeType":"YulBlock","src":"6928:220:18","statements":[{"nodeType":"YulAssignment","src":"6938:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7004:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"7009:2:18","type":"","value":"10"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"6945:58:18"},"nodeType":"YulFunctionCall","src":"6945:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"6938:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7110:3:18"}],"functionName":{"name":"store_literal_in_memory_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b","nodeType":"YulIdentifier","src":"7021:88:18"},"nodeType":"YulFunctionCall","src":"7021:93:18"},"nodeType":"YulExpressionStatement","src":"7021:93:18"},{"nodeType":"YulAssignment","src":"7123:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7134:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"7139:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7130:3:18"},"nodeType":"YulFunctionCall","src":"7130:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7123:3:18"}]}]},"name":"abi_encode_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6916:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6924:3:18","type":""}],"src":"6782:366:18"},{"body":{"nodeType":"YulBlock","src":"7325:248:18","statements":[{"nodeType":"YulAssignment","src":"7335:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7347:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"7358:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7343:3:18"},"nodeType":"YulFunctionCall","src":"7343:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7335:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7382:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"7393:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7378:3:18"},"nodeType":"YulFunctionCall","src":"7378:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"7401:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"7407:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7397:3:18"},"nodeType":"YulFunctionCall","src":"7397:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7371:6:18"},"nodeType":"YulFunctionCall","src":"7371:47:18"},"nodeType":"YulExpressionStatement","src":"7371:47:18"},{"nodeType":"YulAssignment","src":"7427:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"7561:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"7435:124:18"},"nodeType":"YulFunctionCall","src":"7435:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7427:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7305:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7320:4:18","type":""}],"src":"7154:419:18"},{"body":{"nodeType":"YulBlock","src":"7685:122:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"7707:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"7715:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7703:3:18"},"nodeType":"YulFunctionCall","src":"7703:14:18"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nodeType":"YulLiteral","src":"7719:34:18","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7696:6:18"},"nodeType":"YulFunctionCall","src":"7696:58:18"},"nodeType":"YulExpressionStatement","src":"7696:58:18"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"7775:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"7783:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7771:3:18"},"nodeType":"YulFunctionCall","src":"7771:15:18"},{"hexValue":"6e6577206f776e6572","kind":"string","nodeType":"YulLiteral","src":"7788:11:18","type":"","value":"new owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7764:6:18"},"nodeType":"YulFunctionCall","src":"7764:36:18"},"nodeType":"YulExpressionStatement","src":"7764:36:18"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"7677:6:18","type":""}],"src":"7579:228:18"},{"body":{"nodeType":"YulBlock","src":"7959:220:18","statements":[{"nodeType":"YulAssignment","src":"7969:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8035:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"8040:2:18","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"7976:58:18"},"nodeType":"YulFunctionCall","src":"7976:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7969:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8141:3:18"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nodeType":"YulIdentifier","src":"8052:88:18"},"nodeType":"YulFunctionCall","src":"8052:93:18"},"nodeType":"YulExpressionStatement","src":"8052:93:18"},{"nodeType":"YulAssignment","src":"8154:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8165:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"8170:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8161:3:18"},"nodeType":"YulFunctionCall","src":"8161:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8154:3:18"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"7947:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7955:3:18","type":""}],"src":"7813:366:18"},{"body":{"nodeType":"YulBlock","src":"8356:248:18","statements":[{"nodeType":"YulAssignment","src":"8366:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8378:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"8389:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8374:3:18"},"nodeType":"YulFunctionCall","src":"8374:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8366:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8413:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"8424:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8409:3:18"},"nodeType":"YulFunctionCall","src":"8409:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"8432:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"8438:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8428:3:18"},"nodeType":"YulFunctionCall","src":"8428:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8402:6:18"},"nodeType":"YulFunctionCall","src":"8402:47:18"},"nodeType":"YulExpressionStatement","src":"8402:47:18"},{"nodeType":"YulAssignment","src":"8458:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"8592:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"8466:124:18"},"nodeType":"YulFunctionCall","src":"8466:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8458:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8336:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8351:4:18","type":""}],"src":"8185:419:18"},{"body":{"nodeType":"YulBlock","src":"8716:58:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"8738:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"8746:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8734:3:18"},"nodeType":"YulFunctionCall","src":"8734:14:18"},{"hexValue":"616c726561647920706175736564","kind":"string","nodeType":"YulLiteral","src":"8750:16:18","type":"","value":"already paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8727:6:18"},"nodeType":"YulFunctionCall","src":"8727:40:18"},"nodeType":"YulExpressionStatement","src":"8727:40:18"}]},"name":"store_literal_in_memory_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"8708:6:18","type":""}],"src":"8610:164:18"},{"body":{"nodeType":"YulBlock","src":"8926:220:18","statements":[{"nodeType":"YulAssignment","src":"8936:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9002:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"9007:2:18","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"8943:58:18"},"nodeType":"YulFunctionCall","src":"8943:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"8936:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9108:3:18"}],"functionName":{"name":"store_literal_in_memory_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b","nodeType":"YulIdentifier","src":"9019:88:18"},"nodeType":"YulFunctionCall","src":"9019:93:18"},"nodeType":"YulExpressionStatement","src":"9019:93:18"},{"nodeType":"YulAssignment","src":"9121:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9132:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"9137:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9128:3:18"},"nodeType":"YulFunctionCall","src":"9128:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9121:3:18"}]}]},"name":"abi_encode_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"8914:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8922:3:18","type":""}],"src":"8780:366:18"},{"body":{"nodeType":"YulBlock","src":"9323:248:18","statements":[{"nodeType":"YulAssignment","src":"9333:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9345:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"9356:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9341:3:18"},"nodeType":"YulFunctionCall","src":"9341:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9333:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9380:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"9391:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9376:3:18"},"nodeType":"YulFunctionCall","src":"9376:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"9399:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"9405:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9395:3:18"},"nodeType":"YulFunctionCall","src":"9395:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9369:6:18"},"nodeType":"YulFunctionCall","src":"9369:47:18"},"nodeType":"YulExpressionStatement","src":"9369:47:18"},{"nodeType":"YulAssignment","src":"9425:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"9559:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"9433:124:18"},"nodeType":"YulFunctionCall","src":"9433:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9425:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9303:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9318:4:18","type":""}],"src":"9152:419:18"},{"body":{"nodeType":"YulBlock","src":"9683:76:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"9705:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"9713:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9701:3:18"},"nodeType":"YulFunctionCall","src":"9701:14:18"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"9717:34:18","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9694:6:18"},"nodeType":"YulFunctionCall","src":"9694:58:18"},"nodeType":"YulExpressionStatement","src":"9694:58:18"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"9675:6:18","type":""}],"src":"9577:182:18"},{"body":{"nodeType":"YulBlock","src":"9911:220:18","statements":[{"nodeType":"YulAssignment","src":"9921:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9987:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"9992:2:18","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"9928:58:18"},"nodeType":"YulFunctionCall","src":"9928:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"9921:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10093:3:18"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nodeType":"YulIdentifier","src":"10004:88:18"},"nodeType":"YulFunctionCall","src":"10004:93:18"},"nodeType":"YulExpressionStatement","src":"10004:93:18"},{"nodeType":"YulAssignment","src":"10106:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10117:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"10122:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10113:3:18"},"nodeType":"YulFunctionCall","src":"10113:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"10106:3:18"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9899:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9907:3:18","type":""}],"src":"9765:366:18"},{"body":{"nodeType":"YulBlock","src":"10308:248:18","statements":[{"nodeType":"YulAssignment","src":"10318:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10330:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"10341:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10326:3:18"},"nodeType":"YulFunctionCall","src":"10326:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10318:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10365:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"10376:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10361:3:18"},"nodeType":"YulFunctionCall","src":"10361:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"10384:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"10390:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10380:3:18"},"nodeType":"YulFunctionCall","src":"10380:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10354:6:18"},"nodeType":"YulFunctionCall","src":"10354:47:18"},"nodeType":"YulExpressionStatement","src":"10354:47:18"},{"nodeType":"YulAssignment","src":"10410:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"10544:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"10418:124:18"},"nodeType":"YulFunctionCall","src":"10418:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10410:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10288:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10303:4:18","type":""}],"src":"10137:419:18"},{"body":{"nodeType":"YulBlock","src":"10613:51:18","statements":[{"nodeType":"YulAssignment","src":"10623:34:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10648:1:18","type":"","value":"0"},{"name":"value","nodeType":"YulIdentifier","src":"10651:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10644:3:18"},"nodeType":"YulFunctionCall","src":"10644:13:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"10623:8:18"}]}]},"name":"shift_right_0_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10594:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"10604:8:18","type":""}],"src":"10562:102:18"},{"body":{"nodeType":"YulBlock","src":"10728:73:18","statements":[{"nodeType":"YulAssignment","src":"10738:57:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10753:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"10760:34:18","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10749:3:18"},"nodeType":"YulFunctionCall","src":"10749:46:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"10738:7:18"}]}]},"name":"cleanup_from_storage_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10710:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"10720:7:18","type":""}],"src":"10670:131:18"},{"body":{"nodeType":"YulBlock","src":"10882:91:18","statements":[{"nodeType":"YulAssignment","src":"10892:75:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"10955:10:18"}],"functionName":{"name":"shift_right_0_unsigned","nodeType":"YulIdentifier","src":"10932:22:18"},"nodeType":"YulFunctionCall","src":"10932:34:18"}],"functionName":{"name":"cleanup_from_storage_t_uint128","nodeType":"YulIdentifier","src":"10901:30:18"},"nodeType":"YulFunctionCall","src":"10901:66:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"10892:5:18"}]}]},"name":"extract_from_storage_value_offset_0t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"10861:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"10876:5:18","type":""}],"src":"10807:166:18"},{"body":{"nodeType":"YulBlock","src":"11034:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11051:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11074:5:18"}],"functionName":{"name":"cleanup_t_uint128","nodeType":"YulIdentifier","src":"11056:17:18"},"nodeType":"YulFunctionCall","src":"11056:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11044:6:18"},"nodeType":"YulFunctionCall","src":"11044:37:18"},"nodeType":"YulExpressionStatement","src":"11044:37:18"}]},"name":"abi_encode_t_uint128_to_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11022:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11029:3:18","type":""}],"src":"10979:108:18"},{"body":{"nodeType":"YulBlock","src":"11146:53:18","statements":[{"nodeType":"YulAssignment","src":"11156:36:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11181:3:18","type":"","value":"128"},{"name":"value","nodeType":"YulIdentifier","src":"11186:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"11177:3:18"},"nodeType":"YulFunctionCall","src":"11177:15:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"11156:8:18"}]}]},"name":"shift_right_128_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11127:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"11137:8:18","type":""}],"src":"11093:106:18"},{"body":{"nodeType":"YulBlock","src":"11262:49:18","statements":[{"nodeType":"YulAssignment","src":"11272:33:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11287:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"11294:10:18","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11283:3:18"},"nodeType":"YulFunctionCall","src":"11283:22:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"11272:7:18"}]}]},"name":"cleanup_from_storage_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11244:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"11254:7:18","type":""}],"src":"11205:106:18"},{"body":{"nodeType":"YulBlock","src":"11392:92:18","statements":[{"nodeType":"YulAssignment","src":"11402:76:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"11466:10:18"}],"functionName":{"name":"shift_right_128_unsigned","nodeType":"YulIdentifier","src":"11441:24:18"},"nodeType":"YulFunctionCall","src":"11441:36:18"}],"functionName":{"name":"cleanup_from_storage_t_uint32","nodeType":"YulIdentifier","src":"11411:29:18"},"nodeType":"YulFunctionCall","src":"11411:67:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"11402:5:18"}]}]},"name":"extract_from_storage_value_offset_16t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"11371:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"11386:5:18","type":""}],"src":"11317:167:18"},{"body":{"nodeType":"YulBlock","src":"11543:52:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11560:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11582:5:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"11565:16:18"},"nodeType":"YulFunctionCall","src":"11565:23:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11553:6:18"},"nodeType":"YulFunctionCall","src":"11553:36:18"},"nodeType":"YulExpressionStatement","src":"11553:36:18"}]},"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11531:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11538:3:18","type":""}],"src":"11490:105:18"},{"body":{"nodeType":"YulBlock","src":"11654:53:18","statements":[{"nodeType":"YulAssignment","src":"11664:36:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11689:3:18","type":"","value":"160"},{"name":"value","nodeType":"YulIdentifier","src":"11694:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"11685:3:18"},"nodeType":"YulFunctionCall","src":"11685:15:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"11664:8:18"}]}]},"name":"shift_right_160_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11635:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"11645:8:18","type":""}],"src":"11601:106:18"},{"body":{"nodeType":"YulBlock","src":"11788:92:18","statements":[{"nodeType":"YulAssignment","src":"11798:76:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"11862:10:18"}],"functionName":{"name":"shift_right_160_unsigned","nodeType":"YulIdentifier","src":"11837:24:18"},"nodeType":"YulFunctionCall","src":"11837:36:18"}],"functionName":{"name":"cleanup_from_storage_t_uint32","nodeType":"YulIdentifier","src":"11807:29:18"},"nodeType":"YulFunctionCall","src":"11807:67:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"11798:5:18"}]}]},"name":"extract_from_storage_value_offset_20t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"11767:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"11782:5:18","type":""}],"src":"11713:167:18"},{"body":{"nodeType":"YulBlock","src":"12053:761:18","statements":[{"nodeType":"YulVariableDeclaration","src":"12063:26:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12079:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"12084:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12075:3:18"},"nodeType":"YulFunctionCall","src":"12075:14:18"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"12067:4:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12098:18:18","value":{"kind":"number","nodeType":"YulLiteral","src":"12115:1:18","type":"","value":"0"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"12102:9:18","type":""}]},{"nodeType":"YulBlock","src":"12126:254:18","statements":[{"nodeType":"YulAssignment","src":"12170:36:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12193:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"12200:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12189:3:18"},"nodeType":"YulFunctionCall","src":"12189:16:18"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"12183:5:18"},"nodeType":"YulFunctionCall","src":"12183:23:18"},"variableNames":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12170:9:18"}]},{"nodeType":"YulVariableDeclaration","src":"12219:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12284:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_0t_uint128","nodeType":"YulIdentifier","src":"12239:44:18"},"nodeType":"YulFunctionCall","src":"12239:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"12223:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"12341:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12359:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"12364:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12355:3:18"},"nodeType":"YulFunctionCall","src":"12355:14:18"}],"functionName":{"name":"abi_encode_t_uint128_to_t_uint128","nodeType":"YulIdentifier","src":"12307:33:18"},"nodeType":"YulFunctionCall","src":"12307:63:18"},"nodeType":"YulExpressionStatement","src":"12307:63:18"}]},{"nodeType":"YulBlock","src":"12390:204:18","statements":[{"nodeType":"YulVariableDeclaration","src":"12435:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12500:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_16t_uint32","nodeType":"YulIdentifier","src":"12455:44:18"},"nodeType":"YulFunctionCall","src":"12455:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"12439:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"12555:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12573:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"12578:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12569:3:18"},"nodeType":"YulFunctionCall","src":"12569:14:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulIdentifier","src":"12523:31:18"},"nodeType":"YulFunctionCall","src":"12523:61:18"},"nodeType":"YulExpressionStatement","src":"12523:61:18"}]},{"nodeType":"YulBlock","src":"12604:203:18","statements":[{"nodeType":"YulVariableDeclaration","src":"12648:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"12713:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_20t_uint32","nodeType":"YulIdentifier","src":"12668:44:18"},"nodeType":"YulFunctionCall","src":"12668:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"12652:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"12768:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12786:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"12791:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12782:3:18"},"nodeType":"YulFunctionCall","src":"12782:14:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulIdentifier","src":"12736:31:18"},"nodeType":"YulFunctionCall","src":"12736:61:18"},"nodeType":"YulExpressionStatement","src":"12736:61:18"}]}]},"name":"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12040:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12047:3:18","type":""}],"src":"11940:874:18"},{"body":{"nodeType":"YulBlock","src":"12965:171:18","statements":[{"nodeType":"YulAssignment","src":"12975:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12987:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"12998:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12983:3:18"},"nodeType":"YulFunctionCall","src":"12983:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12975:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13102:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13115:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"13126:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13111:3:18"},"nodeType":"YulFunctionCall","src":"13111:17:18"}],"functionName":{"name":"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"13011:90:18"},"nodeType":"YulFunctionCall","src":"13011:118:18"},"nodeType":"YulExpressionStatement","src":"13011:118:18"}]},"name":"abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12937:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12949:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12960:4:18","type":""}],"src":"12820:316:18"},{"body":{"nodeType":"YulBlock","src":"13170:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13187:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13190:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13180:6:18"},"nodeType":"YulFunctionCall","src":"13180:88:18"},"nodeType":"YulExpressionStatement","src":"13180:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13284:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13287:4:18","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13277:6:18"},"nodeType":"YulFunctionCall","src":"13277:15:18"},"nodeType":"YulExpressionStatement","src":"13277:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13308:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13311:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13301:6:18"},"nodeType":"YulFunctionCall","src":"13301:15:18"},"nodeType":"YulExpressionStatement","src":"13301:15:18"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"13142:180:18"},{"body":{"nodeType":"YulBlock","src":"13356:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13373:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13376:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13366:6:18"},"nodeType":"YulFunctionCall","src":"13366:88:18"},"nodeType":"YulExpressionStatement","src":"13366:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13470:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13473:4:18","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13463:6:18"},"nodeType":"YulFunctionCall","src":"13463:15:18"},"nodeType":"YulExpressionStatement","src":"13463:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13494:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13497:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13487:6:18"},"nodeType":"YulFunctionCall","src":"13487:15:18"},"nodeType":"YulExpressionStatement","src":"13487:15:18"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"13328:180:18"},{"body":{"nodeType":"YulBlock","src":"13555:141:18","statements":[{"nodeType":"YulAssignment","src":"13565:24:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13587:1:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"13570:16:18"},"nodeType":"YulFunctionCall","src":"13570:19:18"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"13565:1:18"}]},{"nodeType":"YulAssignment","src":"13598:24:18","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13620:1:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"13603:16:18"},"nodeType":"YulFunctionCall","src":"13603:19:18"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"13598:1:18"}]},{"body":{"nodeType":"YulBlock","src":"13644:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"13646:16:18"},"nodeType":"YulFunctionCall","src":"13646:18:18"},"nodeType":"YulExpressionStatement","src":"13646:18:18"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13641:1:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13634:6:18"},"nodeType":"YulFunctionCall","src":"13634:9:18"},"nodeType":"YulIf","src":"13631:35:18"},{"nodeType":"YulAssignment","src":"13676:14:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13685:1:18"},{"name":"y","nodeType":"YulIdentifier","src":"13688:1:18"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"13681:3:18"},"nodeType":"YulFunctionCall","src":"13681:9:18"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"13676:1:18"}]}]},"name":"checked_div_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13544:1:18","type":""},{"name":"y","nodeType":"YulTypedName","src":"13547:1:18","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"13553:1:18","type":""}],"src":"13514:182:18"},{"body":{"nodeType":"YulBlock","src":"13808:119:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"13830:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"13838:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13826:3:18"},"nodeType":"YulFunctionCall","src":"13826:14:18"},{"hexValue":"6665652072617465206d757374206265206c657373206f7220657175616c2074","kind":"string","nodeType":"YulLiteral","src":"13842:34:18","type":"","value":"fee rate must be less or equal t"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13819:6:18"},"nodeType":"YulFunctionCall","src":"13819:58:18"},"nodeType":"YulExpressionStatement","src":"13819:58:18"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"13898:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"13906:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13894:3:18"},"nodeType":"YulFunctionCall","src":"13894:15:18"},{"hexValue":"68616e203525","kind":"string","nodeType":"YulLiteral","src":"13911:8:18","type":"","value":"han 5%"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13887:6:18"},"nodeType":"YulFunctionCall","src":"13887:33:18"},"nodeType":"YulExpressionStatement","src":"13887:33:18"}]},"name":"store_literal_in_memory_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"13800:6:18","type":""}],"src":"13702:225:18"},{"body":{"nodeType":"YulBlock","src":"14079:220:18","statements":[{"nodeType":"YulAssignment","src":"14089:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14155:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"14160:2:18","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14096:58:18"},"nodeType":"YulFunctionCall","src":"14096:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14089:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14261:3:18"}],"functionName":{"name":"store_literal_in_memory_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef","nodeType":"YulIdentifier","src":"14172:88:18"},"nodeType":"YulFunctionCall","src":"14172:93:18"},"nodeType":"YulExpressionStatement","src":"14172:93:18"},{"nodeType":"YulAssignment","src":"14274:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14285:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"14290:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14281:3:18"},"nodeType":"YulFunctionCall","src":"14281:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14274:3:18"}]}]},"name":"abi_encode_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14067:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14075:3:18","type":""}],"src":"13933:366:18"},{"body":{"nodeType":"YulBlock","src":"14476:248:18","statements":[{"nodeType":"YulAssignment","src":"14486:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14498:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"14509:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14494:3:18"},"nodeType":"YulFunctionCall","src":"14494:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14486:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14533:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"14544:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14529:3:18"},"nodeType":"YulFunctionCall","src":"14529:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14552:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"14558:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14548:3:18"},"nodeType":"YulFunctionCall","src":"14548:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14522:6:18"},"nodeType":"YulFunctionCall","src":"14522:47:18"},"nodeType":"YulExpressionStatement","src":"14522:47:18"},{"nodeType":"YulAssignment","src":"14578:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14712:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14586:124:18"},"nodeType":"YulFunctionCall","src":"14586:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14578:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14456:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14471:4:18","type":""}],"src":"14305:419:18"},{"body":{"nodeType":"YulBlock","src":"14836:63:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"14858:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"14866:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14854:3:18"},"nodeType":"YulFunctionCall","src":"14854:14:18"},{"hexValue":"6e6f6e6578697374656e742072656c61796572","kind":"string","nodeType":"YulLiteral","src":"14870:21:18","type":"","value":"nonexistent relayer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14847:6:18"},"nodeType":"YulFunctionCall","src":"14847:45:18"},"nodeType":"YulExpressionStatement","src":"14847:45:18"}]},"name":"store_literal_in_memory_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"14828:6:18","type":""}],"src":"14730:169:18"},{"body":{"nodeType":"YulBlock","src":"15051:220:18","statements":[{"nodeType":"YulAssignment","src":"15061:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15127:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"15132:2:18","type":"","value":"19"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15068:58:18"},"nodeType":"YulFunctionCall","src":"15068:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15061:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15233:3:18"}],"functionName":{"name":"store_literal_in_memory_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3","nodeType":"YulIdentifier","src":"15144:88:18"},"nodeType":"YulFunctionCall","src":"15144:93:18"},"nodeType":"YulExpressionStatement","src":"15144:93:18"},{"nodeType":"YulAssignment","src":"15246:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15257:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"15262:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15253:3:18"},"nodeType":"YulFunctionCall","src":"15253:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15246:3:18"}]}]},"name":"abi_encode_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"15039:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"15047:3:18","type":""}],"src":"14905:366:18"},{"body":{"nodeType":"YulBlock","src":"15448:248:18","statements":[{"nodeType":"YulAssignment","src":"15458:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15470:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"15481:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15466:3:18"},"nodeType":"YulFunctionCall","src":"15466:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15458:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15505:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"15516:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15501:3:18"},"nodeType":"YulFunctionCall","src":"15501:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15524:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"15530:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15520:3:18"},"nodeType":"YulFunctionCall","src":"15520:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15494:6:18"},"nodeType":"YulFunctionCall","src":"15494:47:18"},"nodeType":"YulExpressionStatement","src":"15494:47:18"},{"nodeType":"YulAssignment","src":"15550:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15684:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15558:124:18"},"nodeType":"YulFunctionCall","src":"15558:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15550:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15428:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15443:4:18","type":""}],"src":"15277:419:18"},{"body":{"nodeType":"YulBlock","src":"15808:58:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"15830:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"15838:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15826:3:18"},"nodeType":"YulFunctionCall","src":"15826:14:18"},{"hexValue":"72656c6179657220657869737473","kind":"string","nodeType":"YulLiteral","src":"15842:16:18","type":"","value":"relayer exists"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15819:6:18"},"nodeType":"YulFunctionCall","src":"15819:40:18"},"nodeType":"YulExpressionStatement","src":"15819:40:18"}]},"name":"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"15800:6:18","type":""}],"src":"15702:164:18"},{"body":{"nodeType":"YulBlock","src":"16018:220:18","statements":[{"nodeType":"YulAssignment","src":"16028:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16094:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"16099:2:18","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16035:58:18"},"nodeType":"YulFunctionCall","src":"16035:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"16028:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16200:3:18"}],"functionName":{"name":"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1","nodeType":"YulIdentifier","src":"16111:88:18"},"nodeType":"YulFunctionCall","src":"16111:93:18"},"nodeType":"YulExpressionStatement","src":"16111:93:18"},{"nodeType":"YulAssignment","src":"16213:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"16224:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"16229:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16220:3:18"},"nodeType":"YulFunctionCall","src":"16220:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"16213:3:18"}]}]},"name":"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"16006:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"16014:3:18","type":""}],"src":"15872:366:18"},{"body":{"nodeType":"YulBlock","src":"16415:248:18","statements":[{"nodeType":"YulAssignment","src":"16425:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16437:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"16448:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16433:3:18"},"nodeType":"YulFunctionCall","src":"16433:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16425:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16472:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"16483:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16468:3:18"},"nodeType":"YulFunctionCall","src":"16468:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16491:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"16497:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16487:3:18"},"nodeType":"YulFunctionCall","src":"16487:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16461:6:18"},"nodeType":"YulFunctionCall","src":"16461:47:18"},"nodeType":"YulExpressionStatement","src":"16461:47:18"},{"nodeType":"YulAssignment","src":"16517:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"16651:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"16525:124:18"},"nodeType":"YulFunctionCall","src":"16525:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16517:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16395:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16410:4:18","type":""}],"src":"16244:419:18"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function validator_revert_t_uint32(value) {\n        if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint32(value)\n    }\n\n    function abi_decode_tuple_t_uint32(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint128(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n    }\n\n    function validator_revert_t_uint128(value) {\n        if iszero(eq(value, cleanup_t_uint128(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint128(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint128(value)\n    }\n\n    // struct Config.Config_\n    function abi_decode_t_struct$_Config__$2546_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // depositBaseFee\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_uint128(add(headStart, offset), end))\n\n        }\n\n        {\n            // depositFeeRate\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_uint32(add(headStart, offset), end))\n\n        }\n\n        {\n            // finalizeTxGas\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_uint32(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_Config__$2546_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_Config__$2546_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_t_uint128_to_t_uint128_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint128(value))\n    }\n\n    function abi_encode_t_uint32_to_t_uint32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function abi_encode_tuple_t_uint128_t_uint32_t_uint32__to_t_uint128_t_uint32_t_uint32__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_uint128_to_t_uint128_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_uint128(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b(memPtr) {\n\n        mstore(add(memPtr, 0), \"not paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 10)\n        store_literal_in_memory_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n        mstore(add(memPtr, 32), \"new owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n        store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b(memPtr) {\n\n        mstore(add(memPtr, 0), \"already paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n        store_literal_in_memory_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function shift_right_0_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(0, value)\n\n    }\n\n    function cleanup_from_storage_t_uint128(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n    }\n\n    function extract_from_storage_value_offset_0t_uint128(slot_value) -> value {\n        value := cleanup_from_storage_t_uint128(shift_right_0_unsigned(slot_value))\n    }\n\n    function abi_encode_t_uint128_to_t_uint128(value, pos) {\n        mstore(pos, cleanup_t_uint128(value))\n    }\n\n    function shift_right_128_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(128, value)\n\n    }\n\n    function cleanup_from_storage_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function extract_from_storage_value_offset_16t_uint32(slot_value) -> value {\n        value := cleanup_from_storage_t_uint32(shift_right_128_unsigned(slot_value))\n    }\n\n    function abi_encode_t_uint32_to_t_uint32(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function shift_right_160_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(160, value)\n\n    }\n\n    function extract_from_storage_value_offset_20t_uint32(slot_value) -> value {\n        value := cleanup_from_storage_t_uint32(shift_right_160_unsigned(slot_value))\n    }\n\n    // struct Config.Config_ -> struct Config.Config_\n    function abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack(value, pos)  {\n        let tail := add(pos, 0x60)\n        let slotValue := 0\n\n        {\n            // depositBaseFee\n            slotValue := sload(add(value, 0x00))\n            let memberValue0 := extract_from_storage_value_offset_0t_uint128(slotValue)\n            abi_encode_t_uint128_to_t_uint128(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // depositFeeRate\n\n            let memberValue0 := extract_from_storage_value_offset_16t_uint32(slotValue)\n            abi_encode_t_uint32_to_t_uint32(memberValue0, add(pos, 0x20))\n        }\n\n        {\n            // finalizeTxGas\n\n            let memberValue0 := extract_from_storage_value_offset_20t_uint32(slotValue)\n            abi_encode_t_uint32_to_t_uint32(memberValue0, add(pos, 0x40))\n        }\n\n    }\n\n    function abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint32(x, y) -> r {\n        x := cleanup_t_uint32(x)\n        y := cleanup_t_uint32(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function store_literal_in_memory_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef(memPtr) {\n\n        mstore(add(memPtr, 0), \"fee rate must be less or equal t\")\n\n        mstore(add(memPtr, 32), \"han 5%\")\n\n    }\n\n    function abi_encode_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3(memPtr) {\n\n        mstore(add(memPtr, 0), \"nonexistent relayer\")\n\n    }\n\n    function abi_encode_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n        store_literal_in_memory_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1(memPtr) {\n\n        mstore(add(memPtr, 0), \"relayer exists\")\n\n    }\n\n    function abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n        store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n}\n","id":18,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061010b5760003560e01c806379502c55116100a2578063c8dc8a0c11610071578063c8dc8a0c14610220578063cb11b9f414610233578063dd39f00d1461024a578063e30c39781461025d578063f2fde38b1461026e57600080fd5b806379502c55146101bb57806379ba5097146101f65780638456cb59146101fe5780638da5cb5b1461020657600080fd5b80635300f841116100de5780635300f841146101535780635c975abb1461018c57806360f0a5ac146101a0578063715018a6146101b357600080fd5b806310c58d65146101105780631251d14e1461012557806328ad6c16146101385780633f4ba83a1461014b575b600080fd5b61012361011e36600461076c565b610281565b005b61012361013336600461076c565b610295565b61012361014636600461086c565b6102a6565b6101236102b7565b6101766101613660046108b2565b60006020819052908152604090205460ff1681565b60405161018391906108dd565b60405180910390f35b60035461017690600160a01b900460ff1681565b6101236101ae3660046108b2565b610300565b610123610311565b6001546101e7906001600160801b0381169063ffffffff600160801b8204811691600160a01b90041683565b60405161018393929190610906565b610123610325565b61012361035a565b6002546001600160a01b03165b6040516101839190610937565b61012361022e366004610945565b6103a1565b61023d620f424081565b6040516101839190610966565b6101236102583660046108b2565b6103b2565b6003546001600160a01b0316610213565b61012361027c3660046108b2565b6103c3565b610289610434565b6102928161045e565b50565b61029d610434565b610292816104a3565b6102ae610434565b61029281610516565b6102bf610434565b600354600160a01b900460ff166102f15760405162461bcd60e51b81526004016102e890610998565b60405180910390fd5b6003805460ff60a01b19169055565b610308610434565b61029281610586565b610319610434565b6103236000610611565b565b60035433906001600160a01b031681146103515760405162461bcd60e51b81526004016102e8906109f1565b61029281610611565b610362610434565b600354600160a01b900460ff161561038c5760405162461bcd60e51b81526004016102e890610a26565b6003805460ff60a01b1916600160a01b179055565b6103a9610434565b6102928161062a565b6103ba610434565b6102928161066a565b6103cb610434565b600380546001600160a01b0383166001600160a01b031990911681179091556103fc6002546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6002546001600160a01b031633146103235760405162461bcd60e51b81526004016102e890610a68565b6001805463ffffffff60a01b1916600160a01b63ffffffff841602178155604051600080516020610c048339815191529161049891610aff565b60405180910390a150565b6104b16014620f4240610b23565b63ffffffff168163ffffffff1611156104dc5760405162461bcd60e51b81526004016102e890610b84565b6001805463ffffffff60801b1916600160801b63ffffffff841602178155604051600080516020610c048339815191529161049891610aff565b80516001805460208401516040808601516001600160801b039095166001600160a01b031990931692909217600160801b63ffffffff928316021763ffffffff60a01b1916600160a01b91909416029290921781559051600080516020610c048339815191529161049891610aff565b6001600160a01b03811660009081526020819052604090205460ff166105be5760405162461bcd60e51b81526004016102e890610bbe565b6001600160a01b03811660009081526020819052604090819020805460ff19166001179055517f370e7a3077485fd8cef64916374045a1bfae1d0984617c2833e614ed87b9d0df90610498908390610937565b600380546001600160a01b0319169055610292816106f6565b600180546fffffffffffffffffffffffffffffffff19166001600160801b038316178155604051600080516020610c048339815191529161049891610aff565b6001600160a01b03811660009081526020819052604090205460ff16156106a35760405162461bcd60e51b81526004016102e890610bf3565b6001600160a01b03811660009081526020819052604090819020805460ff19166001179055517f7c363f8df6087ba61be7d84b7a936d5eb39ebd1ab56dd8188a27a60e3b301a2790610498908390610937565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63ffffffff81165b811461029257600080fd5b803561076681610748565b92915050565b60006020828403121561078157610781600080fd5b600061078d848461075b565b949350505050565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156107d1576107d1610795565b6040525050565b60006107e360405190565b90506107ef82826107ab565b919050565b6001600160801b038116610750565b8035610766816107f4565b60006060828403121561082357610823600080fd5b61082d60606107d8565b9050600061083b8484610803565b825250602061084c8484830161075b565b60208301525060406108608482850161075b565b60408301525092915050565b60006060828403121561088157610881600080fd5b600061078d848461080e565b60006001600160a01b038216610766565b6107508161088d565b80356107668161089e565b6000602082840312156108c7576108c7600080fd5b600061078d84846108a7565b8015155b82525050565b6020810161076682846108d3565b6001600160801b0381166108d7565b63ffffffff81166108d7565b6060810161091482866108eb565b61092160208301856108fa565b61078d60408301846108fa565b6108d78161088d565b60208101610766828461092e565b60006020828403121561095a5761095a600080fd5b600061078d8484610803565b6020810161076682846108fa565b600a8152600060208201691b9bdd081c185d5cd95960b21b815291505b5060200190565b6020808252810161076681610974565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b60208082528101610766816109a8565b600e81526000602082016d185b1c9958591e481c185d5cd95960921b81529150610991565b6020808252810161076681610a01565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000610991565b6020808252810161076681610a36565b60006001600160801b038216610766565b6000610766610a988360801c90565b63ffffffff1690565b6000610766610a988360a01c90565b80546060830190610ac081610a78565b610aca85826108eb565b50610ad481610a89565b610ae160208601826108fa565b50610aeb81610aa1565b610af860408601826108fa565b5050505050565b606081016107668284610ab0565b634e487b7160e01b600052601260045260246000fd5b63ffffffff9182169116600082610b3c57610b3c610b0d565b500490565b602681526000602082017f6665652072617465206d757374206265206c657373206f7220657175616c207481526568616e20352560d01b602082015291506109ea565b6020808252810161076681610b41565b60138152600060208201723737b732bc34b9ba32b73a103932b630bcb2b960691b81529150610991565b6020808252810161076681610b94565b600e81526000602082016d72656c617965722065786973747360901b81529150610991565b6020808252810161076681610bce56fec3b5a50e47b6b36cbfdf9f2816f54bcadaa46c6d4469b530f5e1fd8cc70e8fd8a26469706673582212200c8a3ff6a53e91a1870eebd914c8f994f4b819040d0fc1dadbc27b634f6c0adc64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x10B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79502C55 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xC8DC8A0C GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC8DC8A0C EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0xCB11B9F4 EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0xDD39F00D EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x25D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x26E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79502C55 EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x206 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5300F841 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0x5300F841 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x60F0A5AC EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10C58D65 EQ PUSH2 0x110 JUMPI DUP1 PUSH4 0x1251D14E EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0x28AD6C16 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x14B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x123 PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0x76C JUMP JUMPDEST PUSH2 0x281 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x123 PUSH2 0x133 CALLDATASIZE PUSH1 0x4 PUSH2 0x76C JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x146 CALLDATASIZE PUSH1 0x4 PUSH2 0x86C JUMP JUMPDEST PUSH2 0x2A6 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x2B7 JUMP JUMPDEST PUSH2 0x176 PUSH2 0x161 CALLDATASIZE PUSH1 0x4 PUSH2 0x8B2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x8DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x176 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x1AE CALLDATASIZE PUSH1 0x4 PUSH2 0x8B2 JUMP JUMPDEST PUSH2 0x300 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x311 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x1E7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x80 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV AND DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x906 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x325 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x35A JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x22E CALLDATASIZE PUSH1 0x4 PUSH2 0x945 JUMP JUMPDEST PUSH2 0x3A1 JUMP JUMPDEST PUSH2 0x23D PUSH3 0xF4240 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x966 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x258 CALLDATASIZE PUSH1 0x4 PUSH2 0x8B2 JUMP JUMPDEST PUSH2 0x3B2 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x213 JUMP JUMPDEST PUSH2 0x123 PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x8B2 JUMP JUMPDEST PUSH2 0x3C3 JUMP JUMPDEST PUSH2 0x289 PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x45E JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x29D PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x4A3 JUMP JUMPDEST PUSH2 0x2AE PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x516 JUMP JUMPDEST PUSH2 0x2BF PUSH2 0x434 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2F1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0x998 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x308 PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x586 JUMP JUMPDEST PUSH2 0x319 PUSH2 0x434 JUMP JUMPDEST PUSH2 0x323 PUSH1 0x0 PUSH2 0x611 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x3 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x351 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0x9F1 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x611 JUMP JUMPDEST PUSH2 0x362 PUSH2 0x434 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x38C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0xA26 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3A9 PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x62A JUMP JUMPDEST PUSH2 0x3BA PUSH2 0x434 JUMP JUMPDEST PUSH2 0x292 DUP2 PUSH2 0x66A JUMP JUMPDEST PUSH2 0x3CB PUSH2 0x434 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0x3FC PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x323 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0xA68 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH4 0xFFFFFFFF DUP5 AND MUL OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xC04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x498 SWAP2 PUSH2 0xAFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x4B1 PUSH1 0x14 PUSH3 0xF4240 PUSH2 0xB23 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0x4DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0xB84 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x80 SHL NOT AND PUSH1 0x1 PUSH1 0x80 SHL PUSH4 0xFFFFFFFF DUP5 AND MUL OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xC04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x498 SWAP2 PUSH2 0xAFF JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x80 SHL PUSH4 0xFFFFFFFF SWAP3 DUP4 AND MUL OR PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL SWAP2 SWAP1 SWAP5 AND MUL SWAP3 SWAP1 SWAP3 OR DUP2 SSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xC04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x498 SWAP2 PUSH2 0xAFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x370E7A3077485FD8CEF64916374045A1BFAE1D0984617C2833E614ED87B9D0DF SWAP1 PUSH2 0x498 SWAP1 DUP4 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x292 DUP2 PUSH2 0x6F6 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0xC04 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x498 SWAP2 PUSH2 0xAFF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x6A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E8 SWAP1 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x7C363F8DF6087BA61BE7D84B7A936D5EB39EBD1AB56DD8188A27A60E3B301A27 SWAP1 PUSH2 0x498 SWAP1 DUP4 SWAP1 PUSH2 0x937 JUMP JUMPDEST PUSH1 0x2 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 PUSH4 0xFFFFFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x292 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x766 DUP2 PUSH2 0x748 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x781 JUMPI PUSH2 0x781 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78D DUP5 DUP5 PUSH2 0x75B JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x7D1 JUMPI PUSH2 0x7D1 PUSH2 0x795 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7E3 PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x7EF DUP3 DUP3 PUSH2 0x7AB JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x750 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x766 DUP2 PUSH2 0x7F4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x823 JUMPI PUSH2 0x823 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x82D PUSH1 0x60 PUSH2 0x7D8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x83B DUP5 DUP5 PUSH2 0x803 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x84C DUP5 DUP5 DUP4 ADD PUSH2 0x75B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x860 DUP5 DUP3 DUP6 ADD PUSH2 0x75B JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x881 JUMPI PUSH2 0x881 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78D DUP5 DUP5 PUSH2 0x80E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x766 JUMP JUMPDEST PUSH2 0x750 DUP2 PUSH2 0x88D JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x766 DUP2 PUSH2 0x89E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8C7 JUMPI PUSH2 0x8C7 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78D DUP5 DUP5 PUSH2 0x8A7 JUMP JUMPDEST DUP1 ISZERO ISZERO JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x766 DUP3 DUP5 PUSH2 0x8D3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x8D7 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x8D7 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x914 DUP3 DUP7 PUSH2 0x8EB JUMP JUMPDEST PUSH2 0x921 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x8FA JUMP JUMPDEST PUSH2 0x78D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8FA JUMP JUMPDEST PUSH2 0x8D7 DUP2 PUSH2 0x88D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x766 DUP3 DUP5 PUSH2 0x92E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x95A JUMPI PUSH2 0x95A PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x78D DUP5 DUP5 PUSH2 0x803 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x766 DUP3 DUP5 PUSH2 0x8FA JUMP JUMPDEST PUSH1 0xA DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH10 0x1B9BDD081C185D5CD959 PUSH1 0xB2 SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0x974 JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0x9A8 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x185B1C9958591E481C185D5CD959 PUSH1 0x92 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x991 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x991 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0xA36 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 AND PUSH2 0x766 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xA98 DUP4 PUSH1 0x80 SHR SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x766 PUSH2 0xA98 DUP4 PUSH1 0xA0 SHR SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0xAC0 DUP2 PUSH2 0xA78 JUMP JUMPDEST PUSH2 0xACA DUP6 DUP3 PUSH2 0x8EB JUMP JUMPDEST POP PUSH2 0xAD4 DUP2 PUSH2 0xA89 JUMP JUMPDEST PUSH2 0xAE1 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x8FA JUMP JUMPDEST POP PUSH2 0xAEB DUP2 PUSH2 0xAA1 JUMP JUMPDEST PUSH2 0xAF8 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x8FA JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x766 DUP3 DUP5 PUSH2 0xAB0 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0xFFFFFFFF SWAP2 DUP3 AND SWAP2 AND PUSH1 0x0 DUP3 PUSH2 0xB3C JUMPI PUSH2 0xB3C PUSH2 0xB0D JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x6665652072617465206D757374206265206C657373206F7220657175616C2074 DUP2 MSTORE PUSH6 0x68616E203525 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x9EA JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0xB41 JUMP JUMPDEST PUSH1 0x13 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH19 0x3737B732BC34B9BA32B73A103932B630BCB2B9 PUSH1 0x69 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x991 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0xB94 JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x72656C6179657220657869737473 PUSH1 0x90 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x991 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x766 DUP2 PUSH2 0xBCE JUMP INVALID 0xC3 0xB5 0xA5 0xE SELFBALANCE 0xB6 0xB3 PUSH13 0xBFDF9F2816F54BCADAA46C6D44 PUSH10 0xB530F5E1FD8CC70E8FD8 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC DUP11 EXTCODEHASH 0xF6 0xA5 RETURNDATACOPY SWAP2 LOG1 DUP8 0xE 0xEB 0xD9 EQ 0xC8 0xF9 SWAP5 DELEGATECALL 0xB8 NOT DIV 0xD 0xF 0xC1 0xDA 0xDB 0xC2 PUSH28 0x634F6C0ADC64736F6C63430008140033000000000000000000000000 ","sourceMap":"165:1090:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1137:115;;;;;;:::i;:::-;;:::i;:::-;;1015:119;;;;;;:::i;:::-;;:::i;794:95::-;;;;;;:::i;:::-;;:::i;518:93::-;;;:::i;79:40:17:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;222:18:15;;;;;-1:-1:-1;;;222:18:15;;;;;;701:90;;;;;;:::i;:::-;;:::i;1824:101:0:-;;;:::i;175:21:14:-;;;;;-1:-1:-1;;;;;175:21:14;;;;-1:-1:-1;;;175:21:14;;;;;-1:-1:-1;;;175:21:14;;;;;;;;;;;;;;:::i;1734:212:1:-;;;:::i;420:95:15:-;;;:::i;1201:85:0:-;1273:6;;-1:-1:-1;;;;;1273:6:0;1201:85;;;;;;;:::i;892:120:15:-;;;;;;:::i;:::-;;:::i;200:39:14:-;;232:7;200:39;;;;;;;;;:::i;614:84:15:-;;;;;;:::i;:::-;;:::i;847:99:1:-;926:13;;-1:-1:-1;;;;;926:13:1;847:99;;1139:178;;;;;;:::i;:::-;;:::i;1137:115:15:-;1094:13:0;:11;:13::i;:::-;1212:36:15::1;1233:14;1212:20;:36::i;:::-;1137:115:::0;:::o;1015:119::-;1094:13:0;:11;:13::i;:::-;1092:38:15::1;1114:15;1092:21;:38::i;794:95::-:0;1094:13:0;:11;:13::i;:::-;863:22:15::1;877:7;863:13;:22::i;518:93::-:0;1094:13:0;:11;:13::i;:::-;568:6:15::1;::::0;-1:-1:-1;;;568:6:15;::::1;;;560:29;;;;-1:-1:-1::0;;;560:29:15::1;;;;;;;:::i;:::-;;;;;;;;;593:6;:14:::0;;-1:-1:-1;;;;593:14:15::1;::::0;;518:93::o;701:90::-;1094:13:0;:11;:13::i;:::-;764:23:15::1;779:7;764:14;:23::i;1824:101:0:-:0;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1734:212:1:-;926:13;;734:10:5;;-1:-1:-1;;;;;926:13:1;1833:24;;1825:78;;;;-1:-1:-1;;;1825:78:1;;;;;;;:::i;:::-;1913:26;1932:6;1913:18;:26::i;420:95:15:-;1094:13:0;:11;:13::i;:::-;469:6:15::1;::::0;-1:-1:-1;;;469:6:15;::::1;;;468:7;460:34;;;;-1:-1:-1::0;;;460:34:15::1;;;;;;;:::i;:::-;498:6;:13:::0;;-1:-1:-1;;;;498:13:15::1;-1:-1:-1::0;;;498:13:15::1;::::0;;420:95::o;892:120::-;1094:13:0;:11;:13::i;:::-;970:38:15::1;992:15;970:21;:38::i;614:84::-:0;1094:13:0;:11;:13::i;:::-;674:20:15::1;686:7;674:11;:20::i;1139:178:1:-:0;1094:13:0;:11;:13::i;:::-;1228::1::1;:24:::0;;-1:-1:-1;;;;;1228:24:1;::::1;-1:-1:-1::0;;;;;;1228:24:1;;::::1;::::0;::::1;::::0;;;1292:7:::1;1273:6:0::0;;-1:-1:-1;;;;;1273:6:0;;1201:85;1292:7:1::1;-1:-1:-1::0;;;;;1267:43:1::1;;;;;;;;;;;1139:178:::0;:::o;1359:130:0:-;1273:6;;-1:-1:-1;;;;;1273:6:0;734:10:5;1422:23:0;1414:68;;;;-1:-1:-1;;;1414:68:0;;;;;;;:::i;767:137:14:-;833:6;:37;;-1:-1:-1;;;;833:37:14;-1:-1:-1;;;833:37:14;;;;;;;880:20;;-1:-1:-1;;;;;;;;;;;880:20:14;;;;:::i;:::-;;;;;;;;767:137;:::o;538:226::-;633:11;642:2;232:7;633:11;:::i;:::-;614:30;;:15;:30;;;;606:81;;;;-1:-1:-1;;;606:81:14;;;;;;;:::i;:::-;691:6;:39;;-1:-1:-1;;;;691:39:14;-1:-1:-1;;;691:39:14;;;;;;;740:20;;-1:-1:-1;;;;;;;;;;;740:20:14;;;;:::i;281:109::-;341:16;;:6;:16;;;;;;;;;;;-1:-1:-1;;;;;341:16:14;;;-1:-1:-1;;;;;;341:16:14;;;;;;;-1:-1:-1;;;341:16:14;;;;;;-1:-1:-1;;;;341:16:14;-1:-1:-1;;;341:16:14;;;;;;;;;;;366:20;;-1:-1:-1;;;;;;;;;;;366:20:14;;;;:::i;453:166:17:-;-1:-1:-1;;;;;515:17:17;;:8;:17;;;;;;;;;;;;;507:49;;;;-1:-1:-1;;;507:49:17;;;;;;;:::i;:::-;-1:-1:-1;;;;;560:17:17;;:8;:17;;;;;;;;;;;;:24;;-1:-1:-1;;560:24:17;580:4;560:24;;;593:22;;;;;569:7;;593:22;:::i;1501:153:1:-;1590:13;1583:20;;-1:-1:-1;;;;;;1583:20:1;;;1613:34;1638:8;1613:24;:34::i;393:142:14:-;462:6;:39;;-1:-1:-1;;462:39:14;-1:-1:-1;;;;;462:39:14;;;;;511:20;;-1:-1:-1;;;;;;;;;;;511:20:14;;;;:::i;294:156:17:-;-1:-1:-1;;;;;354:17:17;;:8;:17;;;;;;;;;;;;;353:18;345:45;;;;-1:-1:-1;;;345:45:17;;;;;;;:::i;:::-;-1:-1:-1;;;;;394:17:17;;:8;:17;;;;;;;;;;;;:24;;-1:-1:-1;;394:24:17;414:4;394:24;;;427:19;;;;;403:7;;427:19;:::i;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;433:120:18:-;410:10;399:22;;505:23;498:5;495:34;485:62;;543:1;540;533:12;559:137;629:20;;658:32;629:20;658:32;:::i;:::-;559:137;;;;:::o;702:327::-;760:6;809:2;797:9;788:7;784:23;780:32;777:119;;;815:79;165:1090:15;;;815:79:18;935:1;960:52;1004:7;984:9;960:52;:::i;:::-;950:62;702:327;-1:-1:-1;;;;702:327:18:o;1266:180::-;-1:-1:-1;;;1311:1:18;1304:88;1411:4;1408:1;1401:15;1435:4;1432:1;1425:15;1452:281;-1:-1:-1;;1250:2:18;1230:14;;1226:28;1527:6;1523:40;1665:6;1653:10;1650:22;1629:18;1617:10;1614:34;1611:62;1608:88;;;1676:18;;:::i;:::-;1712:2;1705:22;-1:-1:-1;;1452:281:18:o;1739:129::-;1773:6;1800:20;73:2;67:9;;7:75;1800:20;1790:30;;1829:33;1857:4;1849:6;1829:33;:::i;:::-;1739:129;;;:::o;2121:122::-;-1:-1:-1;;;;;2063:46:18;;2194:24;1997:118;2249:139;2320:20;;2349:33;2320:20;2349:33;:::i;2423:762::-;2497:5;2541:4;2529:9;2524:3;2520:19;2516:30;2513:117;;;2549:79;165:1090:15;;;2549:79:18;2648:21;2664:4;2648:21;:::i;:::-;2639:30;-1:-1:-1;2738:1:18;2778:49;2823:3;2803:9;2778:49;:::i;:::-;2753:75;;-1:-1:-1;2908:2:18;2949:48;2993:3;2969:22;;;2949:48;:::i;:::-;2942:4;2935:5;2931:16;2924:74;2849:160;3077:2;3118:48;3162:3;3153:6;3142:9;3138:22;3118:48;:::i;:::-;3111:4;3104:5;3100:16;3093:74;3019:159;2423:762;;;;:::o;3191:379::-;3275:6;3324:2;3312:9;3303:7;3299:23;3295:32;3292:119;;;3330:79;165:1090:15;;;3330:79:18;3450:1;3475:78;3545:7;3525:9;3475:78;:::i;3708:96::-;3745:7;-1:-1:-1;;;;;3642:54:18;;3774:24;3576:126;3810:122;3883:24;3901:5;3883:24;:::i;3938:139::-;4009:20;;4038:33;4009:20;4038:33;:::i;4083:329::-;4142:6;4191:2;4179:9;4170:7;4166:23;4162:32;4159:119;;;4197:79;165:1090:15;;;4197:79:18;4317:1;4342:53;4387:7;4367:9;4342:53;:::i;4514:109::-;4488:13;;4481:21;4595;4590:3;4583:34;4514:109;;:::o;4629:210::-;4754:2;4739:18;;4767:65;4743:9;4805:6;4767:65;:::i;4845:118::-;-1:-1:-1;;;;;2063:46:18;;4932:24;1997:118;4969:115;410:10;399:22;;5054:23;334:93;5090:434;5273:2;5258:18;;5286:71;5262:9;5330:6;5286:71;:::i;:::-;5367:70;5433:2;5422:9;5418:18;5409:6;5367:70;:::i;:::-;5447;5513:2;5502:9;5498:18;5489:6;5447:70;:::i;5530:118::-;5617:24;5635:5;5617:24;:::i;5654:222::-;5785:2;5770:18;;5798:71;5774:9;5842:6;5798:71;:::i;5882:329::-;5941:6;5990:2;5978:9;5969:7;5965:23;5961:32;5958:119;;;5996:79;165:1090:15;;;5996:79:18;6116:1;6141:53;6186:7;6166:9;6141:53;:::i;6217:218::-;6346:2;6331:18;;6359:69;6335:9;6401:6;6359:69;:::i;6782:366::-;7009:2;6547:19;;6924:3;6599:4;6590:14;;-1:-1:-1;;;6733:36:18;;6938:74;-1:-1:-1;7021:93:18;-1:-1:-1;7139:2:18;7130:12;;6782:366::o;7154:419::-;7358:2;7371:47;;;7343:18;;7435:131;7343:18;7435:131;:::i;7813:366::-;8040:2;6547:19;;7955:3;6599:4;6590:14;;7719:34;7696:58;;-1:-1:-1;;;7783:2:18;7771:15;;7764:36;7969:74;-1:-1:-1;8052:93:18;-1:-1:-1;8170:2:18;8161:12;;7813:366::o;8185:419::-;8389:2;8402:47;;;8374:18;;8466:131;8374:18;8466:131;:::i;8780:366::-;9007:2;6547:19;;8922:3;6599:4;6590:14;;-1:-1:-1;;;8727:40:18;;8936:74;-1:-1:-1;9019:93:18;8610:164;9152:419;9356:2;9369:47;;;9341:18;;9433:131;9341:18;9433:131;:::i;9765:366::-;9992:2;6547:19;;;9717:34;6590:14;;9694:58;;;9907:3;10004:93;9577:182;10137:419;10341:2;10354:47;;;10326:18;;10418:131;10326:18;10418:131;:::i;10807:166::-;10876:5;-1:-1:-1;;;;;2063:46:18;;10901:66;1997:118;11317:167;11386:5;11411:67;11441:36;11466:10;11181:3;11177:15;;11093:106;11441:36;410:10;399:22;;334:93;11713:167;11782:5;11807:67;11837:36;11862:10;11689:3;11685:15;;11601:106;11940:874;12183:23;;12084:4;12075:14;;;12239:55;12183:23;12239:55;:::i;:::-;12307:63;12359:3;12341:12;12307:63;:::i;:::-;12126:254;12455:55;12500:9;12455:55;:::i;:::-;12523:61;12578:4;12573:3;12569:14;12555:12;12523:61;:::i;:::-;12390:204;12668:55;12713:9;12668:55;:::i;:::-;12736:61;12791:4;12786:3;12782:14;12768:12;12736:61;:::i;:::-;12604:203;12053:761;;11940:874;;:::o;12820:316::-;12998:2;12983:18;;13011:118;12987:9;13102:6;13011:118;:::i;13142:180::-;-1:-1:-1;;;13187:1:18;13180:88;13287:4;13284:1;13277:15;13311:4;13308:1;13301:15;13514:182;410:10;399:22;;;;;13553:1;399:22;13631:35;;13646:18;;:::i;:::-;-1:-1:-1;13681:9:18;;13514:182::o;13933:366::-;14160:2;6547:19;;14075:3;6599:4;6590:14;;13842:34;13819:58;;-1:-1:-1;;;13906:2:18;13894:15;;13887:33;14089:74;-1:-1:-1;14172:93:18;13702:225;14305:419;14509:2;14522:47;;;14494:18;;14586:131;14494:18;14586:131;:::i;14905:366::-;15132:2;6547:19;;15047:3;6599:4;6590:14;;-1:-1:-1;;;14847:45:18;;15061:74;-1:-1:-1;15144:93:18;14730:169;15277:419;15481:2;15494:47;;;15466:18;;15558:131;15466:18;15558:131;:::i;15872:366::-;16099:2;6547:19;;16014:3;6599:4;6590:14;;-1:-1:-1;;;15819:40:18;;16028:74;-1:-1:-1;16111:93:18;15702:164;16244:419;16448:2;16461:47;;;16433:18;;16525:131;16433:18;16525:131;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"632200","executionCost":"infinite","totalCost":"infinite"},"external":{"MAXPCT()":"322","acceptOwnership()":"infinite","addRelayer(address)":"infinite","config()":"infinite","owner()":"infinite","pause()":"28754","paused()":"2438","pendingOwner()":"infinite","relayers(address)":"infinite","removeRelayer(address)":"infinite","renounceOwnership()":"infinite","transferOwnership(address)":"infinite","unpause()":"28762","updateConfig((uint128,uint32,uint32))":"infinite","updateDepositBaseFee(uint128)":"infinite","updateDepositFeeRate(uint32)":"infinite","updateFinalizeTxGas(uint32)":"infinite"}},"methodIdentifiers":{"MAXPCT()":"cb11b9f4","acceptOwnership()":"79ba5097","addRelayer(address)":"dd39f00d","config()":"79502c55","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","pendingOwner()":"e30c3978","relayers(address)":"5300f841","removeRelayer(address)":"60f0a5ac","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","updateConfig((uint128,uint32,uint32))":"28ad6c16","updateDepositBaseFee(uint128)":"c8dc8a0c","updateDepositFeeRate(uint32)":"1251d14e","updateFinalizeTxGas(uint32)":"10c58d65"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"depositBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"depositFeeRate\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"finalizeTxGas\",\"type\":\"uint32\"}],\"internalType\":\"struct Config.Config_\",\"name\":\"_config\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"AddRelayer\",\"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\":false,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"RemoveRelayer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"depositBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"depositFeeRate\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"finalizeTxGas\",\"type\":\"uint32\"}],\"indexed\":false,\"internalType\":\"struct Config.Config_\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"UpdateConfig\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAXPCT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"addRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"config\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"depositBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"depositFeeRate\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"finalizeTxGas\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"relayers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"removeRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"depositBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"depositFeeRate\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"finalizeTxGas\",\"type\":\"uint32\"}],\"internalType\":\"struct Config.Config_\",\"name\":\"_config\",\"type\":\"tuple\"}],\"name\":\"updateConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_depositBaseFee\",\"type\":\"uint128\"}],\"name\":\"updateDepositBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_depositFeeRate\",\"type\":\"uint32\"}],\"name\":\"updateDepositFeeRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_finalizeTxGas\",\"type\":\"uint32\"}],\"name\":\"updateFinalizeTxGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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\":{\"contracts/Controller.sol\":\"Controller\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"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\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xde231558366826d7cb61725af8147965a61c53b77a352cc8c9af38fc5a92ac3c\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"contracts/Config.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.20;\\n\\ncontract Config {\\n\\n\\tstruct Config_ {\\n\\t\\tuint128 depositBaseFee;\\n\\t\\tuint32 depositFeeRate;\\n\\t\\tuint32 finalizeTxGas;\\n\\t}\\n\\n\\tConfig_ public config;\\n\\n\\tuint32 public constant MAXPCT = 1000000;\\n\\n\\tevent UpdateConfig(Config_ config);\\n\\n\\tfunction _updateConfig(Config_ memory _config) internal {\\n\\t\\tconfig = _config;\\n\\t\\temit UpdateConfig(config);\\n\\t}\\n\\n\\tfunction _updateDepositBaseFee(uint128 _depositBaseFee) internal {\\n\\t\\tconfig.depositBaseFee = _depositBaseFee;\\n \\t\\temit UpdateConfig(config);\\n\\t}\\n\\n\\tfunction _updateDepositFeeRate(uint32 _depositFeeRate) internal {\\n\\t\\trequire(_depositFeeRate <= MAXPCT / 20, \\\"fee rate must be less or equal than 5%\\\");\\n\\t\\tconfig.depositFeeRate = _depositFeeRate;\\n \\t\\temit UpdateConfig(config);\\n\\t}\\n\\n\\tfunction _updateFinalizeTxGas(uint32 _finalizeTxGas) internal {\\n\\t\\tconfig.finalizeTxGas = _finalizeTxGas;\\n \\t\\temit UpdateConfig(config);\\n\\t}\\n\\n}\\n\",\"keccak256\":\"0x716183a600cab1ee8bc276840bfbfda8bd6e4d32698f97f0ab617b0afa946cd2\",\"license\":\"MIT\"},\"contracts/Controller.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.20;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable2Step.sol\\\";\\nimport \\\"./Relayers.sol\\\";\\nimport \\\"./Config.sol\\\";\\n\\ncontract Controller is Relayers, Config, Ownable2Step {\\n\\tbool public paused;\\n\\n\\tmodifier wherNotPaused() {\\n\\t\\trequire(!paused, \\\"paused!\\\");\\n\\t\\t_;\\n\\t}\\n\\n\\tconstructor(Config_ memory _config) Ownable2Step() {\\n\\t\\t_addRelayer(owner());\\n\\t\\t_updateConfig(_config);\\n\\t}\\n\\n\\tfunction pause() external onlyOwner {\\n\\t\\trequire(!paused, \\\"already paused\\\");\\n\\t\\tpaused = true;\\n\\t}\\n\\n\\tfunction unpause() external onlyOwner {\\n\\t\\trequire(paused, \\\"not paused\\\");\\n\\t\\tpaused = false;\\n\\t}\\n\\n\\tfunction addRelayer(address relayer) external onlyOwner {\\n\\t\\t_addRelayer(relayer);\\n\\t}\\n\\n\\tfunction removeRelayer(address relayer) external onlyOwner {\\n\\t\\t_removeRelayer(relayer);\\n\\t}\\n\\n\\tfunction updateConfig(Config_ memory _config) external onlyOwner {\\n\\t\\t_updateConfig(_config);\\n\\t}\\n\\n\\tfunction updateDepositBaseFee(uint128 _depositBaseFee) external onlyOwner {\\n\\t\\t_updateDepositBaseFee(_depositBaseFee);\\n\\t}\\n\\n\\tfunction updateDepositFeeRate(uint32 _depositFeeRate) external onlyOwner {\\n\\t\\t_updateDepositFeeRate(_depositFeeRate);\\n\\t}\\n\\n\\tfunction updateFinalizeTxGas(uint32 _finalizeTxGas) external onlyOwner {\\n\\t\\t_updateFinalizeTxGas(_finalizeTxGas);\\n\\t}\\n\\n}\\n\",\"keccak256\":\"0xd0c2a1a22c46a102305e2c1d4ea43c80de3cc06d0456039cb4401121b1d6eb74\",\"license\":\"MIT\"},\"contracts/Relayers.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.20;\\n\\ncontract Relayers {\\n\\tmapping(address => bool) public relayers;\\n\\n\\tevent AddRelayer(address relayer);\\n\\tevent RemoveRelayer(address relayer);\\n\\n\\tmodifier onlyRelayer() {\\n\\t\\trequire(relayers[msg.sender], \\\"caller is not a relayer\\\");\\n\\t\\t_;\\n\\t}\\n\\n\\tfunction _addRelayer(address relayer) internal {\\n\\t\\trequire(!relayers[relayer], \\\"relayer exists\\\");\\n\\t\\trelayers[relayer] = true;\\n\\t\\temit AddRelayer(relayer);\\n\\t}\\n\\n\\tfunction _removeRelayer(address relayer) internal {\\n\\t\\trequire(relayers[relayer], \\\"nonexistent relayer\\\");\\n\\t\\trelayers[relayer] = true;\\n\\t\\temit RemoveRelayer(relayer);\\n\\t}\\n}\\n\",\"keccak256\":\"0x607cfc713c3374087cce7e3f2f3404eadd8875baed29b62c2eb1c8ba1ae0f7a2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3354,"contract":"contracts/Controller.sol:Controller","label":"relayers","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":2549,"contract":"contracts/Controller.sol:Controller","label":"config","offset":0,"slot":"1","type":"t_struct(Config_)2546_storage"},{"astId":7,"contract":"contracts/Controller.sol:Controller","label":"_owner","offset":0,"slot":"2","type":"t_address"},{"astId":120,"contract":"contracts/Controller.sol:Controller","label":"_pendingOwner","offset":0,"slot":"3","type":"t_address"},{"astId":2643,"contract":"contracts/Controller.sol:Controller","label":"paused","offset":20,"slot":"3","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_struct(Config_)2546_storage":{"encoding":"inplace","label":"struct Config.Config_","members":[{"astId":2541,"contract":"contracts/Controller.sol:Controller","label":"depositBaseFee","offset":0,"slot":"0","type":"t_uint128"},{"astId":2543,"contract":"contracts/Controller.sol:Controller","label":"depositFeeRate","offset":16,"slot":"0","type":"t_uint32"},{"astId":2545,"contract":"contracts/Controller.sol:Controller","label":"finalizeTxGas","offset":20,"slot":"0","type":"t_uint32"}],"numberOfBytes":"32"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/ETHDeliver.sol":{"ETHDeliver":{"abi":[{"inputs":[{"components":[{"internalType":"uint128","name":"depositBaseFee","type":"uint128"},{"internalType":"uint32","name":"depositFeeRate","type":"uint32"},{"internalType":"uint32","name":"finalizeTxGas","type":"uint32"}],"internalType":"struct Config.Config_","name":"config","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidShortString","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"relayer","type":"address"}],"name":"AddRelayer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"srcChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dstChainId","type":"uint256"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"timeoutAt","type":"uint32"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"bytes32","name":"logHash","type":"bytes32"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"depositorSig","type":"bytes"},{"internalType":"bytes","name":"adminSig","type":"bytes"}],"indexed":false,"internalType":"struct ETHDeliver.DepositorWithdrawal","name":"w","type":"tuple"}],"name":"DepositorWithdrawn","type":"event"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"admin","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"relayer","type":"address"},{"indexed":false,"internalType":"uint256","name":"srcChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dstChainId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"logHash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"Finalize","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":false,"internalType":"address","name":"relayer","type":"address"}],"name":"RemoveRelayer","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint128","name":"depositBaseFee","type":"uint128"},{"internalType":"uint32","name":"depositFeeRate","type":"uint32"},{"internalType":"uint32","name":"finalizeTxGas","type":"uint32"}],"indexed":false,"internalType":"struct Config.Config_","name":"config","type":"tuple"}],"name":"UpdateConfig","type":"event"},{"inputs":[],"name":"DepositorWithdrawTypesHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXPCT","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"relayer","type":"address"}],"name":"addRelayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"config","outputs":[{"internalType":"uint128","name":"depositBaseFee","type":"uint128"},{"internalType":"uint32","name":"depositFeeRate","type":"uint32"},{"internalType":"uint32","name":"finalizeTxGas","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"dstChainId","type":"uint256"},{"internalType":"uint32","name":"timeoutAt","type":"uint32"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"depositFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"logHash","type":"bytes32"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"depositorSig","type":"bytes"},{"internalType":"bytes","name":"adminSig","type":"bytes"}],"internalType":"struct ETHDeliver.DepositorWithdrawal","name":"w","type":"tuple"}],"name":"depositorWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"depositorWithdrawals","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"srcChainId","type":"uint256"},{"internalType":"bytes32","name":"logHash","type":"bytes32"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint32","name":"timeoutAt","type":"uint32"}],"internalType":"struct ETHDeliver.FinalizeTxMeta","name":"meta","type":"tuple"}],"name":"finalize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalizeTxGasFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gasPrice","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"logHash","type":"bytes32"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"hashTypedDataV4ForDepositorWithdraw","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"logHashes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"srcChainId","type":"uint256"},{"internalType":"bytes32","name":"logHash","type":"bytes32"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint32","name":"timeoutAt","type":"uint32"}],"internalType":"struct ETHDeliver.FinalizeTxMeta[]","name":"metas","type":"tuple[]"}],"name":"mulFinalize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"relayers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"relayer","type":"address"}],"name":"removeRelayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint128","name":"depositBaseFee","type":"uint128"},{"internalType":"uint32","name":"depositFeeRate","type":"uint32"},{"internalType":"uint32","name":"finalizeTxGas","type":"uint32"}],"internalType":"struct Config.Config_","name":"_config","type":"tuple"}],"name":"updateConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_depositBaseFee","type":"uint128"}],"name":"updateDepositBaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_depositFeeRate","type":"uint32"}],"name":"updateDepositFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_finalizeTxGas","type":"uint32"}],"name":"updateFinalizeTxGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}],"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."},"eip712Domain()":{"details":"See {EIP-5267}. _Available since v4.9._"},"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."}},"stateVariables":{"DepositorWithdrawTypesHash":{"details":"keccak256(\"DepositorWithdraw(bytes32 logHash,address from,address to,uint256 amount)\")"},"logHashes":{"details":"keccak256(abi.encodePacked(txHash,logIndex))"}},"version":1},"evm":{"bytecode":{"functionDebugData":{"@_1356":{"entryPoint":null,"id":1356,"parameterSlots":2,"returnSlots":0},"@_23":{"entryPoint":null,"id":23,"parameterSlots":0,"returnSlots":0},"@_2671":{"entryPoint":null,"id":2671,"parameterSlots":1,"returnSlots":0},"@_2941":{"entryPoint":null,"id":2941,"parameterSlots":1,"returnSlots":0},"@_addRelayer_3398":{"entryPoint":341,"id":3398,"parameterSlots":1,"returnSlots":0},"@_buildDomainSeparator_1403":{"entryPoint":695,"id":1403,"parameterSlots":0,"returnSlots":1},"@_msgSender_324":{"entryPoint":307,"id":324,"parameterSlots":0,"returnSlots":1},"@_transferOwnership_111":{"entryPoint":787,"id":111,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_172":{"entryPoint":311,"id":172,"parameterSlots":1,"returnSlots":0},"@_updateConfig_2572":{"entryPoint":506,"id":2572,"parameterSlots":1,"returnSlots":0},"@getStringSlot_645":{"entryPoint":936,"id":645,"parameterSlots":1,"returnSlots":1},"@owner_40":{"entryPoint":null,"id":40,"parameterSlots":0,"returnSlots":1},"@toShortStringWithFallback_499":{"entryPoint":638,"id":499,"parameterSlots":2,"returnSlots":1},"@toShortString_401":{"entryPoint":869,"id":401,"parameterSlots":1,"returnSlots":1},"abi_decode_t_struct$_Config__$2546_memory_ptr_fromMemory":{"entryPoint":1101,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint128_fromMemory":{"entryPoint":1062,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint32_fromMemory":{"entryPoint":1088,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Config__$2546_memory_ptr_fromMemory":{"entryPoint":1205,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":1313,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":1989,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2120,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack":{"entryPoint":1436,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint128_to_t_uint128":{"entryPoint":1364,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint32_to_t_uint32":{"entryPoint":1406,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":1330,"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":1996,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2173,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1250,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed":{"entryPoint":1527,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1008,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":1720,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_from_storage_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_from_storage_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address":{"entryPoint":1295,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":1685,"id":null,"parameterSlots":2,"returnSlots":0},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":2210,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":1613,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":1781,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":2082,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":1565,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_0t_uint128":{"entryPoint":1346,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_16t_uint32":{"entryPoint":1380,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_20t_uint32":{"entryPoint":1419,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":961,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":1543,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":939,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"read_from_memoryt_bytes32":{"entryPoint":2199,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_0_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_128_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_160_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":1665,"id":null,"parameterSlots":2,"returnSlots":0},"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":1627,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_uint128":{"entryPoint":1039,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint32":{"entryPoint":1075,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15604:18","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:18","statements":[{"nodeType":"YulAssignment","src":"57:19:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:18","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:18"},"nodeType":"YulFunctionCall","src":"67:9:18"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:18"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:18","type":""}],"src":"7:75:18"},{"body":{"nodeType":"YulBlock","src":"177:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:18"},"nodeType":"YulFunctionCall","src":"187:12:18"},"nodeType":"YulExpressionStatement","src":"187:12:18"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:18"},{"body":{"nodeType":"YulBlock","src":"300:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:18"},"nodeType":"YulFunctionCall","src":"310:12:18"},"nodeType":"YulExpressionStatement","src":"310:12:18"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:18"},{"body":{"nodeType":"YulBlock","src":"423:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"440:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"443:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"433:6:18"},"nodeType":"YulFunctionCall","src":"433:12:18"},"nodeType":"YulExpressionStatement","src":"433:12:18"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulFunctionDefinition","src":"334:117:18"},{"body":{"nodeType":"YulBlock","src":"505:54:18","statements":[{"nodeType":"YulAssignment","src":"515:38:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"533:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"540:2:18","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"529:3:18"},"nodeType":"YulFunctionCall","src":"529:14:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"549:2:18","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"545:3:18"},"nodeType":"YulFunctionCall","src":"545:7:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"525:3:18"},"nodeType":"YulFunctionCall","src":"525:28:18"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"515:6:18"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"488:5:18","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"498:6:18","type":""}],"src":"457:102:18"},{"body":{"nodeType":"YulBlock","src":"593:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"610:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"613:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"603:6:18"},"nodeType":"YulFunctionCall","src":"603:88:18"},"nodeType":"YulExpressionStatement","src":"603:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"707:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"710:4:18","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"700:6:18"},"nodeType":"YulFunctionCall","src":"700:15:18"},"nodeType":"YulExpressionStatement","src":"700:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"734:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"724:6:18"},"nodeType":"YulFunctionCall","src":"724:15:18"},"nodeType":"YulExpressionStatement","src":"724:15:18"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"565:180:18"},{"body":{"nodeType":"YulBlock","src":"794:238:18","statements":[{"nodeType":"YulVariableDeclaration","src":"804:58:18","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"826:6:18"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"856:4:18"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"834:21:18"},"nodeType":"YulFunctionCall","src":"834:27:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"822:3:18"},"nodeType":"YulFunctionCall","src":"822:40:18"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"808:10:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"973:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"975:16:18"},"nodeType":"YulFunctionCall","src":"975:18:18"},"nodeType":"YulExpressionStatement","src":"975:18:18"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"916:10:18"},{"kind":"number","nodeType":"YulLiteral","src":"928:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"913:2:18"},"nodeType":"YulFunctionCall","src":"913:34:18"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"952:10:18"},{"name":"memPtr","nodeType":"YulIdentifier","src":"964:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"949:2:18"},"nodeType":"YulFunctionCall","src":"949:22:18"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"910:2:18"},"nodeType":"YulFunctionCall","src":"910:62:18"},"nodeType":"YulIf","src":"907:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1011:2:18","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1015:10:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1004:6:18"},"nodeType":"YulFunctionCall","src":"1004:22:18"},"nodeType":"YulExpressionStatement","src":"1004:22:18"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"780:6:18","type":""},{"name":"size","nodeType":"YulTypedName","src":"788:4:18","type":""}],"src":"751:281:18"},{"body":{"nodeType":"YulBlock","src":"1079:88:18","statements":[{"nodeType":"YulAssignment","src":"1089:30:18","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"1099:18:18"},"nodeType":"YulFunctionCall","src":"1099:20:18"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1089:6:18"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1148:6:18"},{"name":"size","nodeType":"YulIdentifier","src":"1156:4:18"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"1128:19:18"},"nodeType":"YulFunctionCall","src":"1128:33:18"},"nodeType":"YulExpressionStatement","src":"1128:33:18"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"1063:4:18","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1072:6:18","type":""}],"src":"1038:129:18"},{"body":{"nodeType":"YulBlock","src":"1262:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1279:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1282:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1272:6:18"},"nodeType":"YulFunctionCall","src":"1272:12:18"},"nodeType":"YulExpressionStatement","src":"1272:12:18"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulFunctionDefinition","src":"1173:117:18"},{"body":{"nodeType":"YulBlock","src":"1341:73:18","statements":[{"nodeType":"YulAssignment","src":"1351:57:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1366:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"1373:34:18","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1362:3:18"},"nodeType":"YulFunctionCall","src":"1362:46:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1351:7:18"}]}]},"name":"cleanup_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1323:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1333:7:18","type":""}],"src":"1296:118:18"},{"body":{"nodeType":"YulBlock","src":"1463:79:18","statements":[{"body":{"nodeType":"YulBlock","src":"1520:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1529:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1532:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1522:6:18"},"nodeType":"YulFunctionCall","src":"1522:12:18"},"nodeType":"YulExpressionStatement","src":"1522:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1486:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1511:5:18"}],"functionName":{"name":"cleanup_t_uint128","nodeType":"YulIdentifier","src":"1493:17:18"},"nodeType":"YulFunctionCall","src":"1493:24:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1483:2:18"},"nodeType":"YulFunctionCall","src":"1483:35:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1476:6:18"},"nodeType":"YulFunctionCall","src":"1476:43:18"},"nodeType":"YulIf","src":"1473:63:18"}]},"name":"validator_revert_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1456:5:18","type":""}],"src":"1420:122:18"},{"body":{"nodeType":"YulBlock","src":"1611:80:18","statements":[{"nodeType":"YulAssignment","src":"1621:22:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1636:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1630:5:18"},"nodeType":"YulFunctionCall","src":"1630:13:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1621:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1679:5:18"}],"functionName":{"name":"validator_revert_t_uint128","nodeType":"YulIdentifier","src":"1652:26:18"},"nodeType":"YulFunctionCall","src":"1652:33:18"},"nodeType":"YulExpressionStatement","src":"1652:33:18"}]},"name":"abi_decode_t_uint128_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1589:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"1597:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1605:5:18","type":""}],"src":"1548:143:18"},{"body":{"nodeType":"YulBlock","src":"1741:49:18","statements":[{"nodeType":"YulAssignment","src":"1751:33:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1766:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"1773:10:18","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1762:3:18"},"nodeType":"YulFunctionCall","src":"1762:22:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1751:7:18"}]}]},"name":"cleanup_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1723:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1733:7:18","type":""}],"src":"1697:93:18"},{"body":{"nodeType":"YulBlock","src":"1838:78:18","statements":[{"body":{"nodeType":"YulBlock","src":"1894:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1903:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1906:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1896:6:18"},"nodeType":"YulFunctionCall","src":"1896:12:18"},"nodeType":"YulExpressionStatement","src":"1896:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1861:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1885:5:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"1868:16:18"},"nodeType":"YulFunctionCall","src":"1868:23:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1858:2:18"},"nodeType":"YulFunctionCall","src":"1858:34:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1851:6:18"},"nodeType":"YulFunctionCall","src":"1851:42:18"},"nodeType":"YulIf","src":"1848:62:18"}]},"name":"validator_revert_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1831:5:18","type":""}],"src":"1796:120:18"},{"body":{"nodeType":"YulBlock","src":"1984:79:18","statements":[{"nodeType":"YulAssignment","src":"1994:22:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2009:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2003:5:18"},"nodeType":"YulFunctionCall","src":"2003:13:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1994:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2051:5:18"}],"functionName":{"name":"validator_revert_t_uint32","nodeType":"YulIdentifier","src":"2025:25:18"},"nodeType":"YulFunctionCall","src":"2025:32:18"},"nodeType":"YulExpressionStatement","src":"2025:32:18"}]},"name":"abi_decode_t_uint32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1962:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"1970:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1978:5:18","type":""}],"src":"1922:141:18"},{"body":{"nodeType":"YulBlock","src":"2189:715:18","statements":[{"body":{"nodeType":"YulBlock","src":"2233:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"2235:77:18"},"nodeType":"YulFunctionCall","src":"2235:79:18"},"nodeType":"YulExpressionStatement","src":"2235:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"2210:3:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"2215:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2206:3:18"},"nodeType":"YulFunctionCall","src":"2206:19:18"},{"kind":"number","nodeType":"YulLiteral","src":"2227:4:18","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2202:3:18"},"nodeType":"YulFunctionCall","src":"2202:30:18"},"nodeType":"YulIf","src":"2199:117:18"},{"nodeType":"YulAssignment","src":"2325:30:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2350:4:18","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2334:15:18"},"nodeType":"YulFunctionCall","src":"2334:21:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2325:5:18"}]},{"nodeType":"YulBlock","src":"2365:171:18","statements":[{"nodeType":"YulVariableDeclaration","src":"2410:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2424:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2414:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2450:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2457:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2446:3:18"},"nodeType":"YulFunctionCall","src":"2446:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2500:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"2511:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2496:3:18"},"nodeType":"YulFunctionCall","src":"2496:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"2520:3:18"}],"functionName":{"name":"abi_decode_t_uint128_fromMemory","nodeType":"YulIdentifier","src":"2464:31:18"},"nodeType":"YulFunctionCall","src":"2464:60:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2439:6:18"},"nodeType":"YulFunctionCall","src":"2439:86:18"},"nodeType":"YulExpressionStatement","src":"2439:86:18"}]},{"nodeType":"YulBlock","src":"2546:171:18","statements":[{"nodeType":"YulVariableDeclaration","src":"2591:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2605:2:18","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2595:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2632:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2639:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2628:3:18"},"nodeType":"YulFunctionCall","src":"2628:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2681:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"2692:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2677:3:18"},"nodeType":"YulFunctionCall","src":"2677:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"2701:3:18"}],"functionName":{"name":"abi_decode_t_uint32_fromMemory","nodeType":"YulIdentifier","src":"2646:30:18"},"nodeType":"YulFunctionCall","src":"2646:59:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2621:6:18"},"nodeType":"YulFunctionCall","src":"2621:85:18"},"nodeType":"YulExpressionStatement","src":"2621:85:18"}]},{"nodeType":"YulBlock","src":"2727:170:18","statements":[{"nodeType":"YulVariableDeclaration","src":"2771:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2785:2:18","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2775:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2812:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2819:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2808:3:18"},"nodeType":"YulFunctionCall","src":"2808:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"2872:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:18"},"nodeType":"YulFunctionCall","src":"2857:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"2881:3:18"}],"functionName":{"name":"abi_decode_t_uint32_fromMemory","nodeType":"YulIdentifier","src":"2826:30:18"},"nodeType":"YulFunctionCall","src":"2826:59:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2801:6:18"},"nodeType":"YulFunctionCall","src":"2801:85:18"},"nodeType":"YulExpressionStatement","src":"2801:85:18"}]}]},"name":"abi_decode_t_struct$_Config__$2546_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2164:9:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"2175:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2183:5:18","type":""}],"src":"2098:806:18"},{"body":{"nodeType":"YulBlock","src":"3012:299:18","statements":[{"body":{"nodeType":"YulBlock","src":"3058:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"3060:77:18"},"nodeType":"YulFunctionCall","src":"3060:79:18"},"nodeType":"YulExpressionStatement","src":"3060:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3033:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"3042:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3029:3:18"},"nodeType":"YulFunctionCall","src":"3029:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"3054:2:18","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3025:3:18"},"nodeType":"YulFunctionCall","src":"3025:32:18"},"nodeType":"YulIf","src":"3022:119:18"},{"nodeType":"YulBlock","src":"3151:153:18","statements":[{"nodeType":"YulVariableDeclaration","src":"3166:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"3180:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3170:6:18","type":""}]},{"nodeType":"YulAssignment","src":"3195:99:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3266:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"3277:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3262:3:18"},"nodeType":"YulFunctionCall","src":"3262:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3286:7:18"}],"functionName":{"name":"abi_decode_t_struct$_Config__$2546_memory_ptr_fromMemory","nodeType":"YulIdentifier","src":"3205:56:18"},"nodeType":"YulFunctionCall","src":"3205:89:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3195:6:18"}]}]}]},"name":"abi_decode_tuple_t_struct$_Config__$2546_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2982:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2993:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3005:6:18","type":""}],"src":"2910:401:18"},{"body":{"nodeType":"YulBlock","src":"3413:73:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3430:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"3435:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3423:6:18"},"nodeType":"YulFunctionCall","src":"3423:19:18"},"nodeType":"YulExpressionStatement","src":"3423:19:18"},{"nodeType":"YulAssignment","src":"3451:29:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3470:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"3475:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:18"},"nodeType":"YulFunctionCall","src":"3466:14:18"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"3451:11:18"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3385:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"3390:6:18","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"3401:11:18","type":""}],"src":"3317:169:18"},{"body":{"nodeType":"YulBlock","src":"3598:58:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3620:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"3628:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3616:3:18"},"nodeType":"YulFunctionCall","src":"3616:14:18"},{"hexValue":"72656c6179657220657869737473","kind":"string","nodeType":"YulLiteral","src":"3632:16:18","type":"","value":"relayer exists"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3609:6:18"},"nodeType":"YulFunctionCall","src":"3609:40:18"},"nodeType":"YulExpressionStatement","src":"3609:40:18"}]},"name":"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"3590:6:18","type":""}],"src":"3492:164:18"},{"body":{"nodeType":"YulBlock","src":"3808:220:18","statements":[{"nodeType":"YulAssignment","src":"3818:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3884:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"3889:2:18","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"3825:58:18"},"nodeType":"YulFunctionCall","src":"3825:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3818:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3990:3:18"}],"functionName":{"name":"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1","nodeType":"YulIdentifier","src":"3901:88:18"},"nodeType":"YulFunctionCall","src":"3901:93:18"},"nodeType":"YulExpressionStatement","src":"3901:93:18"},{"nodeType":"YulAssignment","src":"4003:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4014:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"4019:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4010:3:18"},"nodeType":"YulFunctionCall","src":"4010:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4003:3:18"}]}]},"name":"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3796:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3804:3:18","type":""}],"src":"3662:366:18"},{"body":{"nodeType":"YulBlock","src":"4205:248:18","statements":[{"nodeType":"YulAssignment","src":"4215:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4227:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"4238:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4223:3:18"},"nodeType":"YulFunctionCall","src":"4223:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4215:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4262:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"4273:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4258:3:18"},"nodeType":"YulFunctionCall","src":"4258:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"4281:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"4287:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4277:3:18"},"nodeType":"YulFunctionCall","src":"4277:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4251:6:18"},"nodeType":"YulFunctionCall","src":"4251:47:18"},"nodeType":"YulExpressionStatement","src":"4251:47:18"},{"nodeType":"YulAssignment","src":"4307:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"4441:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"4315:124:18"},"nodeType":"YulFunctionCall","src":"4315:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4307:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4185:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4200:4:18","type":""}],"src":"4034:419:18"},{"body":{"nodeType":"YulBlock","src":"4504:81:18","statements":[{"nodeType":"YulAssignment","src":"4514:65:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4529:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"4536:42:18","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4525:3:18"},"nodeType":"YulFunctionCall","src":"4525:54:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4514:7:18"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4486:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4496:7:18","type":""}],"src":"4459:126:18"},{"body":{"nodeType":"YulBlock","src":"4636:51:18","statements":[{"nodeType":"YulAssignment","src":"4646:35:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4675:5:18"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"4657:17:18"},"nodeType":"YulFunctionCall","src":"4657:24:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4646:7:18"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4618:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4628:7:18","type":""}],"src":"4591:96:18"},{"body":{"nodeType":"YulBlock","src":"4758:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4775:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4798:5:18"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"4780:17:18"},"nodeType":"YulFunctionCall","src":"4780:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4768:6:18"},"nodeType":"YulFunctionCall","src":"4768:37:18"},"nodeType":"YulExpressionStatement","src":"4768:37:18"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4746:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4753:3:18","type":""}],"src":"4693:118:18"},{"body":{"nodeType":"YulBlock","src":"4915:124:18","statements":[{"nodeType":"YulAssignment","src":"4925:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4937:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"4948:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4933:3:18"},"nodeType":"YulFunctionCall","src":"4933:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4925:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5005:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5018:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"5029:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5014:3:18"},"nodeType":"YulFunctionCall","src":"5014:17:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"4961:43:18"},"nodeType":"YulFunctionCall","src":"4961:71:18"},"nodeType":"YulExpressionStatement","src":"4961:71:18"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4887:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4899:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4910:4:18","type":""}],"src":"4817:222:18"},{"body":{"nodeType":"YulBlock","src":"5096:51:18","statements":[{"nodeType":"YulAssignment","src":"5106:34:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5131:1:18","type":"","value":"0"},{"name":"value","nodeType":"YulIdentifier","src":"5134:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5127:3:18"},"nodeType":"YulFunctionCall","src":"5127:13:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"5106:8:18"}]}]},"name":"shift_right_0_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5077:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"5087:8:18","type":""}],"src":"5045:102:18"},{"body":{"nodeType":"YulBlock","src":"5211:73:18","statements":[{"nodeType":"YulAssignment","src":"5221:57:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5236:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"5243:34:18","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5232:3:18"},"nodeType":"YulFunctionCall","src":"5232:46:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"5221:7:18"}]}]},"name":"cleanup_from_storage_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5193:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"5203:7:18","type":""}],"src":"5153:131:18"},{"body":{"nodeType":"YulBlock","src":"5365:91:18","statements":[{"nodeType":"YulAssignment","src":"5375:75:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"5438:10:18"}],"functionName":{"name":"shift_right_0_unsigned","nodeType":"YulIdentifier","src":"5415:22:18"},"nodeType":"YulFunctionCall","src":"5415:34:18"}],"functionName":{"name":"cleanup_from_storage_t_uint128","nodeType":"YulIdentifier","src":"5384:30:18"},"nodeType":"YulFunctionCall","src":"5384:66:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5375:5:18"}]}]},"name":"extract_from_storage_value_offset_0t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"5344:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5359:5:18","type":""}],"src":"5290:166:18"},{"body":{"nodeType":"YulBlock","src":"5517:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5534:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5557:5:18"}],"functionName":{"name":"cleanup_t_uint128","nodeType":"YulIdentifier","src":"5539:17:18"},"nodeType":"YulFunctionCall","src":"5539:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5527:6:18"},"nodeType":"YulFunctionCall","src":"5527:37:18"},"nodeType":"YulExpressionStatement","src":"5527:37:18"}]},"name":"abi_encode_t_uint128_to_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5505:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5512:3:18","type":""}],"src":"5462:108:18"},{"body":{"nodeType":"YulBlock","src":"5629:53:18","statements":[{"nodeType":"YulAssignment","src":"5639:36:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5664:3:18","type":"","value":"128"},{"name":"value","nodeType":"YulIdentifier","src":"5669:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5660:3:18"},"nodeType":"YulFunctionCall","src":"5660:15:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"5639:8:18"}]}]},"name":"shift_right_128_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5610:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"5620:8:18","type":""}],"src":"5576:106:18"},{"body":{"nodeType":"YulBlock","src":"5745:49:18","statements":[{"nodeType":"YulAssignment","src":"5755:33:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5770:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"5777:10:18","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5766:3:18"},"nodeType":"YulFunctionCall","src":"5766:22:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"5755:7:18"}]}]},"name":"cleanup_from_storage_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5727:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"5737:7:18","type":""}],"src":"5688:106:18"},{"body":{"nodeType":"YulBlock","src":"5875:92:18","statements":[{"nodeType":"YulAssignment","src":"5885:76:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"5949:10:18"}],"functionName":{"name":"shift_right_128_unsigned","nodeType":"YulIdentifier","src":"5924:24:18"},"nodeType":"YulFunctionCall","src":"5924:36:18"}],"functionName":{"name":"cleanup_from_storage_t_uint32","nodeType":"YulIdentifier","src":"5894:29:18"},"nodeType":"YulFunctionCall","src":"5894:67:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5885:5:18"}]}]},"name":"extract_from_storage_value_offset_16t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"5854:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5869:5:18","type":""}],"src":"5800:167:18"},{"body":{"nodeType":"YulBlock","src":"6026:52:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6043:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6065:5:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"6048:16:18"},"nodeType":"YulFunctionCall","src":"6048:23:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6036:6:18"},"nodeType":"YulFunctionCall","src":"6036:36:18"},"nodeType":"YulExpressionStatement","src":"6036:36:18"}]},"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6014:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6021:3:18","type":""}],"src":"5973:105:18"},{"body":{"nodeType":"YulBlock","src":"6137:53:18","statements":[{"nodeType":"YulAssignment","src":"6147:36:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6172:3:18","type":"","value":"160"},{"name":"value","nodeType":"YulIdentifier","src":"6177:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6168:3:18"},"nodeType":"YulFunctionCall","src":"6168:15:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"6147:8:18"}]}]},"name":"shift_right_160_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6118:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"6128:8:18","type":""}],"src":"6084:106:18"},{"body":{"nodeType":"YulBlock","src":"6271:92:18","statements":[{"nodeType":"YulAssignment","src":"6281:76:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"6345:10:18"}],"functionName":{"name":"shift_right_160_unsigned","nodeType":"YulIdentifier","src":"6320:24:18"},"nodeType":"YulFunctionCall","src":"6320:36:18"}],"functionName":{"name":"cleanup_from_storage_t_uint32","nodeType":"YulIdentifier","src":"6290:29:18"},"nodeType":"YulFunctionCall","src":"6290:67:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6281:5:18"}]}]},"name":"extract_from_storage_value_offset_20t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"6250:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"6265:5:18","type":""}],"src":"6196:167:18"},{"body":{"nodeType":"YulBlock","src":"6536:761:18","statements":[{"nodeType":"YulVariableDeclaration","src":"6546:26:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6562:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"6567:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6558:3:18"},"nodeType":"YulFunctionCall","src":"6558:14:18"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"6550:4:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6581:18:18","value":{"kind":"number","nodeType":"YulLiteral","src":"6598:1:18","type":"","value":"0"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"6585:9:18","type":""}]},{"nodeType":"YulBlock","src":"6609:254:18","statements":[{"nodeType":"YulAssignment","src":"6653:36:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6676:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"6683:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6672:3:18"},"nodeType":"YulFunctionCall","src":"6672:16:18"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"6666:5:18"},"nodeType":"YulFunctionCall","src":"6666:23:18"},"variableNames":[{"name":"slotValue","nodeType":"YulIdentifier","src":"6653:9:18"}]},{"nodeType":"YulVariableDeclaration","src":"6702:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"6767:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_0t_uint128","nodeType":"YulIdentifier","src":"6722:44:18"},"nodeType":"YulFunctionCall","src":"6722:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6706:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"6824:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6842:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"6847:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6838:3:18"},"nodeType":"YulFunctionCall","src":"6838:14:18"}],"functionName":{"name":"abi_encode_t_uint128_to_t_uint128","nodeType":"YulIdentifier","src":"6790:33:18"},"nodeType":"YulFunctionCall","src":"6790:63:18"},"nodeType":"YulExpressionStatement","src":"6790:63:18"}]},{"nodeType":"YulBlock","src":"6873:204:18","statements":[{"nodeType":"YulVariableDeclaration","src":"6918:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"6983:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_16t_uint32","nodeType":"YulIdentifier","src":"6938:44:18"},"nodeType":"YulFunctionCall","src":"6938:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"6922:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"7038:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7056:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"7061:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7052:3:18"},"nodeType":"YulFunctionCall","src":"7052:14:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulIdentifier","src":"7006:31:18"},"nodeType":"YulFunctionCall","src":"7006:61:18"},"nodeType":"YulExpressionStatement","src":"7006:61:18"}]},{"nodeType":"YulBlock","src":"7087:203:18","statements":[{"nodeType":"YulVariableDeclaration","src":"7131:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"7196:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_20t_uint32","nodeType":"YulIdentifier","src":"7151:44:18"},"nodeType":"YulFunctionCall","src":"7151:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"7135:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"7251:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7269:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"7274:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7265:3:18"},"nodeType":"YulFunctionCall","src":"7265:14:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulIdentifier","src":"7219:31:18"},"nodeType":"YulFunctionCall","src":"7219:61:18"},"nodeType":"YulExpressionStatement","src":"7219:61:18"}]}]},"name":"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6523:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6530:3:18","type":""}],"src":"6423:874:18"},{"body":{"nodeType":"YulBlock","src":"7448:171:18","statements":[{"nodeType":"YulAssignment","src":"7458:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7470:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"7481:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7466:3:18"},"nodeType":"YulFunctionCall","src":"7466:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7458:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7585:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7598:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"7609:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7594:3:18"},"nodeType":"YulFunctionCall","src":"7594:17:18"}],"functionName":{"name":"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"7494:90:18"},"nodeType":"YulFunctionCall","src":"7494:118:18"},"nodeType":"YulExpressionStatement","src":"7494:118:18"}]},"name":"abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7420:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7432:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7443:4:18","type":""}],"src":"7303:316:18"},{"body":{"nodeType":"YulBlock","src":"7684:40:18","statements":[{"nodeType":"YulAssignment","src":"7695:22:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7711:5:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7705:5:18"},"nodeType":"YulFunctionCall","src":"7705:12:18"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"7695:6:18"}]}]},"name":"array_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7667:5:18","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"7677:6:18","type":""}],"src":"7625:99:18"},{"body":{"nodeType":"YulBlock","src":"7758:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7775:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7778:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7768:6:18"},"nodeType":"YulFunctionCall","src":"7768:88:18"},"nodeType":"YulExpressionStatement","src":"7768:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7872:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7875:4:18","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7865:6:18"},"nodeType":"YulFunctionCall","src":"7865:15:18"},"nodeType":"YulExpressionStatement","src":"7865:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7896:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7899:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7889:6:18"},"nodeType":"YulFunctionCall","src":"7889:15:18"},"nodeType":"YulExpressionStatement","src":"7889:15:18"}]},"name":"panic_error_0x22","nodeType":"YulFunctionDefinition","src":"7730:180:18"},{"body":{"nodeType":"YulBlock","src":"7967:269:18","statements":[{"nodeType":"YulAssignment","src":"7977:22:18","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"7991:4:18"},{"kind":"number","nodeType":"YulLiteral","src":"7997:1:18","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"7987:3:18"},"nodeType":"YulFunctionCall","src":"7987:12:18"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"7977:6:18"}]},{"nodeType":"YulVariableDeclaration","src":"8008:38:18","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"8038:4:18"},{"kind":"number","nodeType":"YulLiteral","src":"8044:1:18","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8034:3:18"},"nodeType":"YulFunctionCall","src":"8034:12:18"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"8012:18:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"8085:51:18","statements":[{"nodeType":"YulAssignment","src":"8099:27:18","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8113:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"8121:4:18","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8109:3:18"},"nodeType":"YulFunctionCall","src":"8109:17:18"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"8099:6:18"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"8065:18:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8058:6:18"},"nodeType":"YulFunctionCall","src":"8058:26:18"},"nodeType":"YulIf","src":"8055:81:18"},{"body":{"nodeType":"YulBlock","src":"8188:42:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nodeType":"YulIdentifier","src":"8202:16:18"},"nodeType":"YulFunctionCall","src":"8202:18:18"},"nodeType":"YulExpressionStatement","src":"8202:18:18"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"8152:18:18"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8175:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"8183:2:18","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8172:2:18"},"nodeType":"YulFunctionCall","src":"8172:14:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"8149:2:18"},"nodeType":"YulFunctionCall","src":"8149:38:18"},"nodeType":"YulIf","src":"8146:84:18"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"7951:4:18","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"7960:6:18","type":""}],"src":"7916:320:18"},{"body":{"nodeType":"YulBlock","src":"8296:87:18","statements":[{"nodeType":"YulAssignment","src":"8306:11:18","value":{"name":"ptr","nodeType":"YulIdentifier","src":"8314:3:18"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"8306:4:18"}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8334:1:18","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"8337:3:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8327:6:18"},"nodeType":"YulFunctionCall","src":"8327:14:18"},"nodeType":"YulExpressionStatement","src":"8327:14:18"},{"nodeType":"YulAssignment","src":"8350:26:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8368:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8371:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"8358:9:18"},"nodeType":"YulFunctionCall","src":"8358:18:18"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"8350:4:18"}]}]},"name":"array_dataslot_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"8283:3:18","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"8291:4:18","type":""}],"src":"8242:141:18"},{"body":{"nodeType":"YulBlock","src":"8433:49:18","statements":[{"nodeType":"YulAssignment","src":"8443:33:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8461:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"8468:2:18","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8457:3:18"},"nodeType":"YulFunctionCall","src":"8457:14:18"},{"kind":"number","nodeType":"YulLiteral","src":"8473:2:18","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8453:3:18"},"nodeType":"YulFunctionCall","src":"8453:23:18"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"8443:6:18"}]}]},"name":"divide_by_32_ceil","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8416:5:18","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"8426:6:18","type":""}],"src":"8389:93:18"},{"body":{"nodeType":"YulBlock","src":"8541:54:18","statements":[{"nodeType":"YulAssignment","src":"8551:37:18","value":{"arguments":[{"name":"bits","nodeType":"YulIdentifier","src":"8576:4:18"},{"name":"value","nodeType":"YulIdentifier","src":"8582:5:18"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8572:3:18"},"nodeType":"YulFunctionCall","src":"8572:16:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"8551:8:18"}]}]},"name":"shift_left_dynamic","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nodeType":"YulTypedName","src":"8516:4:18","type":""},{"name":"value","nodeType":"YulTypedName","src":"8522:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"8532:8:18","type":""}],"src":"8488:107:18"},{"body":{"nodeType":"YulBlock","src":"8677:317:18","statements":[{"nodeType":"YulVariableDeclaration","src":"8687:35:18","value":{"arguments":[{"name":"shiftBytes","nodeType":"YulIdentifier","src":"8708:10:18"},{"kind":"number","nodeType":"YulLiteral","src":"8720:1:18","type":"","value":"8"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8704:3:18"},"nodeType":"YulFunctionCall","src":"8704:18:18"},"variables":[{"name":"shiftBits","nodeType":"YulTypedName","src":"8691:9:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8731:109:18","value":{"arguments":[{"name":"shiftBits","nodeType":"YulIdentifier","src":"8762:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"8773:66:18","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nodeType":"YulIdentifier","src":"8743:18:18"},"nodeType":"YulFunctionCall","src":"8743:97:18"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"8735:4:18","type":""}]},{"nodeType":"YulAssignment","src":"8849:51:18","value":{"arguments":[{"name":"shiftBits","nodeType":"YulIdentifier","src":"8880:9:18"},{"name":"toInsert","nodeType":"YulIdentifier","src":"8891:8:18"}],"functionName":{"name":"shift_left_dynamic","nodeType":"YulIdentifier","src":"8861:18:18"},"nodeType":"YulFunctionCall","src":"8861:39:18"},"variableNames":[{"name":"toInsert","nodeType":"YulIdentifier","src":"8849:8:18"}]},{"nodeType":"YulAssignment","src":"8909:30:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8922:5:18"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"8933:4:18"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8929:3:18"},"nodeType":"YulFunctionCall","src":"8929:9:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8918:3:18"},"nodeType":"YulFunctionCall","src":"8918:21:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8909:5:18"}]},{"nodeType":"YulAssignment","src":"8948:40:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8961:5:18"},{"arguments":[{"name":"toInsert","nodeType":"YulIdentifier","src":"8972:8:18"},{"name":"mask","nodeType":"YulIdentifier","src":"8982:4:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8968:3:18"},"nodeType":"YulFunctionCall","src":"8968:19:18"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"8958:2:18"},"nodeType":"YulFunctionCall","src":"8958:30:18"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"8948:6:18"}]}]},"name":"update_byte_slice_dynamic32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8638:5:18","type":""},{"name":"shiftBytes","nodeType":"YulTypedName","src":"8645:10:18","type":""},{"name":"toInsert","nodeType":"YulTypedName","src":"8657:8:18","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"8670:6:18","type":""}],"src":"8601:393:18"},{"body":{"nodeType":"YulBlock","src":"9045:32:18","statements":[{"nodeType":"YulAssignment","src":"9055:16:18","value":{"name":"value","nodeType":"YulIdentifier","src":"9066:5:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"9055:7:18"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9027:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"9037:7:18","type":""}],"src":"9000:77:18"},{"body":{"nodeType":"YulBlock","src":"9115:28:18","statements":[{"nodeType":"YulAssignment","src":"9125:12:18","value":{"name":"value","nodeType":"YulIdentifier","src":"9132:5:18"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9125:3:18"}]}]},"name":"identity","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9101:5:18","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"9111:3:18","type":""}],"src":"9083:60:18"},{"body":{"nodeType":"YulBlock","src":"9209:82:18","statements":[{"nodeType":"YulAssignment","src":"9219:66:18","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9277:5:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"9259:17:18"},"nodeType":"YulFunctionCall","src":"9259:24:18"}],"functionName":{"name":"identity","nodeType":"YulIdentifier","src":"9250:8:18"},"nodeType":"YulFunctionCall","src":"9250:34:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"9232:17:18"},"nodeType":"YulFunctionCall","src":"9232:53:18"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"9219:9:18"}]}]},"name":"convert_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9189:5:18","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"9199:9:18","type":""}],"src":"9149:142:18"},{"body":{"nodeType":"YulBlock","src":"9344:28:18","statements":[{"nodeType":"YulAssignment","src":"9354:12:18","value":{"name":"value","nodeType":"YulIdentifier","src":"9361:5:18"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9354:3:18"}]}]},"name":"prepare_store_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9330:5:18","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"9340:3:18","type":""}],"src":"9297:75:18"},{"body":{"nodeType":"YulBlock","src":"9454:193:18","statements":[{"nodeType":"YulVariableDeclaration","src":"9464:63:18","value":{"arguments":[{"name":"value_0","nodeType":"YulIdentifier","src":"9519:7:18"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"9488:30:18"},"nodeType":"YulFunctionCall","src":"9488:39:18"},"variables":[{"name":"convertedValue_0","nodeType":"YulTypedName","src":"9468:16:18","type":""}]},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"9543:4:18"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"9583:4:18"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"9577:5:18"},"nodeType":"YulFunctionCall","src":"9577:11:18"},{"name":"offset","nodeType":"YulIdentifier","src":"9590:6:18"},{"arguments":[{"name":"convertedValue_0","nodeType":"YulIdentifier","src":"9622:16:18"}],"functionName":{"name":"prepare_store_t_uint256","nodeType":"YulIdentifier","src":"9598:23:18"},"nodeType":"YulFunctionCall","src":"9598:41:18"}],"functionName":{"name":"update_byte_slice_dynamic32","nodeType":"YulIdentifier","src":"9549:27:18"},"nodeType":"YulFunctionCall","src":"9549:91:18"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"9536:6:18"},"nodeType":"YulFunctionCall","src":"9536:105:18"},"nodeType":"YulExpressionStatement","src":"9536:105:18"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"9431:4:18","type":""},{"name":"offset","nodeType":"YulTypedName","src":"9437:6:18","type":""},{"name":"value_0","nodeType":"YulTypedName","src":"9445:7:18","type":""}],"src":"9378:269:18"},{"body":{"nodeType":"YulBlock","src":"9702:24:18","statements":[{"nodeType":"YulAssignment","src":"9712:8:18","value":{"kind":"number","nodeType":"YulLiteral","src":"9719:1:18","type":"","value":"0"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"9712:3:18"}]}]},"name":"zero_value_for_split_t_uint256","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"9698:3:18","type":""}],"src":"9653:73:18"},{"body":{"nodeType":"YulBlock","src":"9785:136:18","statements":[{"nodeType":"YulVariableDeclaration","src":"9795:46:18","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nodeType":"YulIdentifier","src":"9809:30:18"},"nodeType":"YulFunctionCall","src":"9809:32:18"},"variables":[{"name":"zero_0","nodeType":"YulTypedName","src":"9799:6:18","type":""}]},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"9894:4:18"},{"name":"offset","nodeType":"YulIdentifier","src":"9900:6:18"},{"name":"zero_0","nodeType":"YulIdentifier","src":"9908:6:18"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"9850:43:18"},"nodeType":"YulFunctionCall","src":"9850:65:18"},"nodeType":"YulExpressionStatement","src":"9850:65:18"}]},"name":"storage_set_to_zero_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"9771:4:18","type":""},{"name":"offset","nodeType":"YulTypedName","src":"9777:6:18","type":""}],"src":"9732:189:18"},{"body":{"nodeType":"YulBlock","src":"9977:136:18","statements":[{"body":{"nodeType":"YulBlock","src":"10044:63:18","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"10088:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"10095:1:18","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nodeType":"YulIdentifier","src":"10058:29:18"},"nodeType":"YulFunctionCall","src":"10058:39:18"},"nodeType":"YulExpressionStatement","src":"10058:39:18"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"9997:5:18"},{"name":"end","nodeType":"YulIdentifier","src":"10004:3:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9994:2:18"},"nodeType":"YulFunctionCall","src":"9994:14:18"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"10009:26:18","statements":[{"nodeType":"YulAssignment","src":"10011:22:18","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"10024:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"10031:1:18","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10020:3:18"},"nodeType":"YulFunctionCall","src":"10020:13:18"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"10011:5:18"}]}]},"pre":{"nodeType":"YulBlock","src":"9991:2:18","statements":[]},"src":"9987:120:18"}]},"name":"clear_storage_range_t_bytes1","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"9965:5:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"9972:3:18","type":""}],"src":"9927:186:18"},{"body":{"nodeType":"YulBlock","src":"10198:464:18","statements":[{"body":{"nodeType":"YulBlock","src":"10224:431:18","statements":[{"nodeType":"YulVariableDeclaration","src":"10238:54:18","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"10286:5:18"}],"functionName":{"name":"array_dataslot_t_string_storage","nodeType":"YulIdentifier","src":"10254:31:18"},"nodeType":"YulFunctionCall","src":"10254:38:18"},"variables":[{"name":"dataArea","nodeType":"YulTypedName","src":"10242:8:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10305:63:18","value":{"arguments":[{"name":"dataArea","nodeType":"YulIdentifier","src":"10328:8:18"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"10356:10:18"}],"functionName":{"name":"divide_by_32_ceil","nodeType":"YulIdentifier","src":"10338:17:18"},"nodeType":"YulFunctionCall","src":"10338:29:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10324:3:18"},"nodeType":"YulFunctionCall","src":"10324:44:18"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"10309:11:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"10525:27:18","statements":[{"nodeType":"YulAssignment","src":"10527:23:18","value":{"name":"dataArea","nodeType":"YulIdentifier","src":"10542:8:18"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"10527:11:18"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"10509:10:18"},{"kind":"number","nodeType":"YulLiteral","src":"10521:2:18","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10506:2:18"},"nodeType":"YulFunctionCall","src":"10506:18:18"},"nodeType":"YulIf","src":"10503:49:18"},{"expression":{"arguments":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"10594:11:18"},{"arguments":[{"name":"dataArea","nodeType":"YulIdentifier","src":"10611:8:18"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"10639:3:18"}],"functionName":{"name":"divide_by_32_ceil","nodeType":"YulIdentifier","src":"10621:17:18"},"nodeType":"YulFunctionCall","src":"10621:22:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10607:3:18"},"nodeType":"YulFunctionCall","src":"10607:37:18"}],"functionName":{"name":"clear_storage_range_t_bytes1","nodeType":"YulIdentifier","src":"10565:28:18"},"nodeType":"YulFunctionCall","src":"10565:80:18"},"nodeType":"YulExpressionStatement","src":"10565:80:18"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"10215:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"10220:2:18","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10212:2:18"},"nodeType":"YulFunctionCall","src":"10212:11:18"},"nodeType":"YulIf","src":"10209:446:18"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"10174:5:18","type":""},{"name":"len","nodeType":"YulTypedName","src":"10181:3:18","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"10186:10:18","type":""}],"src":"10119:543:18"},{"body":{"nodeType":"YulBlock","src":"10731:54:18","statements":[{"nodeType":"YulAssignment","src":"10741:37:18","value":{"arguments":[{"name":"bits","nodeType":"YulIdentifier","src":"10766:4:18"},{"name":"value","nodeType":"YulIdentifier","src":"10772:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"10762:3:18"},"nodeType":"YulFunctionCall","src":"10762:16:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"10741:8:18"}]}]},"name":"shift_right_unsigned_dynamic","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nodeType":"YulTypedName","src":"10706:4:18","type":""},{"name":"value","nodeType":"YulTypedName","src":"10712:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"10722:8:18","type":""}],"src":"10668:117:18"},{"body":{"nodeType":"YulBlock","src":"10842:118:18","statements":[{"nodeType":"YulVariableDeclaration","src":"10852:68:18","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10901:1:18","type":"","value":"8"},{"name":"bytes","nodeType":"YulIdentifier","src":"10904:5:18"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"10897:3:18"},"nodeType":"YulFunctionCall","src":"10897:13:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10916:1:18","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10912:3:18"},"nodeType":"YulFunctionCall","src":"10912:6:18"}],"functionName":{"name":"shift_right_unsigned_dynamic","nodeType":"YulIdentifier","src":"10868:28:18"},"nodeType":"YulFunctionCall","src":"10868:51:18"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10864:3:18"},"nodeType":"YulFunctionCall","src":"10864:56:18"},"variables":[{"name":"mask","nodeType":"YulTypedName","src":"10856:4:18","type":""}]},{"nodeType":"YulAssignment","src":"10929:25:18","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"10943:4:18"},{"name":"mask","nodeType":"YulIdentifier","src":"10949:4:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10939:3:18"},"nodeType":"YulFunctionCall","src":"10939:15:18"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10929:6:18"}]}]},"name":"mask_bytes_dynamic","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"10819:4:18","type":""},{"name":"bytes","nodeType":"YulTypedName","src":"10825:5:18","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"10835:6:18","type":""}],"src":"10791:169:18"},{"body":{"nodeType":"YulBlock","src":"11046:214:18","statements":[{"nodeType":"YulAssignment","src":"11179:37:18","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"11206:4:18"},{"name":"len","nodeType":"YulIdentifier","src":"11212:3:18"}],"functionName":{"name":"mask_bytes_dynamic","nodeType":"YulIdentifier","src":"11187:18:18"},"nodeType":"YulFunctionCall","src":"11187:29:18"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"11179:4:18"}]},{"nodeType":"YulAssignment","src":"11225:29:18","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"11236:4:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11246:1:18","type":"","value":"2"},{"name":"len","nodeType":"YulIdentifier","src":"11249:3:18"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"11242:3:18"},"nodeType":"YulFunctionCall","src":"11242:11:18"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"11233:2:18"},"nodeType":"YulFunctionCall","src":"11233:21:18"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"11225:4:18"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"11027:4:18","type":""},{"name":"len","nodeType":"YulTypedName","src":"11033:3:18","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"11041:4:18","type":""}],"src":"10965:295:18"},{"body":{"nodeType":"YulBlock","src":"11357:1303:18","statements":[{"nodeType":"YulVariableDeclaration","src":"11368:51:18","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11415:3:18"}],"functionName":{"name":"array_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"11382:32:18"},"nodeType":"YulFunctionCall","src":"11382:37:18"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"11372:6:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"11504:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"11506:16:18"},"nodeType":"YulFunctionCall","src":"11506:18:18"},"nodeType":"YulExpressionStatement","src":"11506:18:18"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"11476:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"11484:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11473:2:18"},"nodeType":"YulFunctionCall","src":"11473:30:18"},"nodeType":"YulIf","src":"11470:56:18"},{"nodeType":"YulVariableDeclaration","src":"11536:52:18","value":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"11582:4:18"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"11576:5:18"},"nodeType":"YulFunctionCall","src":"11576:11:18"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"11550:25:18"},"nodeType":"YulFunctionCall","src":"11550:38:18"},"variables":[{"name":"oldLen","nodeType":"YulTypedName","src":"11540:6:18","type":""}]},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"11681:4:18"},{"name":"oldLen","nodeType":"YulIdentifier","src":"11687:6:18"},{"name":"newLen","nodeType":"YulIdentifier","src":"11695:6:18"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nodeType":"YulIdentifier","src":"11635:45:18"},"nodeType":"YulFunctionCall","src":"11635:67:18"},"nodeType":"YulExpressionStatement","src":"11635:67:18"},{"nodeType":"YulVariableDeclaration","src":"11712:18:18","value":{"kind":"number","nodeType":"YulLiteral","src":"11729:1:18","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"11716:9:18","type":""}]},{"nodeType":"YulAssignment","src":"11740:17:18","value":{"kind":"number","nodeType":"YulLiteral","src":"11753:4:18","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"11740:9:18"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"11804:611:18","statements":[{"nodeType":"YulVariableDeclaration","src":"11818:37:18","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"11837:6:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11849:4:18","type":"","value":"0x1f"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11845:3:18"},"nodeType":"YulFunctionCall","src":"11845:9:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11833:3:18"},"nodeType":"YulFunctionCall","src":"11833:22:18"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"11822:7:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11869:51:18","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"11915:4:18"}],"functionName":{"name":"array_dataslot_t_string_storage","nodeType":"YulIdentifier","src":"11883:31:18"},"nodeType":"YulFunctionCall","src":"11883:37:18"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"11873:6:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11933:10:18","value":{"kind":"number","nodeType":"YulLiteral","src":"11942:1:18","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"11937:1:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"12001:163:18","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"12026:6:18"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"12044:3:18"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"12049:9:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12040:3:18"},"nodeType":"YulFunctionCall","src":"12040:19:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12034:5:18"},"nodeType":"YulFunctionCall","src":"12034:26:18"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"12019:6:18"},"nodeType":"YulFunctionCall","src":"12019:42:18"},"nodeType":"YulExpressionStatement","src":"12019:42:18"},{"nodeType":"YulAssignment","src":"12078:24:18","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"12092:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"12100:1:18","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12088:3:18"},"nodeType":"YulFunctionCall","src":"12088:14:18"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"12078:6:18"}]},{"nodeType":"YulAssignment","src":"12119:31:18","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"12136:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"12147:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12132:3:18"},"nodeType":"YulFunctionCall","src":"12132:18:18"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"12119:9:18"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11967:1:18"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"11970:7:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11964:2:18"},"nodeType":"YulFunctionCall","src":"11964:14:18"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"11979:21:18","statements":[{"nodeType":"YulAssignment","src":"11981:17:18","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11990:1:18"},{"kind":"number","nodeType":"YulLiteral","src":"11993:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11986:3:18"},"nodeType":"YulFunctionCall","src":"11986:12:18"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"11981:1:18"}]}]},"pre":{"nodeType":"YulBlock","src":"11960:3:18","statements":[]},"src":"11956:208:18"},{"body":{"nodeType":"YulBlock","src":"12200:156:18","statements":[{"nodeType":"YulVariableDeclaration","src":"12218:43:18","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"12245:3:18"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"12250:9:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12241:3:18"},"nodeType":"YulFunctionCall","src":"12241:19:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12235:5:18"},"nodeType":"YulFunctionCall","src":"12235:26:18"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"12222:9:18","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"12285:6:18"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"12312:9:18"},{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"12327:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"12335:4:18","type":"","value":"0x1f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12323:3:18"},"nodeType":"YulFunctionCall","src":"12323:17:18"}],"functionName":{"name":"mask_bytes_dynamic","nodeType":"YulIdentifier","src":"12293:18:18"},"nodeType":"YulFunctionCall","src":"12293:48:18"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"12278:6:18"},"nodeType":"YulFunctionCall","src":"12278:64:18"},"nodeType":"YulExpressionStatement","src":"12278:64:18"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"12183:7:18"},{"name":"newLen","nodeType":"YulIdentifier","src":"12192:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12180:2:18"},"nodeType":"YulFunctionCall","src":"12180:19:18"},"nodeType":"YulIf","src":"12177:179:18"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"12376:4:18"},{"arguments":[{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"12390:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"12398:1:18","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"12386:3:18"},"nodeType":"YulFunctionCall","src":"12386:14:18"},{"kind":"number","nodeType":"YulLiteral","src":"12402:1:18","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12382:3:18"},"nodeType":"YulFunctionCall","src":"12382:22:18"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"12369:6:18"},"nodeType":"YulFunctionCall","src":"12369:36:18"},"nodeType":"YulExpressionStatement","src":"12369:36:18"}]},"nodeType":"YulCase","src":"11797:618:18","value":{"kind":"number","nodeType":"YulLiteral","src":"11802:1:18","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"12432:222:18","statements":[{"nodeType":"YulVariableDeclaration","src":"12446:14:18","value":{"kind":"number","nodeType":"YulLiteral","src":"12459:1:18","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12450:5:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"12483:67:18","statements":[{"nodeType":"YulAssignment","src":"12501:35:18","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"12520:3:18"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"12525:9:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12516:3:18"},"nodeType":"YulFunctionCall","src":"12516:19:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12510:5:18"},"nodeType":"YulFunctionCall","src":"12510:26:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"12501:5:18"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"12476:6:18"},"nodeType":"YulIf","src":"12473:77:18"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"12570:4:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12629:5:18"},{"name":"newLen","nodeType":"YulIdentifier","src":"12636:6:18"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"12576:52:18"},"nodeType":"YulFunctionCall","src":"12576:67:18"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"12563:6:18"},"nodeType":"YulFunctionCall","src":"12563:81:18"},"nodeType":"YulExpressionStatement","src":"12563:81:18"}]},"nodeType":"YulCase","src":"12424:230:18","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"11777:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"11785:2:18","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11774:2:18"},"nodeType":"YulFunctionCall","src":"11774:14:18"},"nodeType":"YulSwitch","src":"11767:887:18"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"11346:4:18","type":""},{"name":"src","nodeType":"YulTypedName","src":"11352:3:18","type":""}],"src":"11265:1395:18"},{"body":{"nodeType":"YulBlock","src":"12711:32:18","statements":[{"nodeType":"YulAssignment","src":"12721:16:18","value":{"name":"value","nodeType":"YulIdentifier","src":"12732:5:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"12721:7:18"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12693:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"12703:7:18","type":""}],"src":"12666:77:18"},{"body":{"nodeType":"YulBlock","src":"12814:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12831:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12854:5:18"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"12836:17:18"},"nodeType":"YulFunctionCall","src":"12836:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12824:6:18"},"nodeType":"YulFunctionCall","src":"12824:37:18"},"nodeType":"YulExpressionStatement","src":"12824:37:18"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12802:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12809:3:18","type":""}],"src":"12749:118:18"},{"body":{"nodeType":"YulBlock","src":"12938:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12955:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12978:5:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"12960:17:18"},"nodeType":"YulFunctionCall","src":"12960:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12948:6:18"},"nodeType":"YulFunctionCall","src":"12948:37:18"},"nodeType":"YulExpressionStatement","src":"12948:37:18"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12926:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12933:3:18","type":""}],"src":"12873:118:18"},{"body":{"nodeType":"YulBlock","src":"13207:454:18","statements":[{"nodeType":"YulAssignment","src":"13217:27:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13229:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"13240:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13225:3:18"},"nodeType":"YulFunctionCall","src":"13225:19:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13217:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13298:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13311:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"13322:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13307:3:18"},"nodeType":"YulFunctionCall","src":"13307:17:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"13254:43:18"},"nodeType":"YulFunctionCall","src":"13254:71:18"},"nodeType":"YulExpressionStatement","src":"13254:71:18"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13379:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13392:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"13403:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13388:3:18"},"nodeType":"YulFunctionCall","src":"13388:18:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"13335:43:18"},"nodeType":"YulFunctionCall","src":"13335:72:18"},"nodeType":"YulExpressionStatement","src":"13335:72:18"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13461:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13474:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"13485:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13470:3:18"},"nodeType":"YulFunctionCall","src":"13470:18:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"13417:43:18"},"nodeType":"YulFunctionCall","src":"13417:72:18"},"nodeType":"YulExpressionStatement","src":"13417:72:18"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"13543:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13556:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"13567:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13552:3:18"},"nodeType":"YulFunctionCall","src":"13552:18:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"13499:43:18"},"nodeType":"YulFunctionCall","src":"13499:72:18"},"nodeType":"YulExpressionStatement","src":"13499:72:18"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"13625:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13638:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"13649:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13634:3:18"},"nodeType":"YulFunctionCall","src":"13634:19:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"13581:43:18"},"nodeType":"YulFunctionCall","src":"13581:73:18"},"nodeType":"YulExpressionStatement","src":"13581:73:18"}]},"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","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13147:9:18","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13159:6:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13167:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13175:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13183:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13191:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13202:4:18","type":""}],"src":"12997:664:18"},{"body":{"nodeType":"YulBlock","src":"13729:184:18","statements":[{"nodeType":"YulVariableDeclaration","src":"13739:10:18","value":{"kind":"number","nodeType":"YulLiteral","src":"13748:1:18","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"13743:1:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"13808:63:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"13833:3:18"},{"name":"i","nodeType":"YulIdentifier","src":"13838:1:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13829:3:18"},"nodeType":"YulFunctionCall","src":"13829:11:18"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"13852:3:18"},{"name":"i","nodeType":"YulIdentifier","src":"13857:1:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13848:3:18"},"nodeType":"YulFunctionCall","src":"13848:11:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13842:5:18"},"nodeType":"YulFunctionCall","src":"13842:18:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13822:6:18"},"nodeType":"YulFunctionCall","src":"13822:39:18"},"nodeType":"YulExpressionStatement","src":"13822:39:18"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13769:1:18"},{"name":"length","nodeType":"YulIdentifier","src":"13772:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13766:2:18"},"nodeType":"YulFunctionCall","src":"13766:13:18"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13780:19:18","statements":[{"nodeType":"YulAssignment","src":"13782:15:18","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13791:1:18"},{"kind":"number","nodeType":"YulLiteral","src":"13794:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13787:3:18"},"nodeType":"YulFunctionCall","src":"13787:10:18"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"13782:1:18"}]}]},"pre":{"nodeType":"YulBlock","src":"13762:3:18","statements":[]},"src":"13758:113:18"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"13891:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"13896:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13887:3:18"},"nodeType":"YulFunctionCall","src":"13887:16:18"},{"kind":"number","nodeType":"YulLiteral","src":"13905:1:18","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13880:6:18"},"nodeType":"YulFunctionCall","src":"13880:27:18"},"nodeType":"YulExpressionStatement","src":"13880:27:18"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"13711:3:18","type":""},{"name":"dst","nodeType":"YulTypedName","src":"13716:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"13721:6:18","type":""}],"src":"13667:246:18"},{"body":{"nodeType":"YulBlock","src":"14011:285:18","statements":[{"nodeType":"YulVariableDeclaration","src":"14021:53:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14068:5:18"}],"functionName":{"name":"array_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"14035:32:18"},"nodeType":"YulFunctionCall","src":"14035:39:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14025:6:18","type":""}]},{"nodeType":"YulAssignment","src":"14083:78:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14149:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"14154:6:18"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14090:58:18"},"nodeType":"YulFunctionCall","src":"14090:71:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14083:3:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14209:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"14216:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14205:3:18"},"nodeType":"YulFunctionCall","src":"14205:16:18"},{"name":"pos","nodeType":"YulIdentifier","src":"14223:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"14228:6:18"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"14170:34:18"},"nodeType":"YulFunctionCall","src":"14170:65:18"},"nodeType":"YulExpressionStatement","src":"14170:65:18"},{"nodeType":"YulAssignment","src":"14244:46:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14255:3:18"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14282:6:18"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"14260:21:18"},"nodeType":"YulFunctionCall","src":"14260:29:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14251:3:18"},"nodeType":"YulFunctionCall","src":"14251:39:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14244:3:18"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13992:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"13999:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14007:3:18","type":""}],"src":"13919:377:18"},{"body":{"nodeType":"YulBlock","src":"14420:195:18","statements":[{"nodeType":"YulAssignment","src":"14430:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14442:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"14453:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14438:3:18"},"nodeType":"YulFunctionCall","src":"14438:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14430:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14477:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"14488:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14473:3:18"},"nodeType":"YulFunctionCall","src":"14473:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14496:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"14502:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14492:3:18"},"nodeType":"YulFunctionCall","src":"14492:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14466:6:18"},"nodeType":"YulFunctionCall","src":"14466:47:18"},"nodeType":"YulExpressionStatement","src":"14466:47:18"},{"nodeType":"YulAssignment","src":"14522:86:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14594:6:18"},{"name":"tail","nodeType":"YulIdentifier","src":"14603:4:18"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14530:63:18"},"nodeType":"YulFunctionCall","src":"14530:78:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14522:4:18"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14392:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14404:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14415:4:18","type":""}],"src":"14302:313:18"},{"body":{"nodeType":"YulBlock","src":"14679:40:18","statements":[{"nodeType":"YulAssignment","src":"14690:22:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14706:5:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14700:5:18"},"nodeType":"YulFunctionCall","src":"14700:12:18"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14690:6:18"}]}]},"name":"array_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14662:5:18","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14672:6:18","type":""}],"src":"14621:98:18"},{"body":{"nodeType":"YulBlock","src":"14781:60:18","statements":[{"nodeType":"YulAssignment","src":"14791:11:18","value":{"name":"ptr","nodeType":"YulIdentifier","src":"14799:3:18"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"14791:4:18"}]},{"nodeType":"YulAssignment","src":"14812:22:18","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"14824:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"14829:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14820:3:18"},"nodeType":"YulFunctionCall","src":"14820:14:18"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"14812:4:18"}]}]},"name":"array_dataslot_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"14768:3:18","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"14776:4:18","type":""}],"src":"14725:116:18"},{"body":{"nodeType":"YulBlock","src":"14902:99:18","statements":[{"nodeType":"YulVariableDeclaration","src":"14913:42:18","value":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"14950:3:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14944:5:18"},"nodeType":"YulFunctionCall","src":"14944:10:18"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"14926:17:18"},"nodeType":"YulFunctionCall","src":"14926:29:18"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"14917:5:18","type":""}]},{"nodeType":"YulAssignment","src":"14965:29:18","value":{"name":"value","nodeType":"YulIdentifier","src":"14989:5:18"},"variableNames":[{"name":"returnValue","nodeType":"YulIdentifier","src":"14965:11:18"}]}]},"name":"read_from_memoryt_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"14882:3:18","type":""}],"returnVariables":[{"name":"returnValue","nodeType":"YulTypedName","src":"14890:11:18","type":""}],"src":"14847:154:18"},{"body":{"nodeType":"YulBlock","src":"15097:504:18","statements":[{"nodeType":"YulVariableDeclaration","src":"15108:52:18","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"15154:5:18"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"15122:31:18"},"nodeType":"YulFunctionCall","src":"15122:38:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15112:6:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15169:21:18","value":{"name":"array","nodeType":"YulIdentifier","src":"15185:5:18"},"variables":[{"name":"dataArea","nodeType":"YulTypedName","src":"15173:8:18","type":""}]},{"nodeType":"YulAssignment","src":"15200:52:18","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"15246:5:18"}],"functionName":{"name":"array_dataslot_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"15212:33:18"},"nodeType":"YulFunctionCall","src":"15212:40:18"},"variableNames":[{"name":"dataArea","nodeType":"YulIdentifier","src":"15200:8:18"}]},{"nodeType":"YulAssignment","src":"15262:44:18","value":{"arguments":[{"name":"dataArea","nodeType":"YulIdentifier","src":"15297:8:18"}],"functionName":{"name":"read_from_memoryt_bytes32","nodeType":"YulIdentifier","src":"15271:25:18"},"nodeType":"YulFunctionCall","src":"15271:35:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"15262:5:18"}]},{"body":{"nodeType":"YulBlock","src":"15334:260:18","statements":[{"nodeType":"YulAssignment","src":"15348:236:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15378:5:18"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15445:1:18","type":"","value":"8"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15452:2:18","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"15456:6:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15448:3:18"},"nodeType":"YulFunctionCall","src":"15448:15:18"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"15441:3:18"},"nodeType":"YulFunctionCall","src":"15441:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"15486:66:18","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nodeType":"YulIdentifier","src":"15401:18:18"},"nodeType":"YulFunctionCall","src":"15401:169:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15357:3:18"},"nodeType":"YulFunctionCall","src":"15357:227:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"15348:5:18"}]}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15322:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"15330:2:18","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15319:2:18"},"nodeType":"YulFunctionCall","src":"15319:14:18"},"nodeType":"YulIf","src":"15316:278:18"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"15081:5:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"15091:5:18","type":""}],"src":"15007:594:18"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint128(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n    }\n\n    function validator_revert_t_uint128(value) {\n        if iszero(eq(value, cleanup_t_uint128(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint128_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint128(value)\n    }\n\n    function cleanup_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function validator_revert_t_uint32(value) {\n        if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint32_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint32(value)\n    }\n\n    // struct Config.Config_\n    function abi_decode_t_struct$_Config__$2546_memory_ptr_fromMemory(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // depositBaseFee\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_uint128_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // depositFeeRate\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_uint32_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // finalizeTxGas\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_uint32_fromMemory(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_Config__$2546_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_Config__$2546_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1(memPtr) {\n\n        mstore(add(memPtr, 0), \"relayer exists\")\n\n    }\n\n    function abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n        store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function shift_right_0_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(0, value)\n\n    }\n\n    function cleanup_from_storage_t_uint128(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n    }\n\n    function extract_from_storage_value_offset_0t_uint128(slot_value) -> value {\n        value := cleanup_from_storage_t_uint128(shift_right_0_unsigned(slot_value))\n    }\n\n    function abi_encode_t_uint128_to_t_uint128(value, pos) {\n        mstore(pos, cleanup_t_uint128(value))\n    }\n\n    function shift_right_128_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(128, value)\n\n    }\n\n    function cleanup_from_storage_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function extract_from_storage_value_offset_16t_uint32(slot_value) -> value {\n        value := cleanup_from_storage_t_uint32(shift_right_128_unsigned(slot_value))\n    }\n\n    function abi_encode_t_uint32_to_t_uint32(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function shift_right_160_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(160, value)\n\n    }\n\n    function extract_from_storage_value_offset_20t_uint32(slot_value) -> value {\n        value := cleanup_from_storage_t_uint32(shift_right_160_unsigned(slot_value))\n    }\n\n    // struct Config.Config_ -> struct Config.Config_\n    function abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack(value, pos)  {\n        let tail := add(pos, 0x60)\n        let slotValue := 0\n\n        {\n            // depositBaseFee\n            slotValue := sload(add(value, 0x00))\n            let memberValue0 := extract_from_storage_value_offset_0t_uint128(slotValue)\n            abi_encode_t_uint128_to_t_uint128(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // depositFeeRate\n\n            let memberValue0 := extract_from_storage_value_offset_16t_uint32(slotValue)\n            abi_encode_t_uint32_to_t_uint32(memberValue0, add(pos, 0x20))\n        }\n\n        {\n            // finalizeTxGas\n\n            let memberValue0 := extract_from_storage_value_offset_20t_uint32(slotValue)\n            abi_encode_t_uint32_to_t_uint32(memberValue0, add(pos, 0x40))\n        }\n\n    }\n\n    function abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\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\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_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        tail := add(headStart, 160)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_address_to_t_address_fromStack(value4,  add(headStart, 128))\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_dataslot_t_bytes_memory_ptr(ptr) -> data {\n        data := ptr\n\n        data := add(ptr, 0x20)\n\n    }\n\n    function read_from_memoryt_bytes32(ptr) -> returnValue {\n\n        let value := cleanup_t_bytes32(mload(ptr))\n\n        returnValue :=\n\n        value\n\n    }\n\n    function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value {\n\n        let length := array_length_t_bytes_memory_ptr(array)\n        let dataArea := array\n\n        dataArea := array_dataslot_t_bytes_memory_ptr(array)\n\n        value := read_from_memoryt_bytes32(dataArea)\n\n        if lt(length, 32) {\n            value := and(\n                value,\n                shift_left_dynamic(\n                    mul(8, sub(32, length)),\n                    0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n                )\n            )\n        }\n\n    }\n\n}\n","id":18,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"6101606040527fca4b8f8c7d0ade5601d7a2c664085fe922706852ae451e86e32cd91be82b8a006006553480156200003657600080fd5b50604051620031d2380380620031d28339810160408190526200005991620004b5565b6040518060400160405280600a81526020016922aa242222a624ab22a960b11b81525060405180604001604052806002815260200161763160f01b81525082620000b2620000ac6200013360201b60201c565b62000137565b620000cf620000c96002546001600160a01b031690565b62000155565b620000da81620001fa565b50620000e88260046200027e565b61012052620000f98160056200027e565b61014052815160208084019190912060e052815190820120610100524660a05262000123620002b7565b60805250503060c05250620008e6565b3390565b600380546001600160a01b0319169055620001528162000313565b50565b6001600160a01b03811660009081526020819052604090205460ff16156200019a5760405162461bcd60e51b81526004016200019190620004e2565b60405180910390fd5b6001600160a01b03811660009081526020819052604090819020805460ff19166001179055517f7c363f8df6087ba61be7d84b7a936d5eb39ebd1ab56dd8188a27a60e3b301a2790620001ef90839062000532565b60405180910390a150565b80516001805460208401516040808601516001600160801b039095166001600160a01b031990931692909217600160801b63ffffffff928316021763ffffffff60a01b1916600160a01b919094160292909217815590517fc3b5a50e47b6b36cbfdf9f2816f54bcadaa46c6d4469b530f5e1fd8cc70e8fd891620001ef91620005f7565b60006020835110156200029e57620002968362000365565b9050620002b1565b81620002ab8482620006f5565b5060ff90505b92915050565b60e05161010051604051600092620002f8927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9246903090602001620007cc565b60405160208183030381529060405280519060200120905090565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600080829050601f8151111562000393578260405163305a27a960e01b81526004016200019191906200087d565b8051620003a082620008a2565b179392505050565b90565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b0382111715620003e957620003e9620003ab565b6040525050565b6000620003fc60405190565b90506200040a8282620003c1565b919050565b6001600160801b0381165b81146200015257600080fd5b8051620002b1816200040f565b63ffffffff81166200041a565b8051620002b18162000433565b600060608284031215620004645762000464600080fd5b620004706060620003f0565b9050600062000480848462000426565b8252506020620004938484830162000440565b6020830152506040620004a98482850162000440565b60408301525092915050565b600060608284031215620004cc57620004cc600080fd5b6000620004da84846200044d565b949350505050565b60208082528101620002b181600e81526d72656c617965722065786973747360901b602082015260400190565b60006001600160a01b038216620002b1565b6200052c816200050f565b82525050565b60208101620002b1828462000521565b60006001600160801b038216620002b1565b6001600160801b0381166200052c565b6000620002b1620005758360801c90565b63ffffffff1690565b63ffffffff81166200052c565b6000620002b1620005758360a01c90565b80546060830190620005ae8162000542565b620005ba858262000554565b50620005c68162000564565b620005d560208601826200057e565b50620005e1816200058b565b620005f060408601826200057e565b5050505050565b60608101620002b182846200059c565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806200063257607f821691505b60208210810362000647576200064762000607565b50919050565b6000620002b1620003a88381565b62000666836200064d565b815460001960089490940293841b1916921b91909117905550565b6000620006908184846200065b565b505050565b81811015620006b457620006ab60008262000681565b60010162000695565b5050565b601f82111562000690576000818152602090206020601f85010481016020851015620006e15750805b620005f06020601f86010483018262000695565b81516001600160401b03811115620007115762000711620003ab565b6200071d82546200061d565b6200072a828285620006b8565b6020601f831160018114620007615760008415620007485750858201515b600019600886021c1981166002860217865550620007bd565b600085815260208120601f198616915b8281101562000793578885015182556020948501946001909201910162000771565b86831015620007b05784890151600019601f89166008021c191682555b6001600288020188555050505b505050505050565b806200052c565b60a08101620007dc8288620007c5565b620007eb6020830187620007c5565b620007fa6040830186620007c5565b620008096060830185620007c5565b62000818608083018462000521565b9695505050505050565b60005b838110156200083f57818101518382015260200162000825565b50506000910152565b600062000853825190565b8084526020840193506200086c81856020860162000822565b601f01601f19169290920192915050565b6020808252810162000890818462000848565b9392505050565b6000620002b1825190565b6000620008ad825190565b60208301620008bc8162000897565b92506020821015620008df57620008da600019836020036008021b90565b831692505b5050919050565b60805160a05160c05160e0516101005161012051610140516128916200094160003960006108dd015260006108b2015260006116b2015260006116910152600061150f015260006115390152600061156301526128916000f3fe6080604052600436106101dc5760003560e01c80638456cb5911610102578063cb11b9f411610095578063e63ea40811610064578063e63ea40814610587578063f2fde38b146105a7578063f35acf51146105c7578063fe173b97146105dc57600080fd5b8063cb11b9f414610505578063dd39f00d14610529578063e183bb5a14610549578063e30c39781461056957600080fd5b80638fbd65e6116100d15780638fbd65e61461049f5780639a8a0592146104bf578063b1cccca2146104d2578063c8dc8a0c146104e557600080fd5b80638456cb591461041b57806384b0196e1461043057806387939d78146104585780638da5cb5b1461047857600080fd5b80635aaf6cc71161017a578063715018a611610149578063715018a614610379578063788daa171461038e57806379502c55146103be57806379ba50971461040657600080fd5b80635aaf6cc7146102e85780635c975abb1461030857806360f0a5ac14610329578063638d9c561461034957600080fd5b80633f4ba83a116101b65780633f4ba83a1461024a578063423c485a1461025f5780634d5ff840146102955780635300f841146102ab57600080fd5b806310c58d65146101e85780631251d14e1461020a57806328ad6c161461022a57600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b50610208610203366004611720565b6105ef565b005b34801561021657600080fd5b50610208610225366004611720565b610603565b34801561023657600080fd5b50610208610245366004611818565b610614565b34801561025657600080fd5b50610208610625565b34801561026b57600080fd5b5061027f61027a36600461184a565b61066e565b60405161028c9190611873565b60405180910390f35b3480156102a157600080fd5b5061027f60065481565b3480156102b757600080fd5b506102db6102c63660046118a6565b60006020819052908152604090205460ff1681565b60405161028c91906118cf565b3480156102f457600080fd5b50610208610303366004611a49565b6106b6565b34801561031457600080fd5b506003546102db90600160a01b900460ff1681565b34801561033557600080fd5b506102086103443660046118a6565b610803565b34801561035557600080fd5b506102db61036436600461184a565b60086020526000908152604090205460ff1681565b34801561038557600080fd5b50610208610814565b34801561039a57600080fd5b506102db6103a936600461184a565b60076020526000908152604090205460ff1681565b3480156103ca57600080fd5b506001546103f7906001600160801b0381169063ffffffff600160801b8204811691600160a01b90041683565b60405161028c93929190611a9f565b34801561041257600080fd5b50610208610828565b34801561042757600080fd5b5061020861085d565b34801561043c57600080fd5b506104456108a4565b60405161028c9796959493929190611b93565b34801561046457600080fd5b50610208610473366004611d3a565b61092d565b34801561048457600080fd5b506002546001600160a01b03165b60405161028c9190611d75565b3480156104ab57600080fd5b506102086104ba366004611d83565b610a10565b3480156104cb57600080fd5b504661027f565b6102086104e0366004611da4565b610b04565b3480156104f157600080fd5b50610208610500366004611df4565b610bf5565b34801561051157600080fd5b5061051c620f424081565b60405161028c9190611e15565b34801561053557600080fd5b506102086105443660046118a6565b610c06565b34801561055557600080fd5b5061027f610564366004611e23565b610c17565b34801561057557600080fd5b506003546001600160a01b0316610492565b34801561059357600080fd5b506102086105a2366004611ea6565b610c5d565b3480156105b357600080fd5b506102086105c23660046118a6565b610d9d565b3480156105d357600080fd5b5061027f610e0e565b3480156105e857600080fd5b503a61027f565b6105f7610e30565b61060081610e5a565b50565b61060b610e30565b61060081610e9f565b61061c610e30565b61060081610f12565b61062d610e30565b600354600160a01b900460ff1661065f5760405162461bcd60e51b815260040161065690611f10565b60405180910390fd5b6003805460ff60a01b19169055565b600154600090620f42409061069090600160801b900463ffffffff1684611f36565b61069a9190611f6b565b6001546106b091906001600160801b0316611f83565b92915050565b805160008181526008602052604090205460ff16156106e75760405162461bcd60e51b815260040161065690611fca565b6000818152600860205260409020805460ff19166001179055600354600160a01b900460ff161561072a5760405162461bcd60e51b815260040161065690611ff8565b60006107488360000151846020015185604001518660600151610c17565b905061075d8360200151828560800151610f82565b6107795760405162461bcd60e51b815260040161065690612030565b61079961078e6002546001600160a01b031690565b828560a00151610f82565b6107b55760405162461bcd60e51b815260040161065690612064565b6107c783604001518460600151610fe5565b7fa92a9cf2c9f7f08e828b3b3ad56e58a518a0446039b53c6a35ee54340c1fbf10836040516107f691906120fc565b60405180910390a1505050565b61080b610e30565b61060081611061565b61081c610e30565b61082660006110ec565b565b60035433906001600160a01b031681146108545760405162461bcd60e51b815260040161065690612156565b610600816110ec565b610865610e30565b600354600160a01b900460ff161561088f5760405162461bcd60e51b81526004016106569061218b565b6003805460ff60a01b1916600160a01b179055565b6000606080828080836108d87f00000000000000000000000000000000000000000000000000000000000000006004611105565b6109037f00000000000000000000000000000000000000000000000000000000000000006005611105565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b3360009081526020819052604090205460ff1661095c5760405162461bcd60e51b8152600401610656906121cf565b60005b8151811015610a0c57600082828151811061097c5761097c6121df565b602090810291909101810151808201516000908152600790925260409091205490915060ff16156109bf5760405162461bcd60e51b815260040161065690612218565b6020808201805160009081526007909252604091829020805460ff19166001179055825190519183015160608401516109f99391906111b1565b5080610a0481612228565b91505061095f565b5050565b6020808201516000818152600790925260409091205460ff1615610a465760405162461bcd60e51b815260040161065690612218565b6000818152600760205260409020805460ff19166001179055608082015163ffffffff8116421115610a8a5760405162461bcd60e51b815260040161065690612263565b3360009081526020819052604090205460ff16610ab95760405162461bcd60e51b8152600401610656906121cf565b600354600160a01b900460ff1615610ae35760405162461bcd60e51b815260040161065690611ff8565b610aff83600001518460200151856040015186606001516111b1565b505050565b808063ffffffff16421115610b2b5760405162461bcd60e51b815260040161065690612263565b600354600160a01b900460ff1615610b555760405162461bcd60e51b815260040161065690611ff8565b346000610b618261066e565b905080821015610b835760405162461bcd60e51b8152600401610656906122b2565b610b8d81836122c2565b9150610baa610ba46002546001600160a01b031690565b82610fe5565b7f073bfd0ef2114072a401cb773cac34805c7a6a50ea8aa09aca0698a1608d47b54686338986868a604051610be597969594939291906122d5565b60405180910390a1505050505050565b610bfd610e30565b61060081611247565b610c0e610e30565b61060081611287565b6000610c5260065486868686604051602001610c3795949392919061233d565b60405160208183030381529060405280519060200120611313565b90505b949350505050565b610c65610e30565b6001600160a01b038316610cf5576000826001600160a01b031682604051610c8c90612389565b60006040518083038185875af1925050503d8060008114610cc9576040519150601f19603f3d011682016040523d82523d6000602084013e610cce565b606091505b5050905080610cef5760405162461bcd60e51b8152600401610656906123bb565b50610d68565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610d2390859085906004016123cb565b6020604051808303816000875af1158015610d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6691906123f9565b505b7f0c8988bc8137b371a82f0a753a05b85a2c3cdecff90c59eaf36ec6f7b3bce499338385846040516107f6949392919061242e565b610da5610e30565b600380546001600160a01b0383166001600160a01b03199091168117909155610dd66002546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60003a600154610e2b9190600160a01b900463ffffffff16611f36565b905090565b6002546001600160a01b031633146108265760405162461bcd60e51b815260040161065690612495565b6001805463ffffffff60a01b1916600160a01b63ffffffff84160217815560405160008051602061283c83398151915291610e949161252c565b60405180910390a150565b610ead6014620f424061253a565b63ffffffff168163ffffffff161115610ed85760405162461bcd60e51b815260040161065690612594565b6001805463ffffffff60801b1916600160801b63ffffffff84160217815560405160008051602061283c83398151915291610e949161252c565b80516001805460208401516040808601516001600160801b039095166001600160a01b031990931692909217600160801b63ffffffff928316021763ffffffff60a01b1916600160a01b9190941602929092178155905160008051602061283c83398151915291610e949161252c565b6000806000610f918585611340565b90925090506000816004811115610faa57610faa6125a4565b148015610fc85750856001600160a01b0316826001600160a01b0316145b80610fd95750610fd9868686611385565b925050505b9392505050565b6000826001600160a01b031682604051610ffe90612389565b60006040518083038185875af1925050503d806000811461103b576040519150601f19603f3d011682016040523d82523d6000602084013e611040565b606091505b5050905080610aff5760405162461bcd60e51b8152600401610656906125e0565b6001600160a01b03811660009081526020819052604090205460ff166110995760405162461bcd60e51b81526004016106569061261a565b6001600160a01b03811660009081526020819052604090819020805460ff19166001179055517f370e7a3077485fd8cef64916374045a1bfae1d0984617c2833e614ed87b9d0df90610e94908390611d75565b600380546001600160a01b031916905561060081611471565b606060ff831461111f57611118836114c3565b90506106b0565b81805461112b90612640565b80601f016020809104026020016040519081016040528092919081815260200182805461115790612640565b80156111a45780601f10611179576101008083540402835291602001916111a4565b820191906000526020600020905b81548152906001019060200180831161118757829003601f168201915b5050505050905092915050565b60006111bb610e0e565b9050808210156111dd5760405162461bcd60e51b8152600401610656906126ad565b6111e781836122c2565b91506111f38383610fe5565b6111fd3382610fe5565b7f02e3e72232a62e8a18c680821d40213041c2c22c1f0b30f80463eeae3320064c3386468787878760405161123897969594939291906126bd565b60405180910390a15050505050565b600180546fffffffffffffffffffffffffffffffff19166001600160801b03831617815560405160008051602061283c83398151915291610e949161252c565b6001600160a01b03811660009081526020819052604090205460ff16156112c05760405162461bcd60e51b81526004016106569061273e565b6001600160a01b03811660009081526020819052604090819020805460ff19166001179055517f7c363f8df6087ba61be7d84b7a936d5eb39ebd1ab56dd8188a27a60e3b301a2790610e94908390611d75565b60006106b0611320611502565b8360405161190160f01b8152600281019290925260228201526042902090565b60008082516041036113765760208301516040840151606085015160001a61136a8782858561158d565b9450945050505061137e565b506000905060025b9250929050565b6000806000856001600160a01b0316631626ba7e60e01b86866040516024016113af92919061274e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516113ed9190612790565b600060405180830381855afa9150503d8060008114611428576040519150601f19603f3d011682016040523d82523d6000602084013e61142d565b606091505b509150915081801561144157506020815110155b8015610fd957508051630b135d3f60e11b9061146690830160209081019084016127a7565b149695505050505050565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606060006114d083611644565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561155b57507f000000000000000000000000000000000000000000000000000000000000000046145b1561158557507f000000000000000000000000000000000000000000000000000000000000000090565b610e2b61166c565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115c4575060009050600361163b565b6000600187878787604051600081526020016040526040516115e994939291906127d1565b6020604051602081039080840390855afa15801561160b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166116345760006001925092505061163b565b9150600090505b94509492505050565b600060ff8216601f8111156106b057604051632cd44ac360e21b815260040160405180910390fd5b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046306040516020016116e79594939291906127f9565b60405160208183030381529060405280519060200120905090565b63ffffffff81165b811461060057600080fd5b80356106b081611702565b60006020828403121561173557611735600080fd5b6000610c558484611715565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561177d5761177d611741565b6040525050565b600061178f60405190565b905061179b8282611757565b919050565b6001600160801b03811661170a565b80356106b0816117a0565b6000606082840312156117cf576117cf600080fd5b6117d96060611784565b905060006117e784846117af565b82525060206117f884848301611715565b602083015250604061180c84828501611715565b60408301525092915050565b60006060828403121561182d5761182d600080fd5b6000610c5584846117ba565b8061170a565b80356106b081611839565b60006020828403121561185f5761185f600080fd5b6000610c55848461183f565b805b82525050565b602081016106b0828461186b565b60006001600160a01b0382166106b0565b61170a81611881565b80356106b081611892565b6000602082840312156118bb576118bb600080fd5b6000610c55848461189b565b80151561186d565b602081016106b082846118c7565b600067ffffffffffffffff8211156118f7576118f7611741565b601f19601f83011660200192915050565b82818337506000910152565b6000611927611922846118dd565b611784565b90508281526020810184848401111561194257611942600080fd5b61194d848285611908565b509392505050565b600082601f83011261196957611969600080fd5b8135610c55848260208601611914565b600060c0828403121561198e5761198e600080fd5b61199860c0611784565b905060006119a6848461183f565b82525060206119b78484830161189b565b60208301525060406119cb8482850161189b565b60408301525060606119df8482850161183f565b606083015250608082013567ffffffffffffffff811115611a0257611a02600080fd5b611a0e84828501611955565b60808301525060a082013567ffffffffffffffff811115611a3157611a31600080fd5b611a3d84828501611955565b60a08301525092915050565b600060208284031215611a5e57611a5e600080fd5b813567ffffffffffffffff811115611a7857611a78600080fd5b610c5584828501611979565b6001600160801b03811661186d565b63ffffffff811661186d565b60608101611aad8286611a84565b611aba6020830185611a93565b610c556040830184611a93565b6001600160f81b0319811661186d565b60005b83811015611af2578181015183820152602001611ada565b50506000910152565b6000611b05825190565b808452602084019350611b1c818560208601611ad7565b601f01601f19169290920192915050565b61186d81611881565b6000611b42838361186b565b505060200190565b6000611b54825190565b80845260209384019383018060005b83811015611b88578151611b778882611b36565b975060208301925050600101611b63565b509495945050505050565b60e08101611ba1828a611ac7565b8181036020830152611bb38189611afb565b90508181036040830152611bc78188611afb565b9050611bd6606083018761186b565b611be36080830186611b2d565b611bf060a083018561186b565b81810360c0830152611c028184611b4a565b9998505050505050505050565b600067ffffffffffffffff821115611c2957611c29611741565b5060209081020190565b600060a08284031215611c4857611c48600080fd5b611c5260a0611784565b90506000611c60848461183f565b8252506020611c718484830161183f565b6020830152506040611c858482850161189b565b6040830152506060611c998482850161183f565b6060830152506080611cad84828501611715565b60808301525092915050565b6000611cc761192284611c0f565b83815290506020810160a08402830185811115611ce657611ce6600080fd5b835b81811015611d0c5780611cfb8882611c33565b84525060209092019160a001611ce8565b5050509392505050565b600082601f830112611d2a57611d2a600080fd5b8135610c55848260208601611cb9565b600060208284031215611d4f57611d4f600080fd5b813567ffffffffffffffff811115611d6957611d69600080fd5b610c5584828501611d16565b602081016106b08284611b2d565b600060a08284031215611d9857611d98600080fd5b6000610c558484611c33565b600080600060608486031215611dbc57611dbc600080fd5b6000611dc8868661189b565b9350506020611dd98682870161183f565b9250506040611dea86828701611715565b9150509250925092565b600060208284031215611e0957611e09600080fd5b6000610c5584846117af565b602081016106b08284611a93565b60008060008060808587031215611e3c57611e3c600080fd5b6000611e48878761183f565b9450506020611e598782880161189b565b9350506040611e6a8782880161189b565b9250506060611e7b8782880161183f565b91505092959194509250565b60006106b082611881565b61170a81611e87565b80356106b081611e92565b600080600060608486031215611ebe57611ebe600080fd5b6000611eca8686611e9b565b9350506020611edb8682870161189b565b9250506040611dea8682870161183f565b600a8152600060208201691b9bdd081c185d5cd95960b21b815291505b5060200190565b602080825281016106b081611eec565b634e487b7160e01b600052601160045260246000fd5b818102808215838204851417611f4e57611f4e611f20565b5092915050565b634e487b7160e01b600052601260045260246000fd5b6000825b925082611f7e57611f7e611f55565b500490565b808201808211156106b0576106b0611f20565b601981526000602082017f6465706f7369747320616c72656164792077697468647261770000000000000081529150611f09565b602080825281016106b081611f96565b60078152600060208201667061757365642160c81b81529150611f09565b602080825281016106b081611fda565b601181526000602082017034b73b30b634b2103232b837b9b4ba37b960791b81529150611f09565b602080825281016106b081612008565b600d81526000602082016c34b73b30b634b21030b236b4b760991b81529150611f09565b602080825281016106b081612040565b805160009060c0840190612088858261186b565b50602083015161209b6020860182611b2d565b5060408301516120ae6040860182611b2d565b5060608301516120c1606086018261186b565b50608083015184820360808601526120d98282611afb565b91505060a083015184820360a08601526120f38282611afb565b95945050505050565b60208082528101610fde8184612074565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b602080825281016106b08161210d565b600e81526000602082016d185b1c9958591e481c185d5cd95960921b81529150611f09565b602080825281016106b081612166565b601781526000602082017f63616c6c6572206973206e6f7420612072656c6179657200000000000000000081529150611f09565b602080825281016106b08161219b565b634e487b7160e01b600052603260045260246000fd5b600c81526000602082016b1d1e08199a5b985b1a5e995960a21b81529150611f09565b602080825281016106b0816121f5565b6000600019820361223b5761223b611f20565b5060010190565b600a8152600060208201691d1e081d1a5b595bdd5d60b21b81529150611f09565b602080825281016106b081612242565b602281526000602082017f696e73756666696369656e742076616c756520666f72206465706f7369742066815261656560f01b6020820152915061214f565b602080825281016106b081612273565b818103818111156106b0576106b0611f20565b60e081016122e3828a61186b565b6122f0602083018961186b565b6122fd6040830188611b2d565b61230a6060830187611b2d565b612317608083018661186b565b61232460a083018561186b565b61233160c0830184611a93565b98975050505050505050565b60a0810161234b828861186b565b612358602083018761186b565b6123656040830186611b2d565b6123726060830185611b2d565b61237f608083018461186b565b9695505050505050565b6000816106b0565b60138152600060208201721dda5d1a191c985dc8195d1a0819985a5b1959606a1b81529150611f09565b602080825281016106b081612391565b604081016123d98285611b2d565b610fde602083018461186b565b80151561170a565b80516106b0816123e6565b60006020828403121561240e5761240e600080fd5b6000610c5584846123ee565b60006106b082611e87565b61186d8161241a565b6080810161243c8287611b2d565b6124496020830186611b2d565b6124566040830185612425565b6120f3606083018461186b565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000611f09565b602080825281016106b081612463565b60006001600160801b0382166106b0565b60006106b06124c58360801c90565b63ffffffff1690565b60006106b06124c58360a01c90565b805460608301906124ed816124a5565b6124f78582611a84565b50612501816124b6565b61250e6020860182611a93565b50612518816124ce565b6125256040860182611a93565b5050505050565b606081016106b082846124dd565b600063ffffffff8216915063ffffffff8316611f6f565b602681526000602082017f6665652072617465206d757374206265206c657373206f7220657175616c207481526568616e20352560d01b6020820152915061214f565b602080825281016106b081612551565b634e487b7160e01b600052602160045260246000fd5b600f81526000602082016e1d1c985b9cd9995c8819985a5b1959608a1b81529150611f09565b602080825281016106b0816125ba565b60138152600060208201723737b732bc34b9ba32b73a103932b630bcb2b960691b81529150611f09565b602080825281016106b0816125f0565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061265457607f821691505b6020821081036126665761266661262a565b50919050565b602481526000602082017f696e73756666696369656e7420616d6f756e7420666f722066696e616c697a658152632066656560e01b6020820152915061214f565b602080825281016106b08161266c565b60e081016126cb828a611b2d565b6126d8602083018961186b565b6126e5604083018861186b565b6126f2606083018761186b565b6126ff6080830186611b2d565b61270c60a083018561186b565b61233160c083018461186b565b600e81526000602082016d72656c617965722065786973747360901b81529150611f09565b602080825281016106b081612719565b6040810161275c828561186b565b8181036020830152610c558184611afb565b6000612778825190565b612786818560208601611ad7565b9290920192915050565b6000610fde828461276e565b80516106b081611839565b6000602082840312156127bc576127bc600080fd5b6000610c55848461279c565b60ff811661186d565b608081016127df828761186b565b6127ec60208301866127c8565b612456604083018561186b565b60a08101612807828861186b565b612814602083018761186b565b612821604083018661186b565b61282e606083018561186b565b61237f6080830184611b2d56fec3b5a50e47b6b36cbfdf9f2816f54bcadaa46c6d4469b530f5e1fd8cc70e8fd8a2646970667358221220a0319d84374318ba8d4f2dd328006be686734cc59cdd1df72590e7e532b0900764736f6c63430008140033","opcodes":"PUSH2 0x160 PUSH1 0x40 MSTORE PUSH32 0xCA4B8F8C7D0ADE5601D7A2C664085FE922706852AE451E86E32CD91BE82B8A00 PUSH1 0x6 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x31D2 CODESIZE SUB DUP1 PUSH3 0x31D2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x59 SWAP2 PUSH3 0x4B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x22AA242222A624AB22A9 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 0x7631 PUSH1 0xF0 SHL DUP2 MSTORE POP DUP3 PUSH3 0xB2 PUSH3 0xAC PUSH3 0x133 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x137 JUMP JUMPDEST PUSH3 0xCF PUSH3 0xC9 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH3 0x155 JUMP JUMPDEST PUSH3 0xDA DUP2 PUSH3 0x1FA JUMP JUMPDEST POP PUSH3 0xE8 DUP3 PUSH1 0x4 PUSH3 0x27E JUMP JUMPDEST PUSH2 0x120 MSTORE PUSH3 0xF9 DUP2 PUSH1 0x5 PUSH3 0x27E 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 PUSH3 0x2B7 JUMP JUMPDEST PUSH1 0x80 MSTORE POP POP ADDRESS PUSH1 0xC0 MSTORE POP PUSH3 0x8E6 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH3 0x152 DUP2 PUSH3 0x313 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH3 0x19A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x191 SWAP1 PUSH3 0x4E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x7C363F8DF6087BA61BE7D84B7A936D5EB39EBD1AB56DD8188A27A60E3B301A27 SWAP1 PUSH3 0x1EF SWAP1 DUP4 SWAP1 PUSH3 0x532 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x80 SHL PUSH4 0xFFFFFFFF SWAP3 DUP4 AND MUL OR PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL SWAP2 SWAP1 SWAP5 AND MUL SWAP3 SWAP1 SWAP3 OR DUP2 SSTORE SWAP1 MLOAD PUSH32 0xC3B5A50E47B6B36CBFDF9F2816F54BCADAA46C6D4469B530F5E1FD8CC70E8FD8 SWAP2 PUSH3 0x1EF SWAP2 PUSH3 0x5F7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 MLOAD LT ISZERO PUSH3 0x29E JUMPI PUSH3 0x296 DUP4 PUSH3 0x365 JUMP JUMPDEST SWAP1 POP PUSH3 0x2B1 JUMP JUMPDEST DUP2 PUSH3 0x2AB DUP5 DUP3 PUSH3 0x6F5 JUMP JUMPDEST POP PUSH1 0xFF SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH1 0x40 MLOAD PUSH1 0x0 SWAP3 PUSH3 0x2F8 SWAP3 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F SWAP3 CHAINID SWAP1 ADDRESS SWAP1 PUSH1 0x20 ADD PUSH3 0x7CC JUMP JUMPDEST 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 0x2 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 PUSH1 0x0 DUP1 DUP3 SWAP1 POP PUSH1 0x1F DUP2 MLOAD GT ISZERO PUSH3 0x393 JUMPI DUP3 PUSH1 0x40 MLOAD PUSH4 0x305A27A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x191 SWAP2 SWAP1 PUSH3 0x87D JUMP JUMPDEST DUP1 MLOAD PUSH3 0x3A0 DUP3 PUSH3 0x8A2 JUMP JUMPDEST OR SWAP4 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH3 0x3E9 JUMPI PUSH3 0x3E9 PUSH3 0x3AB JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3FC PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH3 0x40A DUP3 DUP3 PUSH3 0x3C1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND JUMPDEST DUP2 EQ PUSH3 0x152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH3 0x2B1 DUP2 PUSH3 0x40F JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0x41A JUMP JUMPDEST DUP1 MLOAD PUSH3 0x2B1 DUP2 PUSH3 0x433 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x464 JUMPI PUSH3 0x464 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x470 PUSH1 0x60 PUSH3 0x3F0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH3 0x480 DUP5 DUP5 PUSH3 0x426 JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH3 0x493 DUP5 DUP5 DUP4 ADD PUSH3 0x440 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH3 0x4A9 DUP5 DUP3 DUP6 ADD PUSH3 0x440 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x4CC JUMPI PUSH3 0x4CC PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH3 0x4DA DUP5 DUP5 PUSH3 0x44D JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x2B1 DUP2 PUSH1 0xE DUP2 MSTORE PUSH14 0x72656C6179657220657869737473 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x2B1 JUMP JUMPDEST PUSH3 0x52C DUP2 PUSH3 0x50F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH3 0x2B1 DUP3 DUP5 PUSH3 0x521 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 AND PUSH3 0x2B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH3 0x52C JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2B1 PUSH3 0x575 DUP4 PUSH1 0x80 SHR SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0x52C JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2B1 PUSH3 0x575 DUP4 PUSH1 0xA0 SHR SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH3 0x5AE DUP2 PUSH3 0x542 JUMP JUMPDEST PUSH3 0x5BA DUP6 DUP3 PUSH3 0x554 JUMP JUMPDEST POP PUSH3 0x5C6 DUP2 PUSH3 0x564 JUMP JUMPDEST PUSH3 0x5D5 PUSH1 0x20 DUP7 ADD DUP3 PUSH3 0x57E JUMP JUMPDEST POP PUSH3 0x5E1 DUP2 PUSH3 0x58B JUMP JUMPDEST PUSH3 0x5F0 PUSH1 0x40 DUP7 ADD DUP3 PUSH3 0x57E JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH3 0x2B1 DUP3 DUP5 PUSH3 0x59C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x632 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x647 JUMPI PUSH3 0x647 PUSH3 0x607 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2B1 PUSH3 0x3A8 DUP4 DUP2 JUMP JUMPDEST PUSH3 0x666 DUP4 PUSH3 0x64D JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 NOT PUSH1 0x8 SWAP5 SWAP1 SWAP5 MUL SWAP4 DUP5 SHL NOT AND SWAP3 SHL SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x690 DUP2 DUP5 DUP5 PUSH3 0x65B JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x6B4 JUMPI PUSH3 0x6AB PUSH1 0x0 DUP3 PUSH3 0x681 JUMP JUMPDEST PUSH1 0x1 ADD PUSH3 0x695 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x690 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH1 0x20 PUSH1 0x1F DUP6 ADD DIV DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x6E1 JUMPI POP DUP1 JUMPDEST PUSH3 0x5F0 PUSH1 0x20 PUSH1 0x1F DUP7 ADD DIV DUP4 ADD DUP3 PUSH3 0x695 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x711 JUMPI PUSH3 0x711 PUSH3 0x3AB JUMP JUMPDEST PUSH3 0x71D DUP3 SLOAD PUSH3 0x61D JUMP JUMPDEST PUSH3 0x72A DUP3 DUP3 DUP6 PUSH3 0x6B8 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x761 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x748 JUMPI POP DUP6 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x8 DUP7 MUL SHR NOT DUP2 AND PUSH1 0x2 DUP7 MUL OR DUP7 SSTORE POP PUSH3 0x7BD JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x793 JUMPI DUP9 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH3 0x771 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x7B0 JUMPI DUP5 DUP10 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x1F DUP10 AND PUSH1 0x8 MUL SHR NOT AND DUP3 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH3 0x52C JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH3 0x7DC DUP3 DUP9 PUSH3 0x7C5 JUMP JUMPDEST PUSH3 0x7EB PUSH1 0x20 DUP4 ADD DUP8 PUSH3 0x7C5 JUMP JUMPDEST PUSH3 0x7FA PUSH1 0x40 DUP4 ADD DUP7 PUSH3 0x7C5 JUMP JUMPDEST PUSH3 0x809 PUSH1 0x60 DUP4 ADD DUP6 PUSH3 0x7C5 JUMP JUMPDEST PUSH3 0x818 PUSH1 0x80 DUP4 ADD DUP5 PUSH3 0x521 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x83F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x825 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH3 0x853 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH3 0x86C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH3 0x822 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH3 0x890 DUP2 DUP5 PUSH3 0x848 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2B1 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8AD DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD PUSH3 0x8BC DUP2 PUSH3 0x897 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP3 LT ISZERO PUSH3 0x8DF JUMPI PUSH3 0x8DA PUSH1 0x0 NOT DUP4 PUSH1 0x20 SUB PUSH1 0x8 MUL SHL SWAP1 JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP 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 0x2891 PUSH3 0x941 PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x8DD ADD MSTORE PUSH1 0x0 PUSH2 0x8B2 ADD MSTORE PUSH1 0x0 PUSH2 0x16B2 ADD MSTORE PUSH1 0x0 PUSH2 0x1691 ADD MSTORE PUSH1 0x0 PUSH2 0x150F ADD MSTORE PUSH1 0x0 PUSH2 0x1539 ADD MSTORE PUSH1 0x0 PUSH2 0x1563 ADD MSTORE PUSH2 0x2891 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1DC JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8456CB59 GT PUSH2 0x102 JUMPI DUP1 PUSH4 0xCB11B9F4 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xE63EA408 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xE63EA408 EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xF35ACF51 EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0xFE173B97 EQ PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCB11B9F4 EQ PUSH2 0x505 JUMPI DUP1 PUSH4 0xDD39F00D EQ PUSH2 0x529 JUMPI DUP1 PUSH4 0xE183BB5A EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x569 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8FBD65E6 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0x8FBD65E6 EQ PUSH2 0x49F JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x4BF JUMPI DUP1 PUSH4 0xB1CCCCA2 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0xC8DC8A0C EQ PUSH2 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0x84B0196E EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x87939D78 EQ PUSH2 0x458 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x478 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5AAF6CC7 GT PUSH2 0x17A JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x149 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0x788DAA17 EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x79502C55 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5AAF6CC7 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x308 JUMPI DUP1 PUSH4 0x60F0A5AC EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0x638D9C56 EQ PUSH2 0x349 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x423C485A EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x4D5FF840 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x5300F841 EQ PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10C58D65 EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x1251D14E EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x28AD6C16 EQ PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x1E3 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x1720 JUMP JUMPDEST PUSH2 0x5EF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x1720 JUMP JUMPDEST PUSH2 0x603 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x245 CALLDATASIZE PUSH1 0x4 PUSH2 0x1818 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x625 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27F PUSH2 0x27A CALLDATASIZE PUSH1 0x4 PUSH2 0x184A JUMP JUMPDEST PUSH2 0x66E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x1873 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27F PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DB PUSH2 0x2C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x18A6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x18CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x303 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A49 JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x2DB SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x344 CALLDATASIZE PUSH1 0x4 PUSH2 0x18A6 JUMP JUMPDEST PUSH2 0x803 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DB PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x184A JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x385 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x814 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DB PUSH2 0x3A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x184A JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x3F7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x80 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV AND DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A9F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x828 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x427 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x85D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x445 PUSH2 0x8A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x473 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3A JUMP JUMPDEST PUSH2 0x92D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x1D75 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x4BA CALLDATASIZE PUSH1 0x4 PUSH2 0x1D83 JUMP JUMPDEST PUSH2 0xA10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x27F JUMP JUMPDEST PUSH2 0x208 PUSH2 0x4E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1DA4 JUMP JUMPDEST PUSH2 0xB04 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x500 CALLDATASIZE PUSH1 0x4 PUSH2 0x1DF4 JUMP JUMPDEST PUSH2 0xBF5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x511 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x51C PUSH3 0xF4240 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x1E15 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x535 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x544 CALLDATASIZE PUSH1 0x4 PUSH2 0x18A6 JUMP JUMPDEST PUSH2 0xC06 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27F PUSH2 0x564 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E23 JUMP JUMPDEST PUSH2 0xC17 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x492 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA6 JUMP JUMPDEST PUSH2 0xC5D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x5C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x18A6 JUMP JUMPDEST PUSH2 0xD9D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27F PUSH2 0xE0E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GASPRICE PUSH2 0x27F JUMP JUMPDEST PUSH2 0x5F7 PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0xE5A JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x60B PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x61C PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0xF12 JUMP JUMPDEST PUSH2 0x62D PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x65F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x1F10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x690 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP5 PUSH2 0x1F36 JUMP JUMPDEST PUSH2 0x69A SWAP2 SWAP1 PUSH2 0x1F6B JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x6B0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x1F83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x6E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x1FCA JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x72A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x748 DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x60 ADD MLOAD PUSH2 0xC17 JUMP JUMPDEST SWAP1 POP PUSH2 0x75D DUP4 PUSH1 0x20 ADD MLOAD DUP3 DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0xF82 JUMP JUMPDEST PUSH2 0x779 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2030 JUMP JUMPDEST PUSH2 0x799 PUSH2 0x78E PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST DUP3 DUP6 PUSH1 0xA0 ADD MLOAD PUSH2 0xF82 JUMP JUMPDEST PUSH2 0x7B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2064 JUMP JUMPDEST PUSH2 0x7C7 DUP4 PUSH1 0x40 ADD MLOAD DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0xFE5 JUMP JUMPDEST PUSH32 0xA92A9CF2C9F7F08E828B3B3AD56E58A518A0446039B53C6A35EE54340C1FBF10 DUP4 PUSH1 0x40 MLOAD PUSH2 0x7F6 SWAP2 SWAP1 PUSH2 0x20FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x80B PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0x1061 JUMP JUMPDEST PUSH2 0x81C PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x826 PUSH1 0x0 PUSH2 0x10EC JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x3 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x854 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2156 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0x10EC JUMP JUMPDEST PUSH2 0x865 PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x88F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x218B JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 DUP3 DUP1 DUP1 DUP4 PUSH2 0x8D8 PUSH32 0x0 PUSH1 0x4 PUSH2 0x1105 JUMP JUMPDEST PUSH2 0x903 PUSH32 0x0 PUSH1 0x5 PUSH2 0x1105 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0xF PUSH1 0xF8 SHL SWAP12 SWAP4 SWAP11 POP SWAP2 SWAP9 POP CHAINID SWAP8 POP ADDRESS SWAP7 POP SWAP5 POP SWAP3 POP SWAP1 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x95C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x21CF JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xA0C JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x97C JUMPI PUSH2 0x97C PUSH2 0x21DF JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x9BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2218 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP3 MLOAD SWAP1 MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH2 0x9F9 SWAP4 SWAP2 SWAP1 PUSH2 0x11B1 JUMP JUMPDEST POP DUP1 PUSH2 0xA04 DUP2 PUSH2 0x2228 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x95F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA46 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2218 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x80 DUP3 ADD MLOAD PUSH4 0xFFFFFFFF DUP2 AND TIMESTAMP GT ISZERO PUSH2 0xA8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2263 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xAB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x21CF JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xAE3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x1FF8 JUMP JUMPDEST PUSH2 0xAFF DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x60 ADD MLOAD PUSH2 0x11B1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH4 0xFFFFFFFF AND TIMESTAMP GT ISZERO PUSH2 0xB2B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2263 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xB55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x1FF8 JUMP JUMPDEST CALLVALUE PUSH1 0x0 PUSH2 0xB61 DUP3 PUSH2 0x66E JUMP JUMPDEST SWAP1 POP DUP1 DUP3 LT ISZERO PUSH2 0xB83 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x22B2 JUMP JUMPDEST PUSH2 0xB8D DUP2 DUP4 PUSH2 0x22C2 JUMP JUMPDEST SWAP2 POP PUSH2 0xBAA PUSH2 0xBA4 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST DUP3 PUSH2 0xFE5 JUMP JUMPDEST PUSH32 0x73BFD0EF2114072A401CB773CAC34805C7A6A50EA8AA09ACA0698A1608D47B5 CHAINID DUP7 CALLER DUP10 DUP7 DUP7 DUP11 PUSH1 0x40 MLOAD PUSH2 0xBE5 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x22D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xBFD PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0x1247 JUMP JUMPDEST PUSH2 0xC0E PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0x1287 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC52 PUSH1 0x6 SLOAD DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x233D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1313 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xC65 PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xCF5 JUMPI PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH2 0xC8C SWAP1 PUSH2 0x2389 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 0xCC9 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 0xCCE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xCEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x23BB JUMP JUMPDEST POP PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH2 0xD23 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x23CB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD42 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 0xD66 SWAP2 SWAP1 PUSH2 0x23F9 JUMP JUMPDEST POP JUMPDEST PUSH32 0xC8988BC8137B371A82F0A753A05B85A2C3CDECFF90C59EAF36EC6F7B3BCE499 CALLER DUP4 DUP6 DUP5 PUSH1 0x40 MLOAD PUSH2 0x7F6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x242E JUMP JUMPDEST PUSH2 0xDA5 PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xDD6 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 GASPRICE PUSH1 0x1 SLOAD PUSH2 0xE2B SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x1F36 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2495 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH4 0xFFFFFFFF DUP5 AND MUL OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0xE94 SWAP2 PUSH2 0x252C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xEAD PUSH1 0x14 PUSH3 0xF4240 PUSH2 0x253A JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0xED8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2594 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x80 SHL NOT AND PUSH1 0x1 PUSH1 0x80 SHL PUSH4 0xFFFFFFFF DUP5 AND MUL OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0xE94 SWAP2 PUSH2 0x252C JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x80 SHL PUSH4 0xFFFFFFFF SWAP3 DUP4 AND MUL OR PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL SWAP2 SWAP1 SWAP5 AND MUL SWAP3 SWAP1 SWAP3 OR DUP2 SSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0xE94 SWAP2 PUSH2 0x252C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xF91 DUP6 DUP6 PUSH2 0x1340 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xFAA JUMPI PUSH2 0xFAA PUSH2 0x25A4 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0xFC8 JUMPI POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST DUP1 PUSH2 0xFD9 JUMPI POP PUSH2 0xFD9 DUP7 DUP7 DUP7 PUSH2 0x1385 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH2 0xFFE SWAP1 PUSH2 0x2389 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 0x103B 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 0x1040 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xAFF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1099 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x261A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x370E7A3077485FD8CEF64916374045A1BFAE1D0984617C2833E614ED87B9D0DF SWAP1 PUSH2 0xE94 SWAP1 DUP4 SWAP1 PUSH2 0x1D75 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x600 DUP2 PUSH2 0x1471 JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFF DUP4 EQ PUSH2 0x111F JUMPI PUSH2 0x1118 DUP4 PUSH2 0x14C3 JUMP JUMPDEST SWAP1 POP PUSH2 0x6B0 JUMP JUMPDEST DUP2 DUP1 SLOAD PUSH2 0x112B SWAP1 PUSH2 0x2640 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 0x1157 SWAP1 PUSH2 0x2640 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x11A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1179 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x11A4 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 0x1187 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11BB PUSH2 0xE0E JUMP JUMPDEST SWAP1 POP DUP1 DUP3 LT ISZERO PUSH2 0x11DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x26AD JUMP JUMPDEST PUSH2 0x11E7 DUP2 DUP4 PUSH2 0x22C2 JUMP JUMPDEST SWAP2 POP PUSH2 0x11F3 DUP4 DUP4 PUSH2 0xFE5 JUMP JUMPDEST PUSH2 0x11FD CALLER DUP3 PUSH2 0xFE5 JUMP JUMPDEST PUSH32 0x2E3E72232A62E8A18C680821D40213041C2C22C1F0B30F80463EEAE3320064C CALLER DUP7 CHAINID DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x1238 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0xE94 SWAP2 PUSH2 0x252C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x12C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x273E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x7C363F8DF6087BA61BE7D84B7A936D5EB39EBD1AB56DD8188A27A60E3B301A27 SWAP1 PUSH2 0xE94 SWAP1 DUP4 SWAP1 PUSH2 0x1D75 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 PUSH2 0x1320 PUSH2 0x1502 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL 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 0x1376 JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x136A DUP8 DUP3 DUP6 DUP6 PUSH2 0x158D JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x137E JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x13AF SWAP3 SWAP2 SWAP1 PUSH2 0x274E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 MSTORE SWAP1 MLOAD PUSH2 0x13ED SWAP2 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1428 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 0x142D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x1441 JUMPI POP PUSH1 0x20 DUP2 MLOAD LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xFD9 JUMPI POP DUP1 MLOAD PUSH4 0xB135D3F PUSH1 0xE1 SHL SWAP1 PUSH2 0x1466 SWAP1 DUP4 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP1 DUP5 ADD PUSH2 0x27A7 JUMP JUMPDEST EQ SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 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 PUSH1 0x60 PUSH1 0x0 PUSH2 0x14D0 DUP4 PUSH2 0x1644 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x155B JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x1585 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH2 0xE2B PUSH2 0x166C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x15C4 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x163B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x15E9 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27D1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x160B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1634 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x163B 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 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2CD44AC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH32 0x0 PUSH32 0x0 CHAINID ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16E7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27F9 JUMP JUMPDEST 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 PUSH4 0xFFFFFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x600 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x6B0 DUP2 PUSH2 0x1702 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1735 JUMPI PUSH2 0x1735 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x1715 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x177D JUMPI PUSH2 0x177D PUSH2 0x1741 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178F PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x179B DUP3 DUP3 PUSH2 0x1757 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x170A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x6B0 DUP2 PUSH2 0x17A0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17CF JUMPI PUSH2 0x17CF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17D9 PUSH1 0x60 PUSH2 0x1784 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17E7 DUP5 DUP5 PUSH2 0x17AF JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x17F8 DUP5 DUP5 DUP4 ADD PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x180C DUP5 DUP3 DUP6 ADD PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x182D JUMPI PUSH2 0x182D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x17BA JUMP JUMPDEST DUP1 PUSH2 0x170A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x6B0 DUP2 PUSH2 0x1839 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185F JUMPI PUSH2 0x185F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x183F JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x186B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0x170A DUP2 PUSH2 0x1881 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x6B0 DUP2 PUSH2 0x1892 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18BB JUMPI PUSH2 0x18BB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x189B JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x186D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x18C7 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x18F7 JUMPI PUSH2 0x18F7 PUSH2 0x1741 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1927 PUSH2 0x1922 DUP5 PUSH2 0x18DD JUMP JUMPDEST PUSH2 0x1784 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1942 JUMPI PUSH2 0x1942 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x194D DUP5 DUP3 DUP6 PUSH2 0x1908 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1969 JUMPI PUSH2 0x1969 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC55 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1914 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x198E JUMPI PUSH2 0x198E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1998 PUSH1 0xC0 PUSH2 0x1784 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x19A6 DUP5 DUP5 PUSH2 0x183F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x19B7 DUP5 DUP5 DUP4 ADD PUSH2 0x189B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x19CB DUP5 DUP3 DUP6 ADD PUSH2 0x189B JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x19DF DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A02 JUMPI PUSH2 0x1A02 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0E DUP5 DUP3 DUP6 ADD PUSH2 0x1955 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A31 JUMPI PUSH2 0x1A31 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3D DUP5 DUP3 DUP6 ADD PUSH2 0x1955 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A5E JUMPI PUSH2 0x1A5E PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A78 JUMPI PUSH2 0x1A78 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC55 DUP5 DUP3 DUP6 ADD PUSH2 0x1979 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x186D JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x186D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1AAD DUP3 DUP7 PUSH2 0x1A84 JUMP JUMPDEST PUSH2 0x1ABA PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A93 JUMP JUMPDEST PUSH2 0xC55 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A93 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT DUP2 AND PUSH2 0x186D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1AF2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1ADA JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B05 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x1B1C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1AD7 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x186D DUP2 PUSH2 0x1881 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B42 DUP4 DUP4 PUSH2 0x186B JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B54 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 DUP4 ADD DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B88 JUMPI DUP2 MLOAD PUSH2 0x1B77 DUP9 DUP3 PUSH2 0x1B36 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x1B63 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH2 0x1BA1 DUP3 DUP11 PUSH2 0x1AC7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1BB3 DUP2 DUP10 PUSH2 0x1AFB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1BC7 DUP2 DUP9 PUSH2 0x1AFB JUMP JUMPDEST SWAP1 POP PUSH2 0x1BD6 PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x1BE3 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x1BF0 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x1C02 DUP2 DUP5 PUSH2 0x1B4A JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1C29 JUMPI PUSH2 0x1C29 PUSH2 0x1741 JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C48 JUMPI PUSH2 0x1C48 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C52 PUSH1 0xA0 PUSH2 0x1784 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C60 DUP5 DUP5 PUSH2 0x183F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1C71 DUP5 DUP5 DUP4 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1C85 DUP5 DUP3 DUP6 ADD PUSH2 0x189B JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1C99 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1CAD DUP5 DUP3 DUP6 ADD PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CC7 PUSH2 0x1922 DUP5 PUSH2 0x1C0F JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0xA0 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE6 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1D0C JUMPI DUP1 PUSH2 0x1CFB DUP9 DUP3 PUSH2 0x1C33 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0xA0 ADD PUSH2 0x1CE8 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1D2A JUMPI PUSH2 0x1D2A PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC55 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1CB9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D4F JUMPI PUSH2 0x1D4F PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D69 JUMPI PUSH2 0x1D69 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC55 DUP5 DUP3 DUP6 ADD PUSH2 0x1D16 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D98 JUMPI PUSH2 0x1D98 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x1C33 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1DBC JUMPI PUSH2 0x1DBC PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DC8 DUP7 DUP7 PUSH2 0x189B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1DD9 DUP7 DUP3 DUP8 ADD PUSH2 0x183F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1DEA DUP7 DUP3 DUP8 ADD PUSH2 0x1715 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E09 JUMPI PUSH2 0x1E09 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x17AF JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x1A93 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1E3C JUMPI PUSH2 0x1E3C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E48 DUP8 DUP8 PUSH2 0x183F JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1E59 DUP8 DUP3 DUP9 ADD PUSH2 0x189B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1E6A DUP8 DUP3 DUP9 ADD PUSH2 0x189B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x1E7B DUP8 DUP3 DUP9 ADD PUSH2 0x183F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 DUP3 PUSH2 0x1881 JUMP JUMPDEST PUSH2 0x170A DUP2 PUSH2 0x1E87 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x6B0 DUP2 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1EBE JUMPI PUSH2 0x1EBE PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1ECA DUP7 DUP7 PUSH2 0x1E9B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1EDB DUP7 DUP3 DUP8 ADD PUSH2 0x189B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1DEA DUP7 DUP3 DUP8 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH10 0x1B9BDD081C185D5CD959 PUSH1 0xB2 SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x1EEC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x1F4E JUMPI PUSH2 0x1F4E PUSH2 0x1F20 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 JUMPDEST SWAP3 POP DUP3 PUSH2 0x1F7E JUMPI PUSH2 0x1F7E PUSH2 0x1F55 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1F20 JUMP JUMPDEST PUSH1 0x19 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x6465706F7369747320616C726561647920776974686472617700000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x1F96 JUMP JUMPDEST PUSH1 0x7 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH7 0x70617573656421 PUSH1 0xC8 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x1FDA JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH17 0x34B73B30B634B2103232B837B9B4BA37B9 PUSH1 0x79 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2008 JUMP JUMPDEST PUSH1 0xD DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH13 0x34B73B30B634B21030B236B4B7 PUSH1 0x99 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2040 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 PUSH1 0xC0 DUP5 ADD SWAP1 PUSH2 0x2088 DUP6 DUP3 PUSH2 0x186B JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x209B PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1B2D JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x20AE PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1B2D JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x20C1 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x186B JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x20D9 DUP3 DUP3 PUSH2 0x1AFB JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0xA0 DUP7 ADD MSTORE PUSH2 0x20F3 DUP3 DUP3 PUSH2 0x1AFB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xFDE DUP2 DUP5 PUSH2 0x2074 JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x210D JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x185B1C9958591E481C185D5CD959 PUSH1 0x92 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2166 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x63616C6C6572206973206E6F7420612072656C61796572000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x219B JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0xC DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH12 0x1D1E08199A5B985B1A5E9959 PUSH1 0xA2 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x21F5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x223B JUMPI PUSH2 0x223B PUSH2 0x1F20 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0xA DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH10 0x1D1E081D1A5B595BDD5D PUSH1 0xB2 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2242 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E73756666696369656E742076616C756520666F72206465706F7369742066 DUP2 MSTORE PUSH2 0x6565 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x214F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2273 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1F20 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH2 0x22E3 DUP3 DUP11 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x22F0 PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x22FD PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x230A PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x2317 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2324 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2331 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x1A93 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x234B DUP3 DUP9 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2358 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2365 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x2372 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x237F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x186B JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x13 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH19 0x1DDA5D1A191C985DC8195D1A0819985A5B1959 PUSH1 0x6A SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2391 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x23D9 DUP3 DUP6 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0xFDE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x186B JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x170A JUMP JUMPDEST DUP1 MLOAD PUSH2 0x6B0 DUP2 PUSH2 0x23E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240E JUMPI PUSH2 0x240E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x23EE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 DUP3 PUSH2 0x1E87 JUMP JUMPDEST PUSH2 0x186D DUP2 PUSH2 0x241A JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x243C DUP3 DUP8 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x2449 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x2456 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2425 JUMP JUMPDEST PUSH2 0x20F3 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x186B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2463 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 AND PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 PUSH2 0x24C5 DUP4 PUSH1 0x80 SHR SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 PUSH2 0x24C5 DUP4 PUSH1 0xA0 SHR SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x24ED DUP2 PUSH2 0x24A5 JUMP JUMPDEST PUSH2 0x24F7 DUP6 DUP3 PUSH2 0x1A84 JUMP JUMPDEST POP PUSH2 0x2501 DUP2 PUSH2 0x24B6 JUMP JUMPDEST PUSH2 0x250E PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1A93 JUMP JUMPDEST POP PUSH2 0x2518 DUP2 PUSH2 0x24CE JUMP JUMPDEST PUSH2 0x2525 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1A93 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x24DD JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP2 POP PUSH4 0xFFFFFFFF DUP4 AND PUSH2 0x1F6F JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x6665652072617465206D757374206265206C657373206F7220657175616C2074 DUP2 MSTORE PUSH6 0x68616E203525 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x214F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2551 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0xF DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x25BA JUMP JUMPDEST PUSH1 0x13 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH19 0x3737B732BC34B9BA32B73A103932B630BCB2B9 PUSH1 0x69 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x25F0 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2654 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2666 JUMPI PUSH2 0x2666 PUSH2 0x262A JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E73756666696369656E7420616D6F756E7420666F722066696E616C697A65 DUP2 MSTORE PUSH4 0x20666565 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x214F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x266C JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH2 0x26CB DUP3 DUP11 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x26D8 PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x26E5 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x26F2 PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x26FF PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x270C PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2331 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x186B JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x72656C6179657220657869737473 PUSH1 0x90 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2719 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x275C DUP3 DUP6 PUSH2 0x186B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xC55 DUP2 DUP5 PUSH2 0x1AFB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2778 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x2786 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1AD7 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFDE DUP3 DUP5 PUSH2 0x276E JUMP JUMPDEST DUP1 MLOAD PUSH2 0x6B0 DUP2 PUSH2 0x1839 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27BC JUMPI PUSH2 0x27BC PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x279C JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x186D JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x27DF DUP3 DUP8 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x27EC PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0x2456 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x2807 DUP3 DUP9 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2814 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2821 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x282E PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x237F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x1B2D JUMP INVALID 0xC3 0xB5 0xA5 0xE SELFBALANCE 0xB6 0xB3 PUSH13 0xBFDF9F2816F54BCADAA46C6D44 PUSH10 0xB530F5E1FD8CC70E8FD8 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG0 BALANCE SWAP14 DUP5 CALLDATACOPY NUMBER XOR 0xBA DUP14 0x4F 0x2D 0xD3 0x28 STOP PUSH12 0xE686734CC59CDD1DF72590E7 0xE5 ORIGIN 0xB0 SWAP1 SMOD PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"281:4539:16:-:0;;;468:86;424:130;;1780:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3178:431:10;;;;;;;;;;;;;-1:-1:-1;;;3178:431:10;;;;;;;;;;;;;;;;-1:-1:-1;;;3178:431:10;;;1826:6:16;936:32:0;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;367:20:15::1;379:7;1273:6:0::0;;-1:-1:-1;;;;;1273:6:0;;1201:85;379:7:15::1;367:11;:20::i;:::-;391:22;405:7:::0;391:13:::1;:22::i;:::-;-1:-1:-1::0;3251:45:10;: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;:21;:23::i;:::-;3517:48;;-1:-1:-1;;3597:4:10;3575:27;;-1:-1:-1;281:4539:16;;655:96:5;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;294:156:17:-;-1:-1:-1;;;;;354:17:17;;:8;:17;;;;;;;;;;;;;353:18;345:45;;;;-1:-1:-1;;;345:45:17;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;394:17:17;;:8;:17;;;;;;;;;;;;:24;;-1:-1:-1;;394:24:17;414:4;394:24;;;427:19;;;;;403:7;;427:19;:::i;:::-;;;;;;;;294:156;:::o;281:109:14:-;341:16;;:6;:16;;;;;;;;;;;-1:-1:-1;;;;;341:16:14;;;-1:-1:-1;;;;;;341:16:14;;;;;;;-1:-1:-1;;;341:16:14;;;;;;-1:-1:-1;;;;341:16:14;-1:-1:-1;;;341:16:14;;;;;;;;;;;366:20;;;;;;;:::i;2895:341:6:-;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:6;;-1:-1:-1;3014:216:6;2895:341;;;;:::o;3963:180:10:-;4077:11;;4090:14;;4054:81;;4018:7;;4054:81;;1929:95;;4106:13;;4129:4;;4054:81;;;:::i;:::-;;;;;;;;;;;;;4044:92;;;;;;4037:99;;3963:180;:::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;1689:286:6:-;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:6;;;;;;;;:::i;1817:72::-;1955:11;;1938:13;1955:4;1938:13;:::i;:::-;1930:36;;1689:286;-1:-1:-1;;;1689:286:6:o;3310:202:7:-;3486:10;3310:202::o;565:180:18:-;-1:-1:-1;;;610:1:18;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;-1:-1:-1;;549:2:18;529:14;;525:28;826:6;822:40;964:6;952:10;949:22;-1:-1:-1;;;;;916:10:18;913:34;910:62;907:88;;;975:18;;:::i;:::-;1011:2;1004:22;-1:-1:-1;;751:281:18:o;1038:129::-;1072:6;1099:20;73:2;67:9;;7:75;1099:20;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1420:122::-;-1:-1:-1;;;;;1362:46:18;;1493:24;1486:5;1483:35;1473:63;;1532:1;1529;1522:12;1548:143;1630:13;;1652:33;1630:13;1652:33;:::i;1796:120::-;1773:10;1762:22;;1868:23;1697:93;1922:141;2003:13;;2025:32;2003:13;2025:32;:::i;2098:806::-;2183:5;2227:4;2215:9;2210:3;2206:19;2202:30;2199:117;;;2235:79;197:1;194;187:12;2235:79;2334:21;2350:4;2334:21;:::i;:::-;2325:30;-1:-1:-1;2424:1:18;2464:60;2520:3;2500:9;2464:60;:::i;:::-;2439:86;;-1:-1:-1;2605:2:18;2646:59;2701:3;2677:22;;;2646:59;:::i;:::-;2639:4;2632:5;2628:16;2621:85;2546:171;2785:2;2826:59;2881:3;2872:6;2861:9;2857:22;2826:59;:::i;:::-;2819:4;2812:5;2808:16;2801:85;2727:170;2098:806;;;;:::o;2910:401::-;3005:6;3054:2;3042:9;3033:7;3029:23;3025:32;3022:119;;;3060:79;197:1;194;187:12;3060:79;3180:1;3205:89;3286:7;3266:9;3205:89;:::i;:::-;3195:99;2910:401;-1:-1:-1;;;;2910:401:18:o;4034:419::-;4238:2;4251:47;;;4223:18;;4315:131;4223:18;3889:2;3423:19;;-1:-1:-1;;;3475:4:18;3466:14;;3609:40;4010:12;;;3662:366;4591:96;4628:7;-1:-1:-1;;;;;4525:54:18;;4657:24;4459:126;4693:118;4780:24;4798:5;4780:24;:::i;:::-;4775:3;4768:37;4693:118;;:::o;4817:222::-;4948:2;4933:18;;4961:71;4937:9;5005:6;4961:71;:::i;5290:166::-;5359:5;-1:-1:-1;;;;;1362:46:18;;5384:66;1296:118;5462:108;-1:-1:-1;;;;;1362:46:18;;5539:24;1296:118;5800:167;5869:5;5894:67;5924:36;5949:10;5664:3;5660:15;;5576:106;5924:36;1773:10;1762:22;;1697:93;5973:105;1773:10;1762:22;;6048:23;1697:93;6196:167;6265:5;6290:67;6320:36;6345:10;6172:3;6168:15;;6084:106;6423:874;6666:23;;6567:4;6558:14;;;6722:55;6666:23;6722:55;:::i;:::-;6790:63;6842:3;6824:12;6790:63;:::i;:::-;6609:254;6938:55;6983:9;6938:55;:::i;:::-;7006:61;7061:4;7056:3;7052:14;7038:12;7006:61;:::i;:::-;6873:204;7151:55;7196:9;7151:55;:::i;:::-;7219:61;7274:4;7269:3;7265:14;7251:12;7219:61;:::i;:::-;7087:203;6536:761;;6423:874;;:::o;7303:316::-;7481:2;7466:18;;7494:118;7470:9;7585:6;7494:118;:::i;7730:180::-;-1:-1:-1;;;7775:1:18;7768:88;7875:4;7872:1;7865:15;7899:4;7896:1;7889:15;7916:320;7997:1;7987:12;;8044:1;8034:12;;;8055:81;;8121:4;8113:6;8109:17;8099:27;;8055:81;8183:2;8175:6;8172:14;8152:18;8149:38;8146:84;;8202:18;;:::i;:::-;7967:269;7916:320;;;:::o;9149:142::-;9199:9;9232:53;9250:34;9277:5;9250:34;3310:202:7;9378:269:18;9488:39;9519:7;9488:39;:::i;:::-;9577:11;;-1:-1:-1;;8720:1:18;8704:18;;;;8572:16;;;8929:9;8918:21;8572:16;;8958:30;;;;9536:105;;-1:-1:-1;9378:269:18:o;9732:189::-;9698:3;9850:65;9908:6;9900;9894:4;9850:65;:::i;:::-;9785:136;9732:189;;:::o;9927:186::-;10004:3;9997:5;9994:14;9987:120;;;10058:39;10095:1;10088:5;10058:39;:::i;:::-;10031:1;10020:13;9987:120;;;9927:186;;:::o;10119:543::-;10220:2;10215:3;10212:11;10209:446;;;8291:4;8327:14;;;8371:4;8358:18;;8473:2;8468;8457:14;;8453:23;10328:8;10324:44;10521:2;10509:10;10506:18;10503:49;;;-1:-1:-1;10542:8:18;10503:49;10565:80;8473:2;8468;8457:14;;8453:23;10611:8;10607:37;10594:11;10565:80;:::i;11265:1395::-;7705:12;;-1:-1:-1;;;;;11476:6:18;11473:30;11470:56;;;11506:18;;:::i;:::-;11550:38;11582:4;11576:11;11550:38;:::i;:::-;11635:67;11695:6;11687;11681:4;11635:67;:::i;:::-;11753:4;11785:2;11774:14;;11802:1;11797:618;;;;12459:1;12476:6;12473:77;;;-1:-1:-1;12516:19:18;;;12510:26;12473:77;-1:-1:-1;;10901:1:18;10897:13;;10762:16;10864:56;10939:15;;11246:1;11242:11;;11233:21;12570:4;12563:81;12432:222;11767:887;;11797:618;8291:4;8327:14;;;8371:4;8358:18;;-1:-1:-1;;11833:22:18;;;11956:208;11970:7;11967:1;11964:14;11956:208;;;12040:19;;;12034:26;12019:42;;12147:2;12132:18;;;;12100:1;12088:14;;;;11986:12;11956:208;;;12192:6;12183:7;12180:19;12177:179;;;12241:19;;;12235:26;-1:-1:-1;;12335:4:18;12323:17;;10901:1;10897:13;10762:16;10864:56;10939:15;12278:64;;12177:179;12402:1;12398;12390:6;12386:14;12382:22;12376:4;12369:36;11804:611;;;11767:887;;11357:1303;;;11265:1395;;:::o;12749:118::-;12854:5;12836:24;3310:202:7;12997:664:18;13240:3;13225:19;;13254:71;13229:9;13298:6;13254:71;:::i;:::-;13335:72;13403:2;13392:9;13388:18;13379:6;13335:72;:::i;:::-;13417;13485:2;13474:9;13470:18;13461:6;13417:72;:::i;:::-;13499;13567:2;13556:9;13552:18;13543:6;13499:72;:::i;:::-;13581:73;13649:3;13638:9;13634:19;13625:6;13581:73;:::i;:::-;12997:664;;;;;;;;:::o;13667:246::-;13748:1;13758:113;13772:6;13769:1;13766:13;13758:113;;;13848:11;;;13842:18;13829:11;;;13822:39;13794:2;13787:10;13758:113;;;-1:-1:-1;;13905:1:18;13887:16;;13880:27;13667:246::o;13919:377::-;14007:3;14035:39;14068:5;7705:12;;7625:99;14035:39;3423:19;;;3475:4;3466:14;;14083:78;;14170:65;14228:6;14223:3;14216:4;14209:5;14205:16;14170:65;:::i;:::-;549:2;529:14;-1:-1:-1;;525:28:18;14251:39;;;;;;-1:-1:-1;;13919:377:18:o;14302:313::-;14453:2;14466:47;;;14438:18;;14530:78;14438:18;14594:6;14530:78;:::i;:::-;14522:86;14302:313;-1:-1:-1;;;14302:313:18:o;14847:154::-;14890:11;14926:29;14950:3;14944:10;3486::7;3310:202;15007:594:18;15091:5;15122:38;15154:5;7705:12;;7625:99;15122:38;14829:4;14820:14;;15271:35;14820:14;15271:35;:::i;:::-;15262:44;;15330:2;15322:6;15319:14;15316:278;;;15401:169;-1:-1:-1;;15456:6:18;15452:2;15448:15;15445:1;15441:23;8572:16;;8488:107;15401:169;15378:5;15357:227;15348:236;;15316:278;15097:504;;15007:594;;;:::o;:::-;281:4539:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DepositorWithdrawTypesHash_2792":{"entryPoint":null,"id":2792,"parameterSlots":0,"returnSlots":0},"@MAXPCT_2552":{"entryPoint":null,"id":2552,"parameterSlots":0,"returnSlots":0},"@_3347":{"entryPoint":null,"id":3347,"parameterSlots":0,"returnSlots":0},"@_addRelayer_3398":{"entryPoint":4743,"id":3398,"parameterSlots":1,"returnSlots":0},"@_buildDomainSeparator_1403":{"entryPoint":5740,"id":1403,"parameterSlots":0,"returnSlots":1},"@_checkOwner_54":{"entryPoint":3632,"id":54,"parameterSlots":0,"returnSlots":0},"@_domainSeparatorV4_1382":{"entryPoint":5378,"id":1382,"parameterSlots":0,"returnSlots":1},"@_finalize_3134":{"entryPoint":4529,"id":3134,"parameterSlots":4,"returnSlots":0},"@_hashTypedDataV4_1419":{"entryPoint":4883,"id":1419,"parameterSlots":1,"returnSlots":1},"@_msgSender_324":{"entryPoint":null,"id":324,"parameterSlots":0,"returnSlots":1},"@_removeRelayer_3421":{"entryPoint":4193,"id":3421,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_111":{"entryPoint":5233,"id":111,"parameterSlots":1,"returnSlots":0},"@_transferOwnership_172":{"entryPoint":4332,"id":172,"parameterSlots":1,"returnSlots":0},"@_transfer_3187":{"entryPoint":4069,"id":3187,"parameterSlots":2,"returnSlots":0},"@_updateConfig_2572":{"entryPoint":3858,"id":2572,"parameterSlots":1,"returnSlots":0},"@_updateDepositBaseFee_2588":{"entryPoint":4679,"id":2588,"parameterSlots":1,"returnSlots":0},"@_updateDepositFeeRate_2613":{"entryPoint":3743,"id":2613,"parameterSlots":1,"returnSlots":0},"@_updateFinalizeTxGas_2629":{"entryPoint":3674,"id":2629,"parameterSlots":1,"returnSlots":0},"@acceptOwnership_194":{"entryPoint":2088,"id":194,"parameterSlots":0,"returnSlots":0},"@addRelayer_2714":{"entryPoint":3078,"id":2714,"parameterSlots":1,"returnSlots":0},"@byteLength_459":{"entryPoint":5700,"id":459,"parameterSlots":1,"returnSlots":1},"@chainId_3336":{"entryPoint":null,"id":3336,"parameterSlots":0,"returnSlots":1},"@config_2549":{"entryPoint":null,"id":2549,"parameterSlots":0,"returnSlots":0},"@depositFee_3153":{"entryPoint":1646,"id":3153,"parameterSlots":1,"returnSlots":1},"@deposit_2996":{"entryPoint":2820,"id":2996,"parameterSlots":3,"returnSlots":0},"@depositorWithdraw_3248":{"entryPoint":1718,"id":3248,"parameterSlots":1,"returnSlots":0},"@depositorWithdrawals_2801":{"entryPoint":null,"id":2801,"parameterSlots":0,"returnSlots":0},"@eip712Domain_1466":{"entryPoint":2212,"id":1466,"parameterSlots":0,"returnSlots":7},"@emergencyWithdraw_3329":{"entryPoint":3165,"id":3329,"parameterSlots":3,"returnSlots":0},"@finalizeTxGasFee_3165":{"entryPoint":3598,"id":3165,"parameterSlots":0,"returnSlots":1},"@finalize_3083":{"entryPoint":2576,"id":3083,"parameterSlots":1,"returnSlots":0},"@gasPrice_3343":{"entryPoint":null,"id":3343,"parameterSlots":0,"returnSlots":1},"@hashTypedDataV4ForDepositorWithdraw_3275":{"entryPoint":3095,"id":3275,"parameterSlots":4,"returnSlots":1},"@isValidERC1271SignatureNow_1565":{"entryPoint":4997,"id":1565,"parameterSlots":3,"returnSlots":1},"@isValidSignatureNow_1513":{"entryPoint":3970,"id":1513,"parameterSlots":3,"returnSlots":1},"@logHashes_2797":{"entryPoint":null,"id":2797,"parameterSlots":0,"returnSlots":0},"@mulFinalize_3053":{"entryPoint":2349,"id":3053,"parameterSlots":1,"returnSlots":0},"@owner_40":{"entryPoint":null,"id":40,"parameterSlots":0,"returnSlots":1},"@pause_2687":{"entryPoint":2141,"id":2687,"parameterSlots":0,"returnSlots":0},"@paused_2643":{"entryPoint":null,"id":2643,"parameterSlots":0,"returnSlots":0},"@pendingOwner_135":{"entryPoint":null,"id":135,"parameterSlots":0,"returnSlots":1},"@relayers_3354":{"entryPoint":null,"id":3354,"parameterSlots":0,"returnSlots":0},"@removeRelayer_2726":{"entryPoint":2051,"id":2726,"parameterSlots":1,"returnSlots":0},"@renounceOwnership_68":{"entryPoint":2068,"id":68,"parameterSlots":0,"returnSlots":0},"@toStringWithFallback_526":{"entryPoint":4357,"id":526,"parameterSlots":2,"returnSlots":1},"@toString_427":{"entryPoint":5315,"id":427,"parameterSlots":1,"returnSlots":1},"@toTypedDataHash_1242":{"entryPoint":null,"id":1242,"parameterSlots":2,"returnSlots":1},"@transferOwnership_155":{"entryPoint":3485,"id":155,"parameterSlots":1,"returnSlots":0},"@tryRecover_1165":{"entryPoint":5517,"id":1165,"parameterSlots":4,"returnSlots":2},"@tryRecover_997":{"entryPoint":4928,"id":997,"parameterSlots":2,"returnSlots":2},"@unpause_2702":{"entryPoint":1573,"id":2702,"parameterSlots":0,"returnSlots":0},"@updateConfig_2739":{"entryPoint":1556,"id":2739,"parameterSlots":1,"returnSlots":0},"@updateDepositBaseFee_2751":{"entryPoint":3061,"id":2751,"parameterSlots":1,"returnSlots":0},"@updateDepositFeeRate_2763":{"entryPoint":1539,"id":2763,"parameterSlots":1,"returnSlots":0},"@updateFinalizeTxGas_2775":{"entryPoint":1519,"id":2775,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr":{"entryPoint":7353,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":6420,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":6299,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr":{"entryPoint":7446,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":9198,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32_fromMemory":{"entryPoint":10140,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":6485,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IERC20_$312":{"entryPoint":7835,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Config__$2546_memory_ptr":{"entryPoint":6074,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_DepositorWithdrawal_$2862_memory_ptr":{"entryPoint":6521,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_FinalizeTxMeta_$2873_memory_ptr":{"entryPoint":7219,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint128":{"entryPoint":6063,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":6207,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint32":{"entryPoint":5909,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6310,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_uint256t_uint32":{"entryPoint":7588,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr":{"entryPoint":7482,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":9209,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":10151,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_addresst_addresst_uint256":{"entryPoint":7715,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_contract$_IERC20_$312t_addresst_uint256":{"entryPoint":7846,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_struct$_Config__$2546_memory_ptr":{"entryPoint":6168,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_DepositorWithdrawal_$2862_memory_ptr":{"entryPoint":6729,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_FinalizeTxMeta_$2873_memory_ptr":{"entryPoint":7555,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint128":{"entryPoint":7668,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":6218,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint32":{"entryPoint":5920,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_uint256_to_t_uint256":{"entryPoint":6966,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":6957,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":6986,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":6343,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes1_to_t_bytes1_fromStack":{"entryPoint":6855,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":10094,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_IERC20_$312_to_t_address_fromStack":{"entryPoint":9253,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":6907,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601_to_t_string_memory_ptr_fromStack":{"entryPoint":8154,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack":{"entryPoint":8461,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3_to_t_string_memory_ptr_fromStack":{"entryPoint":9712,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298_to_t_string_memory_ptr_fromStack":{"entryPoint":8200,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114_to_t_string_memory_ptr_fromStack":{"entryPoint":8819,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c_to_t_string_memory_ptr_fromStack":{"entryPoint":8603,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd_to_t_string_memory_ptr_fromStack":{"entryPoint":8770,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack":{"entryPoint":9315,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8_to_t_string_memory_ptr_fromStack":{"entryPoint":8256,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489_to_t_string_memory_ptr_fromStack":{"entryPoint":9105,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f_to_t_string_memory_ptr_fromStack":{"entryPoint":9836,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb_to_t_string_memory_ptr_fromStack":{"entryPoint":8693,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b_to_t_string_memory_ptr_fromStack":{"entryPoint":9658,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b_to_t_string_memory_ptr_fromStack":{"entryPoint":8550,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7_to_t_string_memory_ptr_fromStack":{"entryPoint":8086,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack":{"entryPoint":10009,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b_to_t_string_memory_ptr_fromStack":{"entryPoint":7916,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef_to_t_string_memory_ptr_fromStack":{"entryPoint":9553,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack":{"entryPoint":9437,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_DepositorWithdrawal_$2862_memory_ptr_to_t_struct$_DepositorWithdrawal_$2862_memory_ptr_fromStack":{"entryPoint":8308,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint128_to_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint128_to_t_uint128_fromStack":{"entryPoint":6788,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":6251,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint32_to_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint32_to_t_uint32_fromStack":{"entryPoint":6803,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":10184,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":10128,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9097,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":7541,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_contract$_IERC20_$312_t_uint256__to_t_address_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":9262,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":9163,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256_t_bytes32_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":9917,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":6351,"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":7059,"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_address_t_address_t_uint256__to_t_bytes32_t_bytes32_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":9021,"id":null,"parameterSlots":6,"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":10233,"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":10062,"id":null,"parameterSlots":3,"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":10193,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_stringliteral_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8184,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8534,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9754,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8240,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8882,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8655,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8803,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9365,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8292,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9147,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9901,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8728,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9696,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8587,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":8138,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":10046,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":7952,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":9620,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed":{"entryPoint":9516,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_DepositorWithdrawal_$2862_memory_ptr__to_t_struct$_DepositorWithdrawal_$2862_memory_ptr__fromStack_reversed":{"entryPoint":8444,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint128_t_uint32_t_uint32__to_t_uint128_t_uint32_t_uint32__fromStack_reversed":{"entryPoint":6815,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":6259,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_address_t_address_t_uint256_t_uint256_t_uint32__to_t_uint256_t_uint256_t_address_t_address_t_uint256_t_uint256_t_uint32__fromStack_reversed":{"entryPoint":8917,"id":null,"parameterSlots":8,"returnSlots":1},"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed":{"entryPoint":7701,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":6020,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr":{"entryPoint":7183,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6365,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":8067,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":8043,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint32":{"entryPoint":9530,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":7990,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":8898,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_from_storage_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_from_storage_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address":{"entryPoint":6273,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IERC20_$312":{"entryPoint":7815,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint128":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IERC20_$312_to_t_address":{"entryPoint":9242,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":6408,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":6871,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":9792,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_0t_uint128":{"entryPoint":9381,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_16t_uint32":{"entryPoint":9398,"id":null,"parameterSlots":1,"returnSlots":1},"extract_from_storage_value_offset_20t_uint32":{"entryPoint":9422,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":5975,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":8744,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":7968,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":8021,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":9636,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":9770,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":8671,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5953,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_0_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_128_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"shift_right_160_unsigned":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":6290,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":9190,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IERC20_$312":{"entryPoint":7826,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint128":{"entryPoint":6048,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":6201,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint32":{"entryPoint":5890,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:57728:18","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:18","statements":[{"nodeType":"YulAssignment","src":"57:19:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:18","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:18"},"nodeType":"YulFunctionCall","src":"67:9:18"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:18"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:18","type":""}],"src":"7:75:18"},{"body":{"nodeType":"YulBlock","src":"177:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:18"},"nodeType":"YulFunctionCall","src":"187:12:18"},"nodeType":"YulExpressionStatement","src":"187:12:18"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:18"},{"body":{"nodeType":"YulBlock","src":"300:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:18"},"nodeType":"YulFunctionCall","src":"310:12:18"},"nodeType":"YulExpressionStatement","src":"310:12:18"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:18"},{"body":{"nodeType":"YulBlock","src":"378:49:18","statements":[{"nodeType":"YulAssignment","src":"388:33:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"403:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"410:10:18","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"399:3:18"},"nodeType":"YulFunctionCall","src":"399:22:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"388:7:18"}]}]},"name":"cleanup_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"360:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"370:7:18","type":""}],"src":"334:93:18"},{"body":{"nodeType":"YulBlock","src":"475:78:18","statements":[{"body":{"nodeType":"YulBlock","src":"531:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"540:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"543:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"533:6:18"},"nodeType":"YulFunctionCall","src":"533:12:18"},"nodeType":"YulExpressionStatement","src":"533:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"498:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"522:5:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"505:16:18"},"nodeType":"YulFunctionCall","src":"505:23:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"495:2:18"},"nodeType":"YulFunctionCall","src":"495:34:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"488:6:18"},"nodeType":"YulFunctionCall","src":"488:42:18"},"nodeType":"YulIf","src":"485:62:18"}]},"name":"validator_revert_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"468:5:18","type":""}],"src":"433:120:18"},{"body":{"nodeType":"YulBlock","src":"610:86:18","statements":[{"nodeType":"YulAssignment","src":"620:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"642:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"629:12:18"},"nodeType":"YulFunctionCall","src":"629:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"620:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"684:5:18"}],"functionName":{"name":"validator_revert_t_uint32","nodeType":"YulIdentifier","src":"658:25:18"},"nodeType":"YulFunctionCall","src":"658:32:18"},"nodeType":"YulExpressionStatement","src":"658:32:18"}]},"name":"abi_decode_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"588:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"596:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"604:5:18","type":""}],"src":"559:137:18"},{"body":{"nodeType":"YulBlock","src":"767:262:18","statements":[{"body":{"nodeType":"YulBlock","src":"813:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"815:77:18"},"nodeType":"YulFunctionCall","src":"815:79:18"},"nodeType":"YulExpressionStatement","src":"815:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"788:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"797:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"784:3:18"},"nodeType":"YulFunctionCall","src":"784:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"809:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"780:3:18"},"nodeType":"YulFunctionCall","src":"780:32:18"},"nodeType":"YulIf","src":"777:119:18"},{"nodeType":"YulBlock","src":"906:116:18","statements":[{"nodeType":"YulVariableDeclaration","src":"921:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"935:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"925:6:18","type":""}]},{"nodeType":"YulAssignment","src":"950:62:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"984:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"995:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"980:3:18"},"nodeType":"YulFunctionCall","src":"980:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1004:7:18"}],"functionName":{"name":"abi_decode_t_uint32","nodeType":"YulIdentifier","src":"960:19:18"},"nodeType":"YulFunctionCall","src":"960:52:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"950:6:18"}]}]}]},"name":"abi_decode_tuple_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"737:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"748:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"760:6:18","type":""}],"src":"702:327:18"},{"body":{"nodeType":"YulBlock","src":"1124:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1141:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1144:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1134:6:18"},"nodeType":"YulFunctionCall","src":"1134:12:18"},"nodeType":"YulExpressionStatement","src":"1134:12:18"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulFunctionDefinition","src":"1035:117:18"},{"body":{"nodeType":"YulBlock","src":"1206:54:18","statements":[{"nodeType":"YulAssignment","src":"1216:38:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1234:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"1241:2:18","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1230:3:18"},"nodeType":"YulFunctionCall","src":"1230:14:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1250:2:18","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1246:3:18"},"nodeType":"YulFunctionCall","src":"1246:7:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1226:3:18"},"nodeType":"YulFunctionCall","src":"1226:28:18"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"1216:6:18"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1189:5:18","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"1199:6:18","type":""}],"src":"1158:102:18"},{"body":{"nodeType":"YulBlock","src":"1294:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1311:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1314:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1304:6:18"},"nodeType":"YulFunctionCall","src":"1304:88:18"},"nodeType":"YulExpressionStatement","src":"1304:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1408:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1411:4:18","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1401:6:18"},"nodeType":"YulFunctionCall","src":"1401:15:18"},"nodeType":"YulExpressionStatement","src":"1401:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1432:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1435:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1425:6:18"},"nodeType":"YulFunctionCall","src":"1425:15:18"},"nodeType":"YulExpressionStatement","src":"1425:15:18"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1266:180:18"},{"body":{"nodeType":"YulBlock","src":"1495:238:18","statements":[{"nodeType":"YulVariableDeclaration","src":"1505:58:18","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1527:6:18"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"1557:4:18"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"1535:21:18"},"nodeType":"YulFunctionCall","src":"1535:27:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1523:3:18"},"nodeType":"YulFunctionCall","src":"1523:40:18"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1509:10:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"1674:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1676:16:18"},"nodeType":"YulFunctionCall","src":"1676:18:18"},"nodeType":"YulExpressionStatement","src":"1676:18:18"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1617:10:18"},{"kind":"number","nodeType":"YulLiteral","src":"1629:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1614:2:18"},"nodeType":"YulFunctionCall","src":"1614:34:18"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1653:10:18"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1665:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1650:2:18"},"nodeType":"YulFunctionCall","src":"1650:22:18"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1611:2:18"},"nodeType":"YulFunctionCall","src":"1611:62:18"},"nodeType":"YulIf","src":"1608:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1712:2:18","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1716:10:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1705:6:18"},"nodeType":"YulFunctionCall","src":"1705:22:18"},"nodeType":"YulExpressionStatement","src":"1705:22:18"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"1481:6:18","type":""},{"name":"size","nodeType":"YulTypedName","src":"1489:4:18","type":""}],"src":"1452:281:18"},{"body":{"nodeType":"YulBlock","src":"1780:88:18","statements":[{"nodeType":"YulAssignment","src":"1790:30:18","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"1800:18:18"},"nodeType":"YulFunctionCall","src":"1800:20:18"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1790:6:18"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1849:6:18"},{"name":"size","nodeType":"YulIdentifier","src":"1857:4:18"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"1829:19:18"},"nodeType":"YulFunctionCall","src":"1829:33:18"},"nodeType":"YulExpressionStatement","src":"1829:33:18"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"1764:4:18","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1773:6:18","type":""}],"src":"1739:129:18"},{"body":{"nodeType":"YulBlock","src":"1963:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1980:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1983:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1973:6:18"},"nodeType":"YulFunctionCall","src":"1973:12:18"},"nodeType":"YulExpressionStatement","src":"1973:12:18"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulFunctionDefinition","src":"1874:117:18"},{"body":{"nodeType":"YulBlock","src":"2042:73:18","statements":[{"nodeType":"YulAssignment","src":"2052:57:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2067:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2074:34:18","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2063:3:18"},"nodeType":"YulFunctionCall","src":"2063:46:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2052:7:18"}]}]},"name":"cleanup_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2024:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2034:7:18","type":""}],"src":"1997:118:18"},{"body":{"nodeType":"YulBlock","src":"2164:79:18","statements":[{"body":{"nodeType":"YulBlock","src":"2221:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2230:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2233:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2223:6:18"},"nodeType":"YulFunctionCall","src":"2223:12:18"},"nodeType":"YulExpressionStatement","src":"2223:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2187:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2212:5:18"}],"functionName":{"name":"cleanup_t_uint128","nodeType":"YulIdentifier","src":"2194:17:18"},"nodeType":"YulFunctionCall","src":"2194:24:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2184:2:18"},"nodeType":"YulFunctionCall","src":"2184:35:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2177:6:18"},"nodeType":"YulFunctionCall","src":"2177:43:18"},"nodeType":"YulIf","src":"2174:63:18"}]},"name":"validator_revert_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2157:5:18","type":""}],"src":"2121:122:18"},{"body":{"nodeType":"YulBlock","src":"2301:87:18","statements":[{"nodeType":"YulAssignment","src":"2311:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2333:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2320:12:18"},"nodeType":"YulFunctionCall","src":"2320:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2311:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2376:5:18"}],"functionName":{"name":"validator_revert_t_uint128","nodeType":"YulIdentifier","src":"2349:26:18"},"nodeType":"YulFunctionCall","src":"2349:33:18"},"nodeType":"YulExpressionStatement","src":"2349:33:18"}]},"name":"abi_decode_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2279:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"2287:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2295:5:18","type":""}],"src":"2249:139:18"},{"body":{"nodeType":"YulBlock","src":"2503:682:18","statements":[{"body":{"nodeType":"YulBlock","src":"2547:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"2549:77:18"},"nodeType":"YulFunctionCall","src":"2549:79:18"},"nodeType":"YulExpressionStatement","src":"2549:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"2524:3:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"2529:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2520:3:18"},"nodeType":"YulFunctionCall","src":"2520:19:18"},{"kind":"number","nodeType":"YulLiteral","src":"2541:4:18","type":"","value":"0x60"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2516:3:18"},"nodeType":"YulFunctionCall","src":"2516:30:18"},"nodeType":"YulIf","src":"2513:117:18"},{"nodeType":"YulAssignment","src":"2639:30:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2664:4:18","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2648:15:18"},"nodeType":"YulFunctionCall","src":"2648:21:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2639:5:18"}]},{"nodeType":"YulBlock","src":"2679:160:18","statements":[{"nodeType":"YulVariableDeclaration","src":"2724:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2738:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2728:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2764:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2771:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2760:3:18"},"nodeType":"YulFunctionCall","src":"2760:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2803:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"2814:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2799:3:18"},"nodeType":"YulFunctionCall","src":"2799:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"2823:3:18"}],"functionName":{"name":"abi_decode_t_uint128","nodeType":"YulIdentifier","src":"2778:20:18"},"nodeType":"YulFunctionCall","src":"2778:49:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2753:6:18"},"nodeType":"YulFunctionCall","src":"2753:75:18"},"nodeType":"YulExpressionStatement","src":"2753:75:18"}]},{"nodeType":"YulBlock","src":"2849:160:18","statements":[{"nodeType":"YulVariableDeclaration","src":"2894:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2908:2:18","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2898:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2935:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2942:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2931:3:18"},"nodeType":"YulFunctionCall","src":"2931:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2973:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"2984:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2969:3:18"},"nodeType":"YulFunctionCall","src":"2969:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"2993:3:18"}],"functionName":{"name":"abi_decode_t_uint32","nodeType":"YulIdentifier","src":"2949:19:18"},"nodeType":"YulFunctionCall","src":"2949:48:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2924:6:18"},"nodeType":"YulFunctionCall","src":"2924:74:18"},"nodeType":"YulExpressionStatement","src":"2924:74:18"}]},{"nodeType":"YulBlock","src":"3019:159:18","statements":[{"nodeType":"YulVariableDeclaration","src":"3063:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"3077:2:18","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3067:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3104:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"3111:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3100:3:18"},"nodeType":"YulFunctionCall","src":"3100:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3142:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"3153:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3138:3:18"},"nodeType":"YulFunctionCall","src":"3138:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"3162:3:18"}],"functionName":{"name":"abi_decode_t_uint32","nodeType":"YulIdentifier","src":"3118:19:18"},"nodeType":"YulFunctionCall","src":"3118:48:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3093:6:18"},"nodeType":"YulFunctionCall","src":"3093:74:18"},"nodeType":"YulExpressionStatement","src":"3093:74:18"}]}]},"name":"abi_decode_t_struct$_Config__$2546_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2478:9:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"2489:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2497:5:18","type":""}],"src":"2423:762:18"},{"body":{"nodeType":"YulBlock","src":"3282:288:18","statements":[{"body":{"nodeType":"YulBlock","src":"3328:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"3330:77:18"},"nodeType":"YulFunctionCall","src":"3330:79:18"},"nodeType":"YulExpressionStatement","src":"3330:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3303:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"3312:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3299:3:18"},"nodeType":"YulFunctionCall","src":"3299:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"3324:2:18","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3295:3:18"},"nodeType":"YulFunctionCall","src":"3295:32:18"},"nodeType":"YulIf","src":"3292:119:18"},{"nodeType":"YulBlock","src":"3421:142:18","statements":[{"nodeType":"YulVariableDeclaration","src":"3436:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"3450:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3440:6:18","type":""}]},{"nodeType":"YulAssignment","src":"3465:88:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3525:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"3536:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3521:3:18"},"nodeType":"YulFunctionCall","src":"3521:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3545:7:18"}],"functionName":{"name":"abi_decode_t_struct$_Config__$2546_memory_ptr","nodeType":"YulIdentifier","src":"3475:45:18"},"nodeType":"YulFunctionCall","src":"3475:78:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3465:6:18"}]}]}]},"name":"abi_decode_tuple_t_struct$_Config__$2546_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3252:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3263:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3275:6:18","type":""}],"src":"3191:379:18"},{"body":{"nodeType":"YulBlock","src":"3621:32:18","statements":[{"nodeType":"YulAssignment","src":"3631:16:18","value":{"name":"value","nodeType":"YulIdentifier","src":"3642:5:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"3631:7:18"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3603:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"3613:7:18","type":""}],"src":"3576:77:18"},{"body":{"nodeType":"YulBlock","src":"3702:79:18","statements":[{"body":{"nodeType":"YulBlock","src":"3759:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3768:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3771:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3761:6:18"},"nodeType":"YulFunctionCall","src":"3761:12:18"},"nodeType":"YulExpressionStatement","src":"3761:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3725:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3750:5:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"3732:17:18"},"nodeType":"YulFunctionCall","src":"3732:24:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3722:2:18"},"nodeType":"YulFunctionCall","src":"3722:35:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3715:6:18"},"nodeType":"YulFunctionCall","src":"3715:43:18"},"nodeType":"YulIf","src":"3712:63:18"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3695:5:18","type":""}],"src":"3659:122:18"},{"body":{"nodeType":"YulBlock","src":"3839:87:18","statements":[{"nodeType":"YulAssignment","src":"3849:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3871:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3858:12:18"},"nodeType":"YulFunctionCall","src":"3858:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"3849:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3914:5:18"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"3887:26:18"},"nodeType":"YulFunctionCall","src":"3887:33:18"},"nodeType":"YulExpressionStatement","src":"3887:33:18"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"3817:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"3825:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"3833:5:18","type":""}],"src":"3787:139:18"},{"body":{"nodeType":"YulBlock","src":"3998:263:18","statements":[{"body":{"nodeType":"YulBlock","src":"4044:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"4046:77:18"},"nodeType":"YulFunctionCall","src":"4046:79:18"},"nodeType":"YulExpressionStatement","src":"4046:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4019:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"4028:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4015:3:18"},"nodeType":"YulFunctionCall","src":"4015:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"4040:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4011:3:18"},"nodeType":"YulFunctionCall","src":"4011:32:18"},"nodeType":"YulIf","src":"4008:119:18"},{"nodeType":"YulBlock","src":"4137:117:18","statements":[{"nodeType":"YulVariableDeclaration","src":"4152:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"4166:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4156:6:18","type":""}]},{"nodeType":"YulAssignment","src":"4181:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4216:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"4227:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4212:3:18"},"nodeType":"YulFunctionCall","src":"4212:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4236:7:18"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"4191:20:18"},"nodeType":"YulFunctionCall","src":"4191:53:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4181:6:18"}]}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3968:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3979:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3991:6:18","type":""}],"src":"3932:329:18"},{"body":{"nodeType":"YulBlock","src":"4332:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4349:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4372:5:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"4354:17:18"},"nodeType":"YulFunctionCall","src":"4354:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4342:6:18"},"nodeType":"YulFunctionCall","src":"4342:37:18"},"nodeType":"YulExpressionStatement","src":"4342:37:18"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4320:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4327:3:18","type":""}],"src":"4267:118:18"},{"body":{"nodeType":"YulBlock","src":"4489:124:18","statements":[{"nodeType":"YulAssignment","src":"4499:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4511:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"4522:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4507:3:18"},"nodeType":"YulFunctionCall","src":"4507:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4499:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4579:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4592:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"4603:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4588:3:18"},"nodeType":"YulFunctionCall","src":"4588:17:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"4535:43:18"},"nodeType":"YulFunctionCall","src":"4535:71:18"},"nodeType":"YulExpressionStatement","src":"4535:71:18"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4461:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4473:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4484:4:18","type":""}],"src":"4391:222:18"},{"body":{"nodeType":"YulBlock","src":"4664:32:18","statements":[{"nodeType":"YulAssignment","src":"4674:16:18","value":{"name":"value","nodeType":"YulIdentifier","src":"4685:5:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"4674:7:18"}]}]},"name":"cleanup_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4646:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"4656:7:18","type":""}],"src":"4619:77:18"},{"body":{"nodeType":"YulBlock","src":"4767:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4784:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4807:5:18"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"4789:17:18"},"nodeType":"YulFunctionCall","src":"4789:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4777:6:18"},"nodeType":"YulFunctionCall","src":"4777:37:18"},"nodeType":"YulExpressionStatement","src":"4777:37:18"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4755:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4762:3:18","type":""}],"src":"4702:118:18"},{"body":{"nodeType":"YulBlock","src":"4924:124:18","statements":[{"nodeType":"YulAssignment","src":"4934:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4946:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"4957:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4942:3:18"},"nodeType":"YulFunctionCall","src":"4942:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4934:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5014:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5027:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"5038:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5023:3:18"},"nodeType":"YulFunctionCall","src":"5023:17:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"4970:43:18"},"nodeType":"YulFunctionCall","src":"4970:71:18"},"nodeType":"YulExpressionStatement","src":"4970:71:18"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4896:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4908:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4919:4:18","type":""}],"src":"4826:222:18"},{"body":{"nodeType":"YulBlock","src":"5099:81:18","statements":[{"nodeType":"YulAssignment","src":"5109:65:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5124:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"5131:42:18","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5120:3:18"},"nodeType":"YulFunctionCall","src":"5120:54:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"5109:7:18"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5081:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"5091:7:18","type":""}],"src":"5054:126:18"},{"body":{"nodeType":"YulBlock","src":"5231:51:18","statements":[{"nodeType":"YulAssignment","src":"5241:35:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5270:5:18"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"5252:17:18"},"nodeType":"YulFunctionCall","src":"5252:24:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"5241:7:18"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5213:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"5223:7:18","type":""}],"src":"5186:96:18"},{"body":{"nodeType":"YulBlock","src":"5331:79:18","statements":[{"body":{"nodeType":"YulBlock","src":"5388:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5397:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5400:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5390:6:18"},"nodeType":"YulFunctionCall","src":"5390:12:18"},"nodeType":"YulExpressionStatement","src":"5390:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5354:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5379:5:18"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"5361:17:18"},"nodeType":"YulFunctionCall","src":"5361:24:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5351:2:18"},"nodeType":"YulFunctionCall","src":"5351:35:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5344:6:18"},"nodeType":"YulFunctionCall","src":"5344:43:18"},"nodeType":"YulIf","src":"5341:63:18"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5324:5:18","type":""}],"src":"5288:122:18"},{"body":{"nodeType":"YulBlock","src":"5468:87:18","statements":[{"nodeType":"YulAssignment","src":"5478:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5500:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5487:12:18"},"nodeType":"YulFunctionCall","src":"5487:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5478:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5543:5:18"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"5516:26:18"},"nodeType":"YulFunctionCall","src":"5516:33:18"},"nodeType":"YulExpressionStatement","src":"5516:33:18"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5446:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"5454:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5462:5:18","type":""}],"src":"5416:139:18"},{"body":{"nodeType":"YulBlock","src":"5627:263:18","statements":[{"body":{"nodeType":"YulBlock","src":"5673:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"5675:77:18"},"nodeType":"YulFunctionCall","src":"5675:79:18"},"nodeType":"YulExpressionStatement","src":"5675:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5648:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"5657:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5644:3:18"},"nodeType":"YulFunctionCall","src":"5644:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"5669:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5640:3:18"},"nodeType":"YulFunctionCall","src":"5640:32:18"},"nodeType":"YulIf","src":"5637:119:18"},{"nodeType":"YulBlock","src":"5766:117:18","statements":[{"nodeType":"YulVariableDeclaration","src":"5781:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"5795:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5785:6:18","type":""}]},{"nodeType":"YulAssignment","src":"5810:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5845:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"5856:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5841:3:18"},"nodeType":"YulFunctionCall","src":"5841:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5865:7:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5820:20:18"},"nodeType":"YulFunctionCall","src":"5820:53:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5810:6:18"}]}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5597:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5608:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5620:6:18","type":""}],"src":"5561:329:18"},{"body":{"nodeType":"YulBlock","src":"5938:48:18","statements":[{"nodeType":"YulAssignment","src":"5948:32:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5973:5:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5966:6:18"},"nodeType":"YulFunctionCall","src":"5966:13:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5959:6:18"},"nodeType":"YulFunctionCall","src":"5959:21:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"5948:7:18"}]}]},"name":"cleanup_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5920:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"5930:7:18","type":""}],"src":"5896:90:18"},{"body":{"nodeType":"YulBlock","src":"6051:50:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6068:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6088:5:18"}],"functionName":{"name":"cleanup_t_bool","nodeType":"YulIdentifier","src":"6073:14:18"},"nodeType":"YulFunctionCall","src":"6073:21:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6061:6:18"},"nodeType":"YulFunctionCall","src":"6061:34:18"},"nodeType":"YulExpressionStatement","src":"6061:34:18"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6039:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6046:3:18","type":""}],"src":"5992:109:18"},{"body":{"nodeType":"YulBlock","src":"6199:118:18","statements":[{"nodeType":"YulAssignment","src":"6209:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6221:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"6232:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6217:3:18"},"nodeType":"YulFunctionCall","src":"6217:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6209:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6283:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6296:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"6307:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6292:3:18"},"nodeType":"YulFunctionCall","src":"6292:17:18"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulIdentifier","src":"6245:37:18"},"nodeType":"YulFunctionCall","src":"6245:65:18"},"nodeType":"YulExpressionStatement","src":"6245:65:18"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6171:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6183:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6194:4:18","type":""}],"src":"6107:210:18"},{"body":{"nodeType":"YulBlock","src":"6366:79:18","statements":[{"body":{"nodeType":"YulBlock","src":"6423:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6432:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6435:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6425:6:18"},"nodeType":"YulFunctionCall","src":"6425:12:18"},"nodeType":"YulExpressionStatement","src":"6425:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6389:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6414:5:18"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"6396:17:18"},"nodeType":"YulFunctionCall","src":"6396:24:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6386:2:18"},"nodeType":"YulFunctionCall","src":"6386:35:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6379:6:18"},"nodeType":"YulFunctionCall","src":"6379:43:18"},"nodeType":"YulIf","src":"6376:63:18"}]},"name":"validator_revert_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6359:5:18","type":""}],"src":"6323:122:18"},{"body":{"nodeType":"YulBlock","src":"6503:87:18","statements":[{"nodeType":"YulAssignment","src":"6513:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6535:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6522:12:18"},"nodeType":"YulFunctionCall","src":"6522:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6513:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6578:5:18"}],"functionName":{"name":"validator_revert_t_bytes32","nodeType":"YulIdentifier","src":"6551:26:18"},"nodeType":"YulFunctionCall","src":"6551:33:18"},"nodeType":"YulExpressionStatement","src":"6551:33:18"}]},"name":"abi_decode_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"6481:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"6489:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"6497:5:18","type":""}],"src":"6451:139:18"},{"body":{"nodeType":"YulBlock","src":"6685:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6702:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6705:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6695:6:18"},"nodeType":"YulFunctionCall","src":"6695:12:18"},"nodeType":"YulExpressionStatement","src":"6695:12:18"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulFunctionDefinition","src":"6596:117:18"},{"body":{"nodeType":"YulBlock","src":"6808:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6825:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6828:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6818:6:18"},"nodeType":"YulFunctionCall","src":"6818:12:18"},"nodeType":"YulExpressionStatement","src":"6818:12:18"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulFunctionDefinition","src":"6719:117:18"},{"body":{"nodeType":"YulBlock","src":"6908:241:18","statements":[{"body":{"nodeType":"YulBlock","src":"7013:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"7015:16:18"},"nodeType":"YulFunctionCall","src":"7015:18:18"},"nodeType":"YulExpressionStatement","src":"7015:18:18"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6985:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"6993:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6982:2:18"},"nodeType":"YulFunctionCall","src":"6982:30:18"},"nodeType":"YulIf","src":"6979:56:18"},{"nodeType":"YulAssignment","src":"7045:37:18","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7075:6:18"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"7053:21:18"},"nodeType":"YulFunctionCall","src":"7053:29:18"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"7045:4:18"}]},{"nodeType":"YulAssignment","src":"7119:23:18","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"7131:4:18"},{"kind":"number","nodeType":"YulLiteral","src":"7137:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7127:3:18"},"nodeType":"YulFunctionCall","src":"7127:15:18"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"7119:4:18"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"6892:6:18","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"6903:4:18","type":""}],"src":"6842:307:18"},{"body":{"nodeType":"YulBlock","src":"7219:82:18","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7242:3:18"},{"name":"src","nodeType":"YulIdentifier","src":"7247:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"7252:6:18"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"7229:12:18"},"nodeType":"YulFunctionCall","src":"7229:30:18"},"nodeType":"YulExpressionStatement","src":"7229:30:18"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"7279:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"7284:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7275:3:18"},"nodeType":"YulFunctionCall","src":"7275:16:18"},{"kind":"number","nodeType":"YulLiteral","src":"7293:1:18","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7268:6:18"},"nodeType":"YulFunctionCall","src":"7268:27:18"},"nodeType":"YulExpressionStatement","src":"7268:27:18"}]},"name":"copy_calldata_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"7201:3:18","type":""},{"name":"dst","nodeType":"YulTypedName","src":"7206:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"7211:6:18","type":""}],"src":"7155:146:18"},{"body":{"nodeType":"YulBlock","src":"7390:340:18","statements":[{"nodeType":"YulAssignment","src":"7400:74:18","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7466:6:18"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"7425:40:18"},"nodeType":"YulFunctionCall","src":"7425:48:18"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"7409:15:18"},"nodeType":"YulFunctionCall","src":"7409:65:18"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"7400:5:18"}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7490:5:18"},{"name":"length","nodeType":"YulIdentifier","src":"7497:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7483:6:18"},"nodeType":"YulFunctionCall","src":"7483:21:18"},"nodeType":"YulExpressionStatement","src":"7483:21:18"},{"nodeType":"YulVariableDeclaration","src":"7513:27:18","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7528:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"7535:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7524:3:18"},"nodeType":"YulFunctionCall","src":"7524:16:18"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"7517:3:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"7578:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nodeType":"YulIdentifier","src":"7580:77:18"},"nodeType":"YulFunctionCall","src":"7580:79:18"},"nodeType":"YulExpressionStatement","src":"7580:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7559:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"7564:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7555:3:18"},"nodeType":"YulFunctionCall","src":"7555:16:18"},{"name":"end","nodeType":"YulIdentifier","src":"7573:3:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7552:2:18"},"nodeType":"YulFunctionCall","src":"7552:25:18"},"nodeType":"YulIf","src":"7549:112:18"},{"expression":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"7707:3:18"},{"name":"dst","nodeType":"YulIdentifier","src":"7712:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"7717:6:18"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"7670:36:18"},"nodeType":"YulFunctionCall","src":"7670:54:18"},"nodeType":"YulExpressionStatement","src":"7670:54:18"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"7363:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"7368:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"7376:3:18","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"7384:5:18","type":""}],"src":"7307:423:18"},{"body":{"nodeType":"YulBlock","src":"7810:277:18","statements":[{"body":{"nodeType":"YulBlock","src":"7859:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"7861:77:18"},"nodeType":"YulFunctionCall","src":"7861:79:18"},"nodeType":"YulExpressionStatement","src":"7861:79:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7838:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"7846:4:18","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7834:3:18"},"nodeType":"YulFunctionCall","src":"7834:17:18"},{"name":"end","nodeType":"YulIdentifier","src":"7853:3:18"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7830:3:18"},"nodeType":"YulFunctionCall","src":"7830:27:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7823:6:18"},"nodeType":"YulFunctionCall","src":"7823:35:18"},"nodeType":"YulIf","src":"7820:122:18"},{"nodeType":"YulVariableDeclaration","src":"7951:34:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7978:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7965:12:18"},"nodeType":"YulFunctionCall","src":"7965:20:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7955:6:18","type":""}]},{"nodeType":"YulAssignment","src":"7994:87:18","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8054:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"8062:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8050:3:18"},"nodeType":"YulFunctionCall","src":"8050:17:18"},{"name":"length","nodeType":"YulIdentifier","src":"8069:6:18"},{"name":"end","nodeType":"YulIdentifier","src":"8077:3:18"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"8003:46:18"},"nodeType":"YulFunctionCall","src":"8003:78:18"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"7994:5:18"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"7788:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"7796:3:18","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"7804:5:18","type":""}],"src":"7749:338:18"},{"body":{"nodeType":"YulBlock","src":"8230:1493:18","statements":[{"body":{"nodeType":"YulBlock","src":"8274:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"8276:77:18"},"nodeType":"YulFunctionCall","src":"8276:79:18"},"nodeType":"YulExpressionStatement","src":"8276:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"8251:3:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"8256:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8247:3:18"},"nodeType":"YulFunctionCall","src":"8247:19:18"},{"kind":"number","nodeType":"YulLiteral","src":"8268:4:18","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8243:3:18"},"nodeType":"YulFunctionCall","src":"8243:30:18"},"nodeType":"YulIf","src":"8240:117:18"},{"nodeType":"YulAssignment","src":"8366:30:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8391:4:18","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8375:15:18"},"nodeType":"YulFunctionCall","src":"8375:21:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"8366:5:18"}]},{"nodeType":"YulBlock","src":"8406:153:18","statements":[{"nodeType":"YulVariableDeclaration","src":"8444:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"8458:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8448:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8484:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"8491:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8480:3:18"},"nodeType":"YulFunctionCall","src":"8480:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8523:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"8534:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8519:3:18"},"nodeType":"YulFunctionCall","src":"8519:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"8543:3:18"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"8498:20:18"},"nodeType":"YulFunctionCall","src":"8498:49:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8473:6:18"},"nodeType":"YulFunctionCall","src":"8473:75:18"},"nodeType":"YulExpressionStatement","src":"8473:75:18"}]},{"nodeType":"YulBlock","src":"8569:151:18","statements":[{"nodeType":"YulVariableDeclaration","src":"8604:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"8618:2:18","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8608:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8645:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"8652:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8641:3:18"},"nodeType":"YulFunctionCall","src":"8641:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8684:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"8695:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8680:3:18"},"nodeType":"YulFunctionCall","src":"8680:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"8704:3:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"8659:20:18"},"nodeType":"YulFunctionCall","src":"8659:49:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8634:6:18"},"nodeType":"YulFunctionCall","src":"8634:75:18"},"nodeType":"YulExpressionStatement","src":"8634:75:18"}]},{"nodeType":"YulBlock","src":"8730:149:18","statements":[{"nodeType":"YulVariableDeclaration","src":"8763:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"8777:2:18","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8767:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8804:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"8811:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8800:3:18"},"nodeType":"YulFunctionCall","src":"8800:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8843:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"8854:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8839:3:18"},"nodeType":"YulFunctionCall","src":"8839:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"8863:3:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"8818:20:18"},"nodeType":"YulFunctionCall","src":"8818:49:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8793:6:18"},"nodeType":"YulFunctionCall","src":"8793:75:18"},"nodeType":"YulExpressionStatement","src":"8793:75:18"}]},{"nodeType":"YulBlock","src":"8889:153:18","statements":[{"nodeType":"YulVariableDeclaration","src":"8926:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"8940:2:18","type":"","value":"96"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8930:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8967:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"8974:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8963:3:18"},"nodeType":"YulFunctionCall","src":"8963:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9006:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"9017:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9002:3:18"},"nodeType":"YulFunctionCall","src":"9002:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"9026:3:18"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"8981:20:18"},"nodeType":"YulFunctionCall","src":"8981:49:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8956:6:18"},"nodeType":"YulFunctionCall","src":"8956:75:18"},"nodeType":"YulExpressionStatement","src":"8956:75:18"}]},{"nodeType":"YulBlock","src":"9052:329:18","statements":[{"nodeType":"YulVariableDeclaration","src":"9095:47:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9126:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"9137:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9122:3:18"},"nodeType":"YulFunctionCall","src":"9122:19:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9109:12:18"},"nodeType":"YulFunctionCall","src":"9109:33:18"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9099:6:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"9189:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"9191:77:18"},"nodeType":"YulFunctionCall","src":"9191:79:18"},"nodeType":"YulExpressionStatement","src":"9191:79:18"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9161:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"9169:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9158:2:18"},"nodeType":"YulFunctionCall","src":"9158:30:18"},"nodeType":"YulIf","src":"9155:117:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9297:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"9304:4:18","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9293:3:18"},"nodeType":"YulFunctionCall","src":"9293:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9345:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"9356:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9341:3:18"},"nodeType":"YulFunctionCall","src":"9341:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"9365:3:18"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"9311:29:18"},"nodeType":"YulFunctionCall","src":"9311:58:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9286:6:18"},"nodeType":"YulFunctionCall","src":"9286:84:18"},"nodeType":"YulExpressionStatement","src":"9286:84:18"}]},{"nodeType":"YulBlock","src":"9391:325:18","statements":[{"nodeType":"YulVariableDeclaration","src":"9430:47:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9461:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"9472:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9457:3:18"},"nodeType":"YulFunctionCall","src":"9457:19:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9444:12:18"},"nodeType":"YulFunctionCall","src":"9444:33:18"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9434:6:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"9524:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nodeType":"YulIdentifier","src":"9526:77:18"},"nodeType":"YulFunctionCall","src":"9526:79:18"},"nodeType":"YulExpressionStatement","src":"9526:79:18"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9496:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"9504:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9493:2:18"},"nodeType":"YulFunctionCall","src":"9493:30:18"},"nodeType":"YulIf","src":"9490:117:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9632:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"9639:4:18","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9628:3:18"},"nodeType":"YulFunctionCall","src":"9628:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9680:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"9691:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9676:3:18"},"nodeType":"YulFunctionCall","src":"9676:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"9700:3:18"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"9646:29:18"},"nodeType":"YulFunctionCall","src":"9646:58:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9621:6:18"},"nodeType":"YulFunctionCall","src":"9621:84:18"},"nodeType":"YulExpressionStatement","src":"9621:84:18"}]}]},"name":"abi_decode_t_struct$_DepositorWithdrawal_$2862_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8205:9:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"8216:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"8224:5:18","type":""}],"src":"8138:1585:18"},{"body":{"nodeType":"YulBlock","src":"9832:460:18","statements":[{"body":{"nodeType":"YulBlock","src":"9878:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"9880:77:18"},"nodeType":"YulFunctionCall","src":"9880:79:18"},"nodeType":"YulExpressionStatement","src":"9880:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9853:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"9862:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9849:3:18"},"nodeType":"YulFunctionCall","src":"9849:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"9874:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9845:3:18"},"nodeType":"YulFunctionCall","src":"9845:32:18"},"nodeType":"YulIf","src":"9842:119:18"},{"nodeType":"YulBlock","src":"9971:314:18","statements":[{"nodeType":"YulVariableDeclaration","src":"9986:45:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10017:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"10028:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10013:3:18"},"nodeType":"YulFunctionCall","src":"10013:17:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10000:12:18"},"nodeType":"YulFunctionCall","src":"10000:31:18"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9990:6:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"10078:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"10080:77:18"},"nodeType":"YulFunctionCall","src":"10080:79:18"},"nodeType":"YulExpressionStatement","src":"10080:79:18"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10050:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"10058:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10047:2:18"},"nodeType":"YulFunctionCall","src":"10047:30:18"},"nodeType":"YulIf","src":"10044:117:18"},{"nodeType":"YulAssignment","src":"10175:100:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10247:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"10258:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10243:3:18"},"nodeType":"YulFunctionCall","src":"10243:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10267:7:18"}],"functionName":{"name":"abi_decode_t_struct$_DepositorWithdrawal_$2862_memory_ptr","nodeType":"YulIdentifier","src":"10185:57:18"},"nodeType":"YulFunctionCall","src":"10185:90:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10175:6:18"}]}]}]},"name":"abi_decode_tuple_t_struct$_DepositorWithdrawal_$2862_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9802:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9813:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9825:6:18","type":""}],"src":"9729:563:18"},{"body":{"nodeType":"YulBlock","src":"10364:263:18","statements":[{"body":{"nodeType":"YulBlock","src":"10410:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"10412:77:18"},"nodeType":"YulFunctionCall","src":"10412:79:18"},"nodeType":"YulExpressionStatement","src":"10412:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10385:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"10394:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10381:3:18"},"nodeType":"YulFunctionCall","src":"10381:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"10406:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10377:3:18"},"nodeType":"YulFunctionCall","src":"10377:32:18"},"nodeType":"YulIf","src":"10374:119:18"},{"nodeType":"YulBlock","src":"10503:117:18","statements":[{"nodeType":"YulVariableDeclaration","src":"10518:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"10532:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10522:6:18","type":""}]},{"nodeType":"YulAssignment","src":"10547:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10582:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"10593:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10578:3:18"},"nodeType":"YulFunctionCall","src":"10578:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10602:7:18"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"10557:20:18"},"nodeType":"YulFunctionCall","src":"10557:53:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10547:6:18"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10334:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10345:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10357:6:18","type":""}],"src":"10298:329:18"},{"body":{"nodeType":"YulBlock","src":"10698:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10715:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10738:5:18"}],"functionName":{"name":"cleanup_t_uint128","nodeType":"YulIdentifier","src":"10720:17:18"},"nodeType":"YulFunctionCall","src":"10720:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10708:6:18"},"nodeType":"YulFunctionCall","src":"10708:37:18"},"nodeType":"YulExpressionStatement","src":"10708:37:18"}]},"name":"abi_encode_t_uint128_to_t_uint128_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10686:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10693:3:18","type":""}],"src":"10633:118:18"},{"body":{"nodeType":"YulBlock","src":"10820:52:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10837:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10859:5:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"10842:16:18"},"nodeType":"YulFunctionCall","src":"10842:23:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10830:6:18"},"nodeType":"YulFunctionCall","src":"10830:36:18"},"nodeType":"YulExpressionStatement","src":"10830:36:18"}]},"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10808:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10815:3:18","type":""}],"src":"10757:115:18"},{"body":{"nodeType":"YulBlock","src":"11028:284:18","statements":[{"nodeType":"YulAssignment","src":"11038:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11050:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"11061:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11046:3:18"},"nodeType":"YulFunctionCall","src":"11046:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11038:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11118:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11131:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"11142:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11127:3:18"},"nodeType":"YulFunctionCall","src":"11127:17:18"}],"functionName":{"name":"abi_encode_t_uint128_to_t_uint128_fromStack","nodeType":"YulIdentifier","src":"11074:43:18"},"nodeType":"YulFunctionCall","src":"11074:71:18"},"nodeType":"YulExpressionStatement","src":"11074:71:18"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11197:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11210:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"11221:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11206:3:18"},"nodeType":"YulFunctionCall","src":"11206:18:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulIdentifier","src":"11155:41:18"},"nodeType":"YulFunctionCall","src":"11155:70:18"},"nodeType":"YulExpressionStatement","src":"11155:70:18"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11277:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11290:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"11301:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11286:3:18"},"nodeType":"YulFunctionCall","src":"11286:18:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulIdentifier","src":"11235:41:18"},"nodeType":"YulFunctionCall","src":"11235:70:18"},"nodeType":"YulExpressionStatement","src":"11235:70:18"}]},"name":"abi_encode_tuple_t_uint128_t_uint32_t_uint32__to_t_uint128_t_uint32_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10984:9:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10996:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11004:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11012:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11023:4:18","type":""}],"src":"10878:434:18"},{"body":{"nodeType":"YulBlock","src":"11362:105:18","statements":[{"nodeType":"YulAssignment","src":"11372:89:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11387:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"11394:66:18","type":"","value":"0xff00000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11383:3:18"},"nodeType":"YulFunctionCall","src":"11383:78:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"11372:7:18"}]}]},"name":"cleanup_t_bytes1","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11344:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"11354:7:18","type":""}],"src":"11318:149:18"},{"body":{"nodeType":"YulBlock","src":"11536:52:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11553:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11575:5:18"}],"functionName":{"name":"cleanup_t_bytes1","nodeType":"YulIdentifier","src":"11558:16:18"},"nodeType":"YulFunctionCall","src":"11558:23:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11546:6:18"},"nodeType":"YulFunctionCall","src":"11546:36:18"},"nodeType":"YulExpressionStatement","src":"11546:36:18"}]},"name":"abi_encode_t_bytes1_to_t_bytes1_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11524:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11531:3:18","type":""}],"src":"11473:115:18"},{"body":{"nodeType":"YulBlock","src":"11653:40:18","statements":[{"nodeType":"YulAssignment","src":"11664:22:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11680:5:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11674:5:18"},"nodeType":"YulFunctionCall","src":"11674:12:18"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"11664:6:18"}]}]},"name":"array_length_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11636:5:18","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"11646:6:18","type":""}],"src":"11594:99:18"},{"body":{"nodeType":"YulBlock","src":"11795:73:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11812:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"11817:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11805:6:18"},"nodeType":"YulFunctionCall","src":"11805:19:18"},"nodeType":"YulExpressionStatement","src":"11805:19:18"},{"nodeType":"YulAssignment","src":"11833:29:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11852:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"11857:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11848:3:18"},"nodeType":"YulFunctionCall","src":"11848:14:18"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"11833:11:18"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11767:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"11772:6:18","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"11783:11:18","type":""}],"src":"11699:169:18"},{"body":{"nodeType":"YulBlock","src":"11936:184:18","statements":[{"nodeType":"YulVariableDeclaration","src":"11946:10:18","value":{"kind":"number","nodeType":"YulLiteral","src":"11955:1:18","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"11950:1:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"12015:63:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12040:3:18"},{"name":"i","nodeType":"YulIdentifier","src":"12045:1:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12036:3:18"},"nodeType":"YulFunctionCall","src":"12036:11:18"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"12059:3:18"},{"name":"i","nodeType":"YulIdentifier","src":"12064:1:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12055:3:18"},"nodeType":"YulFunctionCall","src":"12055:11:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12049:5:18"},"nodeType":"YulFunctionCall","src":"12049:18:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12029:6:18"},"nodeType":"YulFunctionCall","src":"12029:39:18"},"nodeType":"YulExpressionStatement","src":"12029:39:18"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11976:1:18"},{"name":"length","nodeType":"YulIdentifier","src":"11979:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11973:2:18"},"nodeType":"YulFunctionCall","src":"11973:13:18"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"11987:19:18","statements":[{"nodeType":"YulAssignment","src":"11989:15:18","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11998:1:18"},{"kind":"number","nodeType":"YulLiteral","src":"12001:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11994:3:18"},"nodeType":"YulFunctionCall","src":"11994:10:18"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"11989:1:18"}]}]},"pre":{"nodeType":"YulBlock","src":"11969:3:18","statements":[]},"src":"11965:113:18"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12098:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"12103:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12094:3:18"},"nodeType":"YulFunctionCall","src":"12094:16:18"},{"kind":"number","nodeType":"YulLiteral","src":"12112:1:18","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12087:6:18"},"nodeType":"YulFunctionCall","src":"12087:27:18"},"nodeType":"YulExpressionStatement","src":"12087:27:18"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"11918:3:18","type":""},{"name":"dst","nodeType":"YulTypedName","src":"11923:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"11928:6:18","type":""}],"src":"11874:246:18"},{"body":{"nodeType":"YulBlock","src":"12218:285:18","statements":[{"nodeType":"YulVariableDeclaration","src":"12228:53:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12275:5:18"}],"functionName":{"name":"array_length_t_string_memory_ptr","nodeType":"YulIdentifier","src":"12242:32:18"},"nodeType":"YulFunctionCall","src":"12242:39:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12232:6:18","type":""}]},{"nodeType":"YulAssignment","src":"12290:78:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12356:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"12361:6:18"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"12297:58:18"},"nodeType":"YulFunctionCall","src":"12297:71:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"12290:3:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12416:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"12423:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12412:3:18"},"nodeType":"YulFunctionCall","src":"12412:16:18"},{"name":"pos","nodeType":"YulIdentifier","src":"12430:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"12435:6:18"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"12377:34:18"},"nodeType":"YulFunctionCall","src":"12377:65:18"},"nodeType":"YulExpressionStatement","src":"12377:65:18"},{"nodeType":"YulAssignment","src":"12451:46:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12462:3:18"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12489:6:18"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"12467:21:18"},"nodeType":"YulFunctionCall","src":"12467:29:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12458:3:18"},"nodeType":"YulFunctionCall","src":"12458:39:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12451:3:18"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12199:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12206:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12214:3:18","type":""}],"src":"12126:377:18"},{"body":{"nodeType":"YulBlock","src":"12574:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12591:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12614:5:18"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"12596:17:18"},"nodeType":"YulFunctionCall","src":"12596:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12584:6:18"},"nodeType":"YulFunctionCall","src":"12584:37:18"},"nodeType":"YulExpressionStatement","src":"12584:37:18"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12562:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12569:3:18","type":""}],"src":"12509:118:18"},{"body":{"nodeType":"YulBlock","src":"12707:40:18","statements":[{"nodeType":"YulAssignment","src":"12718:22:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12734:5:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12728:5:18"},"nodeType":"YulFunctionCall","src":"12728:12:18"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"12718:6:18"}]}]},"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12690:5:18","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"12700:6:18","type":""}],"src":"12633:114:18"},{"body":{"nodeType":"YulBlock","src":"12864:73:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12881:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"12886:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12874:6:18"},"nodeType":"YulFunctionCall","src":"12874:19:18"},"nodeType":"YulExpressionStatement","src":"12874:19:18"},{"nodeType":"YulAssignment","src":"12902:29:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12921:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"12926:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12917:3:18"},"nodeType":"YulFunctionCall","src":"12917:14:18"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"12902:11:18"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12836:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"12841:6:18","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"12852:11:18","type":""}],"src":"12753:184:18"},{"body":{"nodeType":"YulBlock","src":"13015:60:18","statements":[{"nodeType":"YulAssignment","src":"13025:11:18","value":{"name":"ptr","nodeType":"YulIdentifier","src":"13033:3:18"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"13025:4:18"}]},{"nodeType":"YulAssignment","src":"13046:22:18","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"13058:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"13063:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13054:3:18"},"nodeType":"YulFunctionCall","src":"13054:14:18"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"13046:4:18"}]}]},"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"13002:3:18","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"13010:4:18","type":""}],"src":"12943:132:18"},{"body":{"nodeType":"YulBlock","src":"13136:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13153:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13176:5:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"13158:17:18"},"nodeType":"YulFunctionCall","src":"13158:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13146:6:18"},"nodeType":"YulFunctionCall","src":"13146:37:18"},"nodeType":"YulExpressionStatement","src":"13146:37:18"}]},"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13124:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"13131:3:18","type":""}],"src":"13081:108:18"},{"body":{"nodeType":"YulBlock","src":"13275:99:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13319:6:18"},{"name":"pos","nodeType":"YulIdentifier","src":"13327:3:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"13285:33:18"},"nodeType":"YulFunctionCall","src":"13285:46:18"},"nodeType":"YulExpressionStatement","src":"13285:46:18"},{"nodeType":"YulAssignment","src":"13340:28:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13358:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"13363:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13354:3:18"},"nodeType":"YulFunctionCall","src":"13354:14:18"},"variableNames":[{"name":"updatedPos","nodeType":"YulIdentifier","src":"13340:10:18"}]}]},"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nodeType":"YulTypedName","src":"13248:6:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"13256:3:18","type":""}],"returnVariables":[{"name":"updatedPos","nodeType":"YulTypedName","src":"13264:10:18","type":""}],"src":"13195:179:18"},{"body":{"nodeType":"YulBlock","src":"13455:38:18","statements":[{"nodeType":"YulAssignment","src":"13465:22:18","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"13477:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"13482:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13473:3:18"},"nodeType":"YulFunctionCall","src":"13473:14:18"},"variableNames":[{"name":"next","nodeType":"YulIdentifier","src":"13465:4:18"}]}]},"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"13442:3:18","type":""}],"returnVariables":[{"name":"next","nodeType":"YulTypedName","src":"13450:4:18","type":""}],"src":"13380:113:18"},{"body":{"nodeType":"YulBlock","src":"13653:608:18","statements":[{"nodeType":"YulVariableDeclaration","src":"13663:68:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13725:5:18"}],"functionName":{"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"13677:47:18"},"nodeType":"YulFunctionCall","src":"13677:54:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"13667:6:18","type":""}]},{"nodeType":"YulAssignment","src":"13740:93:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13821:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"13826:6:18"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"13747:73:18"},"nodeType":"YulFunctionCall","src":"13747:86:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13740:3:18"}]},{"nodeType":"YulVariableDeclaration","src":"13842:71:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13907:5:18"}],"functionName":{"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"13857:49:18"},"nodeType":"YulFunctionCall","src":"13857:56:18"},"variables":[{"name":"baseRef","nodeType":"YulTypedName","src":"13846:7:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13922:21:18","value":{"name":"baseRef","nodeType":"YulIdentifier","src":"13936:7:18"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"13926:6:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"14012:224:18","statements":[{"nodeType":"YulVariableDeclaration","src":"14026:34:18","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"14053:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14047:5:18"},"nodeType":"YulFunctionCall","src":"14047:13:18"},"variables":[{"name":"elementValue0","nodeType":"YulTypedName","src":"14030:13:18","type":""}]},{"nodeType":"YulAssignment","src":"14073:70:18","value":{"arguments":[{"name":"elementValue0","nodeType":"YulIdentifier","src":"14124:13:18"},{"name":"pos","nodeType":"YulIdentifier","src":"14139:3:18"}],"functionName":{"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"14080:43:18"},"nodeType":"YulFunctionCall","src":"14080:63:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14073:3:18"}]},{"nodeType":"YulAssignment","src":"14156:70:18","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"14219:6:18"}],"functionName":{"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"14166:52:18"},"nodeType":"YulFunctionCall","src":"14166:60:18"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"14156:6:18"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13974:1:18"},{"name":"length","nodeType":"YulIdentifier","src":"13977:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13971:2:18"},"nodeType":"YulFunctionCall","src":"13971:13:18"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13985:18:18","statements":[{"nodeType":"YulAssignment","src":"13987:14:18","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13996:1:18"},{"kind":"number","nodeType":"YulLiteral","src":"13999:1:18","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13992:3:18"},"nodeType":"YulFunctionCall","src":"13992:9:18"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"13987:1:18"}]}]},"pre":{"nodeType":"YulBlock","src":"13956:14:18","statements":[{"nodeType":"YulVariableDeclaration","src":"13958:10:18","value":{"kind":"number","nodeType":"YulLiteral","src":"13967:1:18","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"13962:1:18","type":""}]}]},"src":"13952:284:18"},{"nodeType":"YulAssignment","src":"14245:10:18","value":{"name":"pos","nodeType":"YulIdentifier","src":"14252:3:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"14245:3:18"}]}]},"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13632:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"13639:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"13648:3:18","type":""}],"src":"13529:732:18"},{"body":{"nodeType":"YulBlock","src":"14621:861:18","statements":[{"nodeType":"YulAssignment","src":"14631:27:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14643:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"14654:3:18","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14639:3:18"},"nodeType":"YulFunctionCall","src":"14639:19:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14631:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14710:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14723:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"14734:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14719:3:18"},"nodeType":"YulFunctionCall","src":"14719:17:18"}],"functionName":{"name":"abi_encode_t_bytes1_to_t_bytes1_fromStack","nodeType":"YulIdentifier","src":"14668:41:18"},"nodeType":"YulFunctionCall","src":"14668:69:18"},"nodeType":"YulExpressionStatement","src":"14668:69:18"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14758:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"14769:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14754:3:18"},"nodeType":"YulFunctionCall","src":"14754:18:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14778:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"14784:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14774:3:18"},"nodeType":"YulFunctionCall","src":"14774:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14747:6:18"},"nodeType":"YulFunctionCall","src":"14747:48:18"},"nodeType":"YulExpressionStatement","src":"14747:48:18"},{"nodeType":"YulAssignment","src":"14804:86:18","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14876:6:18"},{"name":"tail","nodeType":"YulIdentifier","src":"14885:4:18"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14812:63:18"},"nodeType":"YulFunctionCall","src":"14812:78:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14804:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14911:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"14922:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14907:3:18"},"nodeType":"YulFunctionCall","src":"14907:18:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"14931:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"14937:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14927:3:18"},"nodeType":"YulFunctionCall","src":"14927:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14900:6:18"},"nodeType":"YulFunctionCall","src":"14900:48:18"},"nodeType":"YulExpressionStatement","src":"14900:48:18"},{"nodeType":"YulAssignment","src":"14957:86:18","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"15029:6:18"},{"name":"tail","nodeType":"YulIdentifier","src":"15038:4:18"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"14965:63:18"},"nodeType":"YulFunctionCall","src":"14965:78:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14957:4:18"}]},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"15097:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15110:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"15121:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15106:3:18"},"nodeType":"YulFunctionCall","src":"15106:18:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"15053:43:18"},"nodeType":"YulFunctionCall","src":"15053:72:18"},"nodeType":"YulExpressionStatement","src":"15053:72:18"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"15179:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15192:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"15203:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15188:3:18"},"nodeType":"YulFunctionCall","src":"15188:19:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"15135:43:18"},"nodeType":"YulFunctionCall","src":"15135:73:18"},"nodeType":"YulExpressionStatement","src":"15135:73:18"},{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"15262:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15275:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"15286:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15271:3:18"},"nodeType":"YulFunctionCall","src":"15271:19:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"15218:43:18"},"nodeType":"YulFunctionCall","src":"15218:73:18"},"nodeType":"YulExpressionStatement","src":"15218:73:18"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15312:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"15323:3:18","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15308:3:18"},"nodeType":"YulFunctionCall","src":"15308:19:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"15333:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"15339:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15329:3:18"},"nodeType":"YulFunctionCall","src":"15329:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15301:6:18"},"nodeType":"YulFunctionCall","src":"15301:49:18"},"nodeType":"YulExpressionStatement","src":"15301:49:18"},{"nodeType":"YulAssignment","src":"15359:116:18","value":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"15461:6:18"},{"name":"tail","nodeType":"YulIdentifier","src":"15470:4:18"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"15367:93:18"},"nodeType":"YulFunctionCall","src":"15367:108:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15359:4:18"}]}]},"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","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14545:9:18","type":""},{"name":"value6","nodeType":"YulTypedName","src":"14557:6:18","type":""},{"name":"value5","nodeType":"YulTypedName","src":"14565:6:18","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14573:6:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14581:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14589:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14597:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14605:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14616:4:18","type":""}],"src":"14267:1215:18"},{"body":{"nodeType":"YulBlock","src":"15602:229:18","statements":[{"body":{"nodeType":"YulBlock","src":"15707:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"15709:16:18"},"nodeType":"YulFunctionCall","src":"15709:18:18"},"nodeType":"YulExpressionStatement","src":"15709:18:18"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15679:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"15687:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15676:2:18"},"nodeType":"YulFunctionCall","src":"15676:30:18"},"nodeType":"YulIf","src":"15673:56:18"},{"nodeType":"YulAssignment","src":"15739:25:18","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15751:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"15759:4:18","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"15747:3:18"},"nodeType":"YulFunctionCall","src":"15747:17:18"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"15739:4:18"}]},{"nodeType":"YulAssignment","src":"15801:23:18","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"15813:4:18"},{"kind":"number","nodeType":"YulLiteral","src":"15819:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15809:3:18"},"nodeType":"YulFunctionCall","src":"15809:15:18"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"15801:4:18"}]}]},"name":"array_allocation_size_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"15586:6:18","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"15597:4:18","type":""}],"src":"15488:343:18"},{"body":{"nodeType":"YulBlock","src":"15926:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15943:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15946:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15936:6:18"},"nodeType":"YulFunctionCall","src":"15936:12:18"},"nodeType":"YulExpressionStatement","src":"15936:12:18"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulFunctionDefinition","src":"15837:117:18"},{"body":{"nodeType":"YulBlock","src":"16087:991:18","statements":[{"body":{"nodeType":"YulBlock","src":"16131:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nodeType":"YulIdentifier","src":"16133:77:18"},"nodeType":"YulFunctionCall","src":"16133:79:18"},"nodeType":"YulExpressionStatement","src":"16133:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"16108:3:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"16113:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16104:3:18"},"nodeType":"YulFunctionCall","src":"16104:19:18"},{"kind":"number","nodeType":"YulLiteral","src":"16125:4:18","type":"","value":"0xa0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"16100:3:18"},"nodeType":"YulFunctionCall","src":"16100:30:18"},"nodeType":"YulIf","src":"16097:117:18"},{"nodeType":"YulAssignment","src":"16223:30:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16248:4:18","type":"","value":"0xa0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"16232:15:18"},"nodeType":"YulFunctionCall","src":"16232:21:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"16223:5:18"}]},{"nodeType":"YulBlock","src":"16263:156:18","statements":[{"nodeType":"YulVariableDeclaration","src":"16304:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"16318:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16308:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16344:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"16351:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16340:3:18"},"nodeType":"YulFunctionCall","src":"16340:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16383:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"16394:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16379:3:18"},"nodeType":"YulFunctionCall","src":"16379:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"16403:3:18"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"16358:20:18"},"nodeType":"YulFunctionCall","src":"16358:49:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16333:6:18"},"nodeType":"YulFunctionCall","src":"16333:75:18"},"nodeType":"YulExpressionStatement","src":"16333:75:18"}]},{"nodeType":"YulBlock","src":"16429:154:18","statements":[{"nodeType":"YulVariableDeclaration","src":"16467:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"16481:2:18","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16471:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16508:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"16515:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16504:3:18"},"nodeType":"YulFunctionCall","src":"16504:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16547:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"16558:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16543:3:18"},"nodeType":"YulFunctionCall","src":"16543:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"16567:3:18"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"16522:20:18"},"nodeType":"YulFunctionCall","src":"16522:49:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16497:6:18"},"nodeType":"YulFunctionCall","src":"16497:75:18"},"nodeType":"YulExpressionStatement","src":"16497:75:18"}]},{"nodeType":"YulBlock","src":"16593:149:18","statements":[{"nodeType":"YulVariableDeclaration","src":"16626:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"16640:2:18","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16630:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16667:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"16674:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16663:3:18"},"nodeType":"YulFunctionCall","src":"16663:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16706:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"16717:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16702:3:18"},"nodeType":"YulFunctionCall","src":"16702:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"16726:3:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"16681:20:18"},"nodeType":"YulFunctionCall","src":"16681:49:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16656:6:18"},"nodeType":"YulFunctionCall","src":"16656:75:18"},"nodeType":"YulExpressionStatement","src":"16656:75:18"}]},{"nodeType":"YulBlock","src":"16752:153:18","statements":[{"nodeType":"YulVariableDeclaration","src":"16789:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"16803:2:18","type":"","value":"96"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16793:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16830:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"16837:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16826:3:18"},"nodeType":"YulFunctionCall","src":"16826:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16869:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"16880:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16865:3:18"},"nodeType":"YulFunctionCall","src":"16865:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"16889:3:18"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"16844:20:18"},"nodeType":"YulFunctionCall","src":"16844:49:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16819:6:18"},"nodeType":"YulFunctionCall","src":"16819:75:18"},"nodeType":"YulExpressionStatement","src":"16819:75:18"}]},{"nodeType":"YulBlock","src":"16915:156:18","statements":[{"nodeType":"YulVariableDeclaration","src":"16955:17:18","value":{"kind":"number","nodeType":"YulLiteral","src":"16969:3:18","type":"","value":"128"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"16959:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16997:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"17004:4:18","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16993:3:18"},"nodeType":"YulFunctionCall","src":"16993:16:18"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17035:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"17046:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17031:3:18"},"nodeType":"YulFunctionCall","src":"17031:22:18"},{"name":"end","nodeType":"YulIdentifier","src":"17055:3:18"}],"functionName":{"name":"abi_decode_t_uint32","nodeType":"YulIdentifier","src":"17011:19:18"},"nodeType":"YulFunctionCall","src":"17011:48:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16986:6:18"},"nodeType":"YulFunctionCall","src":"16986:74:18"},"nodeType":"YulExpressionStatement","src":"16986:74:18"}]}]},"name":"abi_decode_t_struct$_FinalizeTxMeta_$2873_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16062:9:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"16073:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"16081:5:18","type":""}],"src":"16000:1078:18"},{"body":{"nodeType":"YulBlock","src":"17260:672:18","statements":[{"nodeType":"YulAssignment","src":"17270:122:18","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"17384:6:18"}],"functionName":{"name":"array_allocation_size_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"17295:88:18"},"nodeType":"YulFunctionCall","src":"17295:96:18"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"17279:15:18"},"nodeType":"YulFunctionCall","src":"17279:113:18"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"17270:5:18"}]},{"nodeType":"YulVariableDeclaration","src":"17401:16:18","value":{"name":"array","nodeType":"YulIdentifier","src":"17412:5:18"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"17405:3:18","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"17434:5:18"},{"name":"length","nodeType":"YulIdentifier","src":"17441:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17427:6:18"},"nodeType":"YulFunctionCall","src":"17427:21:18"},"nodeType":"YulExpressionStatement","src":"17427:21:18"},{"nodeType":"YulAssignment","src":"17457:23:18","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"17468:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"17475:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17464:3:18"},"nodeType":"YulFunctionCall","src":"17464:16:18"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"17457:3:18"}]},{"nodeType":"YulVariableDeclaration","src":"17490:44:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"17508:6:18"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"17520:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"17528:4:18","type":"","value":"0xa0"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"17516:3:18"},"nodeType":"YulFunctionCall","src":"17516:17:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17504:3:18"},"nodeType":"YulFunctionCall","src":"17504:30:18"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"17494:6:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"17562:103:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nodeType":"YulIdentifier","src":"17576:77:18"},"nodeType":"YulFunctionCall","src":"17576:79:18"},"nodeType":"YulExpressionStatement","src":"17576:79:18"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"17549:6:18"},{"name":"end","nodeType":"YulIdentifier","src":"17557:3:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"17546:2:18"},"nodeType":"YulFunctionCall","src":"17546:15:18"},"nodeType":"YulIf","src":"17543:122:18"},{"body":{"nodeType":"YulBlock","src":"17750:176:18","statements":[{"nodeType":"YulVariableDeclaration","src":"17765:21:18","value":{"name":"src","nodeType":"YulIdentifier","src":"17783:3:18"},"variables":[{"name":"elementPos","nodeType":"YulTypedName","src":"17769:10:18","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"17807:3:18"},{"arguments":[{"name":"elementPos","nodeType":"YulIdentifier","src":"17865:10:18"},{"name":"end","nodeType":"YulIdentifier","src":"17877:3:18"}],"functionName":{"name":"abi_decode_t_struct$_FinalizeTxMeta_$2873_memory_ptr","nodeType":"YulIdentifier","src":"17812:52:18"},"nodeType":"YulFunctionCall","src":"17812:69:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17800:6:18"},"nodeType":"YulFunctionCall","src":"17800:82:18"},"nodeType":"YulExpressionStatement","src":"17800:82:18"},{"nodeType":"YulAssignment","src":"17895:21:18","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"17906:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"17911:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17902:3:18"},"nodeType":"YulFunctionCall","src":"17902:14:18"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"17895:3:18"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"17703:3:18"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"17708:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"17700:2:18"},"nodeType":"YulFunctionCall","src":"17700:15:18"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"17716:25:18","statements":[{"nodeType":"YulAssignment","src":"17718:21:18","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"17729:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"17734:4:18","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17725:3:18"},"nodeType":"YulFunctionCall","src":"17725:14:18"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"17718:3:18"}]}]},"pre":{"nodeType":"YulBlock","src":"17678:21:18","statements":[{"nodeType":"YulVariableDeclaration","src":"17680:17:18","value":{"name":"offset","nodeType":"YulIdentifier","src":"17691:6:18"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"17684:3:18","type":""}]}]},"src":"17674:252:18"}]},"name":"abi_decode_available_length_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"17230:6:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"17238:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"17246:3:18","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"17254:5:18","type":""}],"src":"17126:806:18"},{"body":{"nodeType":"YulBlock","src":"18089:325:18","statements":[{"body":{"nodeType":"YulBlock","src":"18138:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nodeType":"YulIdentifier","src":"18140:77:18"},"nodeType":"YulFunctionCall","src":"18140:79:18"},"nodeType":"YulExpressionStatement","src":"18140:79:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"18117:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"18125:4:18","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18113:3:18"},"nodeType":"YulFunctionCall","src":"18113:17:18"},{"name":"end","nodeType":"YulIdentifier","src":"18132:3:18"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"18109:3:18"},"nodeType":"YulFunctionCall","src":"18109:27:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18102:6:18"},"nodeType":"YulFunctionCall","src":"18102:35:18"},"nodeType":"YulIf","src":"18099:122:18"},{"nodeType":"YulVariableDeclaration","src":"18230:34:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"18257:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"18244:12:18"},"nodeType":"YulFunctionCall","src":"18244:20:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"18234:6:18","type":""}]},{"nodeType":"YulAssignment","src":"18273:135:18","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"18381:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"18389:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18377:3:18"},"nodeType":"YulFunctionCall","src":"18377:17:18"},{"name":"length","nodeType":"YulIdentifier","src":"18396:6:18"},{"name":"end","nodeType":"YulIdentifier","src":"18404:3:18"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"18282:94:18"},"nodeType":"YulFunctionCall","src":"18282:126:18"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"18273:5:18"}]}]},"name":"abi_decode_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"18067:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"18075:3:18","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"18083:5:18","type":""}],"src":"17980:434:18"},{"body":{"nodeType":"YulBlock","src":"18543:480:18","statements":[{"body":{"nodeType":"YulBlock","src":"18589:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"18591:77:18"},"nodeType":"YulFunctionCall","src":"18591:79:18"},"nodeType":"YulExpressionStatement","src":"18591:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"18564:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"18573:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18560:3:18"},"nodeType":"YulFunctionCall","src":"18560:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"18585:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"18556:3:18"},"nodeType":"YulFunctionCall","src":"18556:32:18"},"nodeType":"YulIf","src":"18553:119:18"},{"nodeType":"YulBlock","src":"18682:334:18","statements":[{"nodeType":"YulVariableDeclaration","src":"18697:45:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18728:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"18739:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18724:3:18"},"nodeType":"YulFunctionCall","src":"18724:17:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"18711:12:18"},"nodeType":"YulFunctionCall","src":"18711:31:18"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"18701:6:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"18789:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulIdentifier","src":"18791:77:18"},"nodeType":"YulFunctionCall","src":"18791:79:18"},"nodeType":"YulExpressionStatement","src":"18791:79:18"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"18761:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"18769:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18758:2:18"},"nodeType":"YulFunctionCall","src":"18758:30:18"},"nodeType":"YulIf","src":"18755:117:18"},{"nodeType":"YulAssignment","src":"18886:120:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18978:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"18989:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18974:3:18"},"nodeType":"YulFunctionCall","src":"18974:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"18998:7:18"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"18896:77:18"},"nodeType":"YulFunctionCall","src":"18896:110:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"18886:6:18"}]}]}]},"name":"abi_decode_tuple_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18513:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"18524:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"18536:6:18","type":""}],"src":"18420:603:18"},{"body":{"nodeType":"YulBlock","src":"19127:124:18","statements":[{"nodeType":"YulAssignment","src":"19137:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19149:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"19160:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19145:3:18"},"nodeType":"YulFunctionCall","src":"19145:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19137:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19217:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19230:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"19241:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19226:3:18"},"nodeType":"YulFunctionCall","src":"19226:17:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"19173:43:18"},"nodeType":"YulFunctionCall","src":"19173:71:18"},"nodeType":"YulExpressionStatement","src":"19173:71:18"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19099:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19111:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19122:4:18","type":""}],"src":"19029:222:18"},{"body":{"nodeType":"YulBlock","src":"19355:296:18","statements":[{"body":{"nodeType":"YulBlock","src":"19402:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"19404:77:18"},"nodeType":"YulFunctionCall","src":"19404:79:18"},"nodeType":"YulExpressionStatement","src":"19404:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"19376:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"19385:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19372:3:18"},"nodeType":"YulFunctionCall","src":"19372:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"19397:3:18","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19368:3:18"},"nodeType":"YulFunctionCall","src":"19368:33:18"},"nodeType":"YulIf","src":"19365:120:18"},{"nodeType":"YulBlock","src":"19495:149:18","statements":[{"nodeType":"YulVariableDeclaration","src":"19510:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"19524:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"19514:6:18","type":""}]},{"nodeType":"YulAssignment","src":"19539:95:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19606:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"19617:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19602:3:18"},"nodeType":"YulFunctionCall","src":"19602:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"19626:7:18"}],"functionName":{"name":"abi_decode_t_struct$_FinalizeTxMeta_$2873_memory_ptr","nodeType":"YulIdentifier","src":"19549:52:18"},"nodeType":"YulFunctionCall","src":"19549:85:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"19539:6:18"}]}]}]},"name":"abi_decode_tuple_t_struct$_FinalizeTxMeta_$2873_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19325:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"19336:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"19348:6:18","type":""}],"src":"19257:394:18"},{"body":{"nodeType":"YulBlock","src":"19756:518:18","statements":[{"body":{"nodeType":"YulBlock","src":"19802:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"19804:77:18"},"nodeType":"YulFunctionCall","src":"19804:79:18"},"nodeType":"YulExpressionStatement","src":"19804:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"19777:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"19786:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19773:3:18"},"nodeType":"YulFunctionCall","src":"19773:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"19798:2:18","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"19769:3:18"},"nodeType":"YulFunctionCall","src":"19769:32:18"},"nodeType":"YulIf","src":"19766:119:18"},{"nodeType":"YulBlock","src":"19895:117:18","statements":[{"nodeType":"YulVariableDeclaration","src":"19910:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"19924:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"19914:6:18","type":""}]},{"nodeType":"YulAssignment","src":"19939:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19974:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"19985:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19970:3:18"},"nodeType":"YulFunctionCall","src":"19970:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"19994:7:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"19949:20:18"},"nodeType":"YulFunctionCall","src":"19949:53:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"19939:6:18"}]}]},{"nodeType":"YulBlock","src":"20022:118:18","statements":[{"nodeType":"YulVariableDeclaration","src":"20037:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"20051:2:18","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"20041:6:18","type":""}]},{"nodeType":"YulAssignment","src":"20067:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20102:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"20113:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20098:3:18"},"nodeType":"YulFunctionCall","src":"20098:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"20122:7:18"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"20077:20:18"},"nodeType":"YulFunctionCall","src":"20077:53:18"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"20067:6:18"}]}]},{"nodeType":"YulBlock","src":"20150:117:18","statements":[{"nodeType":"YulVariableDeclaration","src":"20165:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"20179:2:18","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"20169:6:18","type":""}]},{"nodeType":"YulAssignment","src":"20195:62:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20229:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"20240:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20225:3:18"},"nodeType":"YulFunctionCall","src":"20225:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"20249:7:18"}],"functionName":{"name":"abi_decode_t_uint32","nodeType":"YulIdentifier","src":"20205:19:18"},"nodeType":"YulFunctionCall","src":"20205:52:18"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"20195:6:18"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19710:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"19721:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"19733:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19741:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19749:6:18","type":""}],"src":"19657:617:18"},{"body":{"nodeType":"YulBlock","src":"20346:263:18","statements":[{"body":{"nodeType":"YulBlock","src":"20392:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"20394:77:18"},"nodeType":"YulFunctionCall","src":"20394:79:18"},"nodeType":"YulExpressionStatement","src":"20394:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"20367:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"20376:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20363:3:18"},"nodeType":"YulFunctionCall","src":"20363:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"20388:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20359:3:18"},"nodeType":"YulFunctionCall","src":"20359:32:18"},"nodeType":"YulIf","src":"20356:119:18"},{"nodeType":"YulBlock","src":"20485:117:18","statements":[{"nodeType":"YulVariableDeclaration","src":"20500:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"20514:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"20504:6:18","type":""}]},{"nodeType":"YulAssignment","src":"20529:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20564:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"20575:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20560:3:18"},"nodeType":"YulFunctionCall","src":"20560:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"20584:7:18"}],"functionName":{"name":"abi_decode_t_uint128","nodeType":"YulIdentifier","src":"20539:20:18"},"nodeType":"YulFunctionCall","src":"20539:53:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"20529:6:18"}]}]}]},"name":"abi_decode_tuple_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20316:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"20327:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"20339:6:18","type":""}],"src":"20280:329:18"},{"body":{"nodeType":"YulBlock","src":"20711:122:18","statements":[{"nodeType":"YulAssignment","src":"20721:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20733:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"20744:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20729:3:18"},"nodeType":"YulFunctionCall","src":"20729:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20721:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20799:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20812:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"20823:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20808:3:18"},"nodeType":"YulFunctionCall","src":"20808:17:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulIdentifier","src":"20757:41:18"},"nodeType":"YulFunctionCall","src":"20757:69:18"},"nodeType":"YulExpressionStatement","src":"20757:69:18"}]},"name":"abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20683:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20695:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20706:4:18","type":""}],"src":"20615:218:18"},{"body":{"nodeType":"YulBlock","src":"20956:648:18","statements":[{"body":{"nodeType":"YulBlock","src":"21003:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"21005:77:18"},"nodeType":"YulFunctionCall","src":"21005:79:18"},"nodeType":"YulExpressionStatement","src":"21005:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"20977:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"20986:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20973:3:18"},"nodeType":"YulFunctionCall","src":"20973:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"20998:3:18","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"20969:3:18"},"nodeType":"YulFunctionCall","src":"20969:33:18"},"nodeType":"YulIf","src":"20966:120:18"},{"nodeType":"YulBlock","src":"21096:117:18","statements":[{"nodeType":"YulVariableDeclaration","src":"21111:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"21125:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"21115:6:18","type":""}]},{"nodeType":"YulAssignment","src":"21140:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21175:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"21186:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21171:3:18"},"nodeType":"YulFunctionCall","src":"21171:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"21195:7:18"}],"functionName":{"name":"abi_decode_t_bytes32","nodeType":"YulIdentifier","src":"21150:20:18"},"nodeType":"YulFunctionCall","src":"21150:53:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"21140:6:18"}]}]},{"nodeType":"YulBlock","src":"21223:118:18","statements":[{"nodeType":"YulVariableDeclaration","src":"21238:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"21252:2:18","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"21242:6:18","type":""}]},{"nodeType":"YulAssignment","src":"21268:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21303:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"21314:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21299:3:18"},"nodeType":"YulFunctionCall","src":"21299:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"21323:7:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"21278:20:18"},"nodeType":"YulFunctionCall","src":"21278:53:18"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"21268:6:18"}]}]},{"nodeType":"YulBlock","src":"21351:118:18","statements":[{"nodeType":"YulVariableDeclaration","src":"21366:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"21380:2:18","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"21370:6:18","type":""}]},{"nodeType":"YulAssignment","src":"21396:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21431:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"21442:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21427:3:18"},"nodeType":"YulFunctionCall","src":"21427:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"21451:7:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"21406:20:18"},"nodeType":"YulFunctionCall","src":"21406:53:18"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"21396:6:18"}]}]},{"nodeType":"YulBlock","src":"21479:118:18","statements":[{"nodeType":"YulVariableDeclaration","src":"21494:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"21508:2:18","type":"","value":"96"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"21498:6:18","type":""}]},{"nodeType":"YulAssignment","src":"21524:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21559:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"21570:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21555:3:18"},"nodeType":"YulFunctionCall","src":"21555:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"21579:7:18"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"21534:20:18"},"nodeType":"YulFunctionCall","src":"21534:53:18"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"21524:6:18"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20902:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"20913:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"20925:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20933:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20941:6:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20949:6:18","type":""}],"src":"20839:765:18"},{"body":{"nodeType":"YulBlock","src":"21669:51:18","statements":[{"nodeType":"YulAssignment","src":"21679:35:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21708:5:18"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"21690:17:18"},"nodeType":"YulFunctionCall","src":"21690:24:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"21679:7:18"}]}]},"name":"cleanup_t_contract$_IERC20_$312","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21651:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"21661:7:18","type":""}],"src":"21610:110:18"},{"body":{"nodeType":"YulBlock","src":"21783:93:18","statements":[{"body":{"nodeType":"YulBlock","src":"21854:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21863:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"21866:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"21856:6:18"},"nodeType":"YulFunctionCall","src":"21856:12:18"},"nodeType":"YulExpressionStatement","src":"21856:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21806:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21845:5:18"}],"functionName":{"name":"cleanup_t_contract$_IERC20_$312","nodeType":"YulIdentifier","src":"21813:31:18"},"nodeType":"YulFunctionCall","src":"21813:38:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"21803:2:18"},"nodeType":"YulFunctionCall","src":"21803:49:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21796:6:18"},"nodeType":"YulFunctionCall","src":"21796:57:18"},"nodeType":"YulIf","src":"21793:77:18"}]},"name":"validator_revert_t_contract$_IERC20_$312","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21776:5:18","type":""}],"src":"21726:150:18"},{"body":{"nodeType":"YulBlock","src":"21948:101:18","statements":[{"nodeType":"YulAssignment","src":"21958:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"21980:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"21967:12:18"},"nodeType":"YulFunctionCall","src":"21967:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"21958:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22037:5:18"}],"functionName":{"name":"validator_revert_t_contract$_IERC20_$312","nodeType":"YulIdentifier","src":"21996:40:18"},"nodeType":"YulFunctionCall","src":"21996:47:18"},"nodeType":"YulExpressionStatement","src":"21996:47:18"}]},"name":"abi_decode_t_contract$_IERC20_$312","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"21926:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"21934:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"21942:5:18","type":""}],"src":"21882:167:18"},{"body":{"nodeType":"YulBlock","src":"22169:533:18","statements":[{"body":{"nodeType":"YulBlock","src":"22215:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"22217:77:18"},"nodeType":"YulFunctionCall","src":"22217:79:18"},"nodeType":"YulExpressionStatement","src":"22217:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"22190:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"22199:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22186:3:18"},"nodeType":"YulFunctionCall","src":"22186:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"22211:2:18","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"22182:3:18"},"nodeType":"YulFunctionCall","src":"22182:32:18"},"nodeType":"YulIf","src":"22179:119:18"},{"nodeType":"YulBlock","src":"22308:131:18","statements":[{"nodeType":"YulVariableDeclaration","src":"22323:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"22337:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"22327:6:18","type":""}]},{"nodeType":"YulAssignment","src":"22352:77:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22401:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"22412:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22397:3:18"},"nodeType":"YulFunctionCall","src":"22397:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"22421:7:18"}],"functionName":{"name":"abi_decode_t_contract$_IERC20_$312","nodeType":"YulIdentifier","src":"22362:34:18"},"nodeType":"YulFunctionCall","src":"22362:67:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"22352:6:18"}]}]},{"nodeType":"YulBlock","src":"22449:118:18","statements":[{"nodeType":"YulVariableDeclaration","src":"22464:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"22478:2:18","type":"","value":"32"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"22468:6:18","type":""}]},{"nodeType":"YulAssignment","src":"22494:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22529:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"22540:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22525:3:18"},"nodeType":"YulFunctionCall","src":"22525:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"22549:7:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"22504:20:18"},"nodeType":"YulFunctionCall","src":"22504:53:18"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"22494:6:18"}]}]},{"nodeType":"YulBlock","src":"22577:118:18","statements":[{"nodeType":"YulVariableDeclaration","src":"22592:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"22606:2:18","type":"","value":"64"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"22596:6:18","type":""}]},{"nodeType":"YulAssignment","src":"22622:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22657:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"22668:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22653:3:18"},"nodeType":"YulFunctionCall","src":"22653:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"22677:7:18"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"22632:20:18"},"nodeType":"YulFunctionCall","src":"22632:53:18"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"22622:6:18"}]}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$312t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22123:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"22134:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"22146:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22154:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22162:6:18","type":""}],"src":"22055:647:18"},{"body":{"nodeType":"YulBlock","src":"22814:54:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22836:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"22844:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22832:3:18"},"nodeType":"YulFunctionCall","src":"22832:14:18"},{"hexValue":"6e6f7420706175736564","kind":"string","nodeType":"YulLiteral","src":"22848:12:18","type":"","value":"not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22825:6:18"},"nodeType":"YulFunctionCall","src":"22825:36:18"},"nodeType":"YulExpressionStatement","src":"22825:36:18"}]},"name":"store_literal_in_memory_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"22806:6:18","type":""}],"src":"22708:160:18"},{"body":{"nodeType":"YulBlock","src":"23020:220:18","statements":[{"nodeType":"YulAssignment","src":"23030:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23096:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"23101:2:18","type":"","value":"10"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"23037:58:18"},"nodeType":"YulFunctionCall","src":"23037:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"23030:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23202:3:18"}],"functionName":{"name":"store_literal_in_memory_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b","nodeType":"YulIdentifier","src":"23113:88:18"},"nodeType":"YulFunctionCall","src":"23113:93:18"},"nodeType":"YulExpressionStatement","src":"23113:93:18"},{"nodeType":"YulAssignment","src":"23215:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"23226:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"23231:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23222:3:18"},"nodeType":"YulFunctionCall","src":"23222:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"23215:3:18"}]}]},"name":"abi_encode_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"23008:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"23016:3:18","type":""}],"src":"22874:366:18"},{"body":{"nodeType":"YulBlock","src":"23417:248:18","statements":[{"nodeType":"YulAssignment","src":"23427:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23439:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"23450:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23435:3:18"},"nodeType":"YulFunctionCall","src":"23435:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23427:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23474:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"23485:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23470:3:18"},"nodeType":"YulFunctionCall","src":"23470:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"23493:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"23499:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23489:3:18"},"nodeType":"YulFunctionCall","src":"23489:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23463:6:18"},"nodeType":"YulFunctionCall","src":"23463:47:18"},"nodeType":"YulExpressionStatement","src":"23463:47:18"},{"nodeType":"YulAssignment","src":"23519:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"23653:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"23527:124:18"},"nodeType":"YulFunctionCall","src":"23527:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23519:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23397:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23412:4:18","type":""}],"src":"23246:419:18"},{"body":{"nodeType":"YulBlock","src":"23699:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23716:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23719:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23709:6:18"},"nodeType":"YulFunctionCall","src":"23709:88:18"},"nodeType":"YulExpressionStatement","src":"23709:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23813:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23816:4:18","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23806:6:18"},"nodeType":"YulFunctionCall","src":"23806:15:18"},"nodeType":"YulExpressionStatement","src":"23806:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23837:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23840:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23830:6:18"},"nodeType":"YulFunctionCall","src":"23830:15:18"},"nodeType":"YulExpressionStatement","src":"23830:15:18"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"23671:180:18"},{"body":{"nodeType":"YulBlock","src":"23905:362:18","statements":[{"nodeType":"YulAssignment","src":"23915:25:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23938:1:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"23920:17:18"},"nodeType":"YulFunctionCall","src":"23920:20:18"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"23915:1:18"}]},{"nodeType":"YulAssignment","src":"23949:25:18","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"23972:1:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"23954:17:18"},"nodeType":"YulFunctionCall","src":"23954:20:18"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"23949:1:18"}]},{"nodeType":"YulVariableDeclaration","src":"23983:28:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24006:1:18"},{"name":"y","nodeType":"YulIdentifier","src":"24009:1:18"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"24002:3:18"},"nodeType":"YulFunctionCall","src":"24002:9:18"},"variables":[{"name":"product_raw","nodeType":"YulTypedName","src":"23987:11:18","type":""}]},{"nodeType":"YulAssignment","src":"24020:41:18","value":{"arguments":[{"name":"product_raw","nodeType":"YulIdentifier","src":"24049:11:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24031:17:18"},"nodeType":"YulFunctionCall","src":"24031:30:18"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"24020:7:18"}]},{"body":{"nodeType":"YulBlock","src":"24238:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24240:16:18"},"nodeType":"YulFunctionCall","src":"24240:18:18"},"nodeType":"YulExpressionStatement","src":"24240:18:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24171:1:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24164:6:18"},"nodeType":"YulFunctionCall","src":"24164:9:18"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24194:1:18"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"24201:7:18"},{"name":"x","nodeType":"YulIdentifier","src":"24210:1:18"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24197:3:18"},"nodeType":"YulFunctionCall","src":"24197:15:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"24191:2:18"},"nodeType":"YulFunctionCall","src":"24191:22:18"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"24144:2:18"},"nodeType":"YulFunctionCall","src":"24144:83:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24124:6:18"},"nodeType":"YulFunctionCall","src":"24124:113:18"},"nodeType":"YulIf","src":"24121:139:18"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23888:1:18","type":""},{"name":"y","nodeType":"YulTypedName","src":"23891:1:18","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"23897:7:18","type":""}],"src":"23857:410:18"},{"body":{"nodeType":"YulBlock","src":"24301:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24318:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24321:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24311:6:18"},"nodeType":"YulFunctionCall","src":"24311:88:18"},"nodeType":"YulExpressionStatement","src":"24311:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24415:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"24418:4:18","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24408:6:18"},"nodeType":"YulFunctionCall","src":"24408:15:18"},"nodeType":"YulExpressionStatement","src":"24408:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24439:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24442:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24432:6:18"},"nodeType":"YulFunctionCall","src":"24432:15:18"},"nodeType":"YulExpressionStatement","src":"24432:15:18"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"24273:180:18"},{"body":{"nodeType":"YulBlock","src":"24501:143:18","statements":[{"nodeType":"YulAssignment","src":"24511:25:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24534:1:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24516:17:18"},"nodeType":"YulFunctionCall","src":"24516:20:18"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"24511:1:18"}]},{"nodeType":"YulAssignment","src":"24545:25:18","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24568:1:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24550:17:18"},"nodeType":"YulFunctionCall","src":"24550:20:18"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"24545:1:18"}]},{"body":{"nodeType":"YulBlock","src":"24592:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"24594:16:18"},"nodeType":"YulFunctionCall","src":"24594:18:18"},"nodeType":"YulExpressionStatement","src":"24594:18:18"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24589:1:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24582:6:18"},"nodeType":"YulFunctionCall","src":"24582:9:18"},"nodeType":"YulIf","src":"24579:35:18"},{"nodeType":"YulAssignment","src":"24624:14:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24633:1:18"},{"name":"y","nodeType":"YulIdentifier","src":"24636:1:18"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"24629:3:18"},"nodeType":"YulFunctionCall","src":"24629:9:18"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"24624:1:18"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24490:1:18","type":""},{"name":"y","nodeType":"YulTypedName","src":"24493:1:18","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"24499:1:18","type":""}],"src":"24459:185:18"},{"body":{"nodeType":"YulBlock","src":"24694:147:18","statements":[{"nodeType":"YulAssignment","src":"24704:25:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24727:1:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24709:17:18"},"nodeType":"YulFunctionCall","src":"24709:20:18"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"24704:1:18"}]},{"nodeType":"YulAssignment","src":"24738:25:18","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"24761:1:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"24743:17:18"},"nodeType":"YulFunctionCall","src":"24743:20:18"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"24738:1:18"}]},{"nodeType":"YulAssignment","src":"24772:16:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24783:1:18"},{"name":"y","nodeType":"YulIdentifier","src":"24786:1:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24779:3:18"},"nodeType":"YulFunctionCall","src":"24779:9:18"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"24772:3:18"}]},{"body":{"nodeType":"YulBlock","src":"24812:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"24814:16:18"},"nodeType":"YulFunctionCall","src":"24814:18:18"},"nodeType":"YulExpressionStatement","src":"24814:18:18"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"24804:1:18"},{"name":"sum","nodeType":"YulIdentifier","src":"24807:3:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"24801:2:18"},"nodeType":"YulFunctionCall","src":"24801:10:18"},"nodeType":"YulIf","src":"24798:36:18"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"24681:1:18","type":""},{"name":"y","nodeType":"YulTypedName","src":"24684:1:18","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"24690:3:18","type":""}],"src":"24650:191:18"},{"body":{"nodeType":"YulBlock","src":"24953:69:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"24975:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"24983:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24971:3:18"},"nodeType":"YulFunctionCall","src":"24971:14:18"},{"hexValue":"6465706f7369747320616c7265616479207769746864726177","kind":"string","nodeType":"YulLiteral","src":"24987:27:18","type":"","value":"deposits already withdraw"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24964:6:18"},"nodeType":"YulFunctionCall","src":"24964:51:18"},"nodeType":"YulExpressionStatement","src":"24964:51:18"}]},"name":"store_literal_in_memory_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"24945:6:18","type":""}],"src":"24847:175:18"},{"body":{"nodeType":"YulBlock","src":"25174:220:18","statements":[{"nodeType":"YulAssignment","src":"25184:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"25250:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"25255:2:18","type":"","value":"25"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"25191:58:18"},"nodeType":"YulFunctionCall","src":"25191:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"25184:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"25356:3:18"}],"functionName":{"name":"store_literal_in_memory_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7","nodeType":"YulIdentifier","src":"25267:88:18"},"nodeType":"YulFunctionCall","src":"25267:93:18"},"nodeType":"YulExpressionStatement","src":"25267:93:18"},{"nodeType":"YulAssignment","src":"25369:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"25380:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"25385:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25376:3:18"},"nodeType":"YulFunctionCall","src":"25376:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"25369:3:18"}]}]},"name":"abi_encode_t_stringliteral_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"25162:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"25170:3:18","type":""}],"src":"25028:366:18"},{"body":{"nodeType":"YulBlock","src":"25571:248:18","statements":[{"nodeType":"YulAssignment","src":"25581:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25593:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"25604:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25589:3:18"},"nodeType":"YulFunctionCall","src":"25589:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25581:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25628:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"25639:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25624:3:18"},"nodeType":"YulFunctionCall","src":"25624:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"25647:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"25653:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"25643:3:18"},"nodeType":"YulFunctionCall","src":"25643:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25617:6:18"},"nodeType":"YulFunctionCall","src":"25617:47:18"},"nodeType":"YulExpressionStatement","src":"25617:47:18"},{"nodeType":"YulAssignment","src":"25673:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"25807:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"25681:124:18"},"nodeType":"YulFunctionCall","src":"25681:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25673:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25551:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25566:4:18","type":""}],"src":"25400:419:18"},{"body":{"nodeType":"YulBlock","src":"25931:51:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"25953:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"25961:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25949:3:18"},"nodeType":"YulFunctionCall","src":"25949:14:18"},{"hexValue":"70617573656421","kind":"string","nodeType":"YulLiteral","src":"25965:9:18","type":"","value":"paused!"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25942:6:18"},"nodeType":"YulFunctionCall","src":"25942:33:18"},"nodeType":"YulExpressionStatement","src":"25942:33:18"}]},"name":"store_literal_in_memory_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"25923:6:18","type":""}],"src":"25825:157:18"},{"body":{"nodeType":"YulBlock","src":"26134:219:18","statements":[{"nodeType":"YulAssignment","src":"26144:73:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"26210:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"26215:1:18","type":"","value":"7"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"26151:58:18"},"nodeType":"YulFunctionCall","src":"26151:66:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"26144:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"26315:3:18"}],"functionName":{"name":"store_literal_in_memory_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601","nodeType":"YulIdentifier","src":"26226:88:18"},"nodeType":"YulFunctionCall","src":"26226:93:18"},"nodeType":"YulExpressionStatement","src":"26226:93:18"},{"nodeType":"YulAssignment","src":"26328:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"26339:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"26344:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26335:3:18"},"nodeType":"YulFunctionCall","src":"26335:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"26328:3:18"}]}]},"name":"abi_encode_t_stringliteral_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"26122:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"26130:3:18","type":""}],"src":"25988:365:18"},{"body":{"nodeType":"YulBlock","src":"26530:248:18","statements":[{"nodeType":"YulAssignment","src":"26540:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26552:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"26563:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26548:3:18"},"nodeType":"YulFunctionCall","src":"26548:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26540:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26587:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"26598:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26583:3:18"},"nodeType":"YulFunctionCall","src":"26583:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"26606:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"26612:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26602:3:18"},"nodeType":"YulFunctionCall","src":"26602:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26576:6:18"},"nodeType":"YulFunctionCall","src":"26576:47:18"},"nodeType":"YulExpressionStatement","src":"26576:47:18"},{"nodeType":"YulAssignment","src":"26632:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"26766:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"26640:124:18"},"nodeType":"YulFunctionCall","src":"26640:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26632:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26510:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26525:4:18","type":""}],"src":"26359:419:18"},{"body":{"nodeType":"YulBlock","src":"26890:61:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"26912:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"26920:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26908:3:18"},"nodeType":"YulFunctionCall","src":"26908:14:18"},{"hexValue":"696e76616c6964206465706f7369746f72","kind":"string","nodeType":"YulLiteral","src":"26924:19:18","type":"","value":"invalid depositor"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26901:6:18"},"nodeType":"YulFunctionCall","src":"26901:43:18"},"nodeType":"YulExpressionStatement","src":"26901:43:18"}]},"name":"store_literal_in_memory_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"26882:6:18","type":""}],"src":"26784:167:18"},{"body":{"nodeType":"YulBlock","src":"27103:220:18","statements":[{"nodeType":"YulAssignment","src":"27113:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"27179:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"27184:2:18","type":"","value":"17"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"27120:58:18"},"nodeType":"YulFunctionCall","src":"27120:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"27113:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"27285:3:18"}],"functionName":{"name":"store_literal_in_memory_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298","nodeType":"YulIdentifier","src":"27196:88:18"},"nodeType":"YulFunctionCall","src":"27196:93:18"},"nodeType":"YulExpressionStatement","src":"27196:93:18"},{"nodeType":"YulAssignment","src":"27298:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"27309:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"27314:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27305:3:18"},"nodeType":"YulFunctionCall","src":"27305:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"27298:3:18"}]}]},"name":"abi_encode_t_stringliteral_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"27091:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"27099:3:18","type":""}],"src":"26957:366:18"},{"body":{"nodeType":"YulBlock","src":"27500:248:18","statements":[{"nodeType":"YulAssignment","src":"27510:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27522:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"27533:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27518:3:18"},"nodeType":"YulFunctionCall","src":"27518:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27510:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27557:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"27568:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27553:3:18"},"nodeType":"YulFunctionCall","src":"27553:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"27576:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"27582:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27572:3:18"},"nodeType":"YulFunctionCall","src":"27572:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27546:6:18"},"nodeType":"YulFunctionCall","src":"27546:47:18"},"nodeType":"YulExpressionStatement","src":"27546:47:18"},{"nodeType":"YulAssignment","src":"27602:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"27736:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"27610:124:18"},"nodeType":"YulFunctionCall","src":"27610:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27602:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27480:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27495:4:18","type":""}],"src":"27329:419:18"},{"body":{"nodeType":"YulBlock","src":"27860:57:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"27882:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"27890:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27878:3:18"},"nodeType":"YulFunctionCall","src":"27878:14:18"},{"hexValue":"696e76616c69642061646d696e","kind":"string","nodeType":"YulLiteral","src":"27894:15:18","type":"","value":"invalid admin"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27871:6:18"},"nodeType":"YulFunctionCall","src":"27871:39:18"},"nodeType":"YulExpressionStatement","src":"27871:39:18"}]},"name":"store_literal_in_memory_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"27852:6:18","type":""}],"src":"27754:163:18"},{"body":{"nodeType":"YulBlock","src":"28069:220:18","statements":[{"nodeType":"YulAssignment","src":"28079:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28145:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"28150:2:18","type":"","value":"13"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"28086:58:18"},"nodeType":"YulFunctionCall","src":"28086:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"28079:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28251:3:18"}],"functionName":{"name":"store_literal_in_memory_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8","nodeType":"YulIdentifier","src":"28162:88:18"},"nodeType":"YulFunctionCall","src":"28162:93:18"},"nodeType":"YulExpressionStatement","src":"28162:93:18"},{"nodeType":"YulAssignment","src":"28264:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28275:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"28280:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28271:3:18"},"nodeType":"YulFunctionCall","src":"28271:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"28264:3:18"}]}]},"name":"abi_encode_t_stringliteral_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"28057:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"28065:3:18","type":""}],"src":"27923:366:18"},{"body":{"nodeType":"YulBlock","src":"28466:248:18","statements":[{"nodeType":"YulAssignment","src":"28476:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28488:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"28499:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28484:3:18"},"nodeType":"YulFunctionCall","src":"28484:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28476:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28523:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"28534:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28519:3:18"},"nodeType":"YulFunctionCall","src":"28519:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"28542:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"28548:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"28538:3:18"},"nodeType":"YulFunctionCall","src":"28538:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28512:6:18"},"nodeType":"YulFunctionCall","src":"28512:47:18"},"nodeType":"YulExpressionStatement","src":"28512:47:18"},{"nodeType":"YulAssignment","src":"28568:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"28702:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"28576:124:18"},"nodeType":"YulFunctionCall","src":"28576:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28568:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28446:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28461:4:18","type":""}],"src":"28295:419:18"},{"body":{"nodeType":"YulBlock","src":"28775:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28792:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"28815:5:18"}],"functionName":{"name":"cleanup_t_bytes32","nodeType":"YulIdentifier","src":"28797:17:18"},"nodeType":"YulFunctionCall","src":"28797:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28785:6:18"},"nodeType":"YulFunctionCall","src":"28785:37:18"},"nodeType":"YulExpressionStatement","src":"28785:37:18"}]},"name":"abi_encode_t_bytes32_to_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"28763:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"28770:3:18","type":""}],"src":"28720:108:18"},{"body":{"nodeType":"YulBlock","src":"28889:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"28906:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"28929:5:18"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"28911:17:18"},"nodeType":"YulFunctionCall","src":"28911:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28899:6:18"},"nodeType":"YulFunctionCall","src":"28899:37:18"},"nodeType":"YulExpressionStatement","src":"28899:37:18"}]},"name":"abi_encode_t_address_to_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"28877:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"28884:3:18","type":""}],"src":"28834:108:18"},{"body":{"nodeType":"YulBlock","src":"29006:40:18","statements":[{"nodeType":"YulAssignment","src":"29017:22:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"29033:5:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29027:5:18"},"nodeType":"YulFunctionCall","src":"29027:12:18"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"29017:6:18"}]}]},"name":"array_length_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"28989:5:18","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"28999:6:18","type":""}],"src":"28948:98:18"},{"body":{"nodeType":"YulBlock","src":"29137:73:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"29154:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"29159:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29147:6:18"},"nodeType":"YulFunctionCall","src":"29147:19:18"},"nodeType":"YulExpressionStatement","src":"29147:19:18"},{"nodeType":"YulAssignment","src":"29175:29:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"29194:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"29199:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29190:3:18"},"nodeType":"YulFunctionCall","src":"29190:14:18"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"29175:11:18"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"29109:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"29114:6:18","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"29125:11:18","type":""}],"src":"29052:158:18"},{"body":{"nodeType":"YulBlock","src":"29296:273:18","statements":[{"nodeType":"YulVariableDeclaration","src":"29306:52:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"29352:5:18"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"29320:31:18"},"nodeType":"YulFunctionCall","src":"29320:38:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"29310:6:18","type":""}]},{"nodeType":"YulAssignment","src":"29367:67:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"29422:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"29427:6:18"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"29374:47:18"},"nodeType":"YulFunctionCall","src":"29374:60:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"29367:3:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"29482:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"29489:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29478:3:18"},"nodeType":"YulFunctionCall","src":"29478:16:18"},{"name":"pos","nodeType":"YulIdentifier","src":"29496:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"29501:6:18"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"29443:34:18"},"nodeType":"YulFunctionCall","src":"29443:65:18"},"nodeType":"YulExpressionStatement","src":"29443:65:18"},{"nodeType":"YulAssignment","src":"29517:46:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"29528:3:18"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"29555:6:18"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"29533:21:18"},"nodeType":"YulFunctionCall","src":"29533:29:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29524:3:18"},"nodeType":"YulFunctionCall","src":"29524:39:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"29517:3:18"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"29277:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"29284:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"29292:3:18","type":""}],"src":"29216:353:18"},{"body":{"nodeType":"YulBlock","src":"29809:1260:18","statements":[{"nodeType":"YulVariableDeclaration","src":"29819:26:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"29835:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"29840:4:18","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29831:3:18"},"nodeType":"YulFunctionCall","src":"29831:14:18"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"29823:4:18","type":""}]},{"nodeType":"YulBlock","src":"29855:167:18","statements":[{"nodeType":"YulVariableDeclaration","src":"29893:43:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"29923:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"29930:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29919:3:18"},"nodeType":"YulFunctionCall","src":"29919:16:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"29913:5:18"},"nodeType":"YulFunctionCall","src":"29913:23:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"29897:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"29983:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"30001:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"30006:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29997:3:18"},"nodeType":"YulFunctionCall","src":"29997:14:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nodeType":"YulIdentifier","src":"29949:33:18"},"nodeType":"YulFunctionCall","src":"29949:63:18"},"nodeType":"YulExpressionStatement","src":"29949:63:18"}]},{"nodeType":"YulBlock","src":"30032:164:18","statements":[{"nodeType":"YulVariableDeclaration","src":"30067:43:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"30097:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"30104:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30093:3:18"},"nodeType":"YulFunctionCall","src":"30093:16:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30087:5:18"},"nodeType":"YulFunctionCall","src":"30087:23:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"30071:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"30157:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"30175:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"30180:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30171:3:18"},"nodeType":"YulFunctionCall","src":"30171:14:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nodeType":"YulIdentifier","src":"30123:33:18"},"nodeType":"YulFunctionCall","src":"30123:63:18"},"nodeType":"YulExpressionStatement","src":"30123:63:18"}]},{"nodeType":"YulBlock","src":"30206:162:18","statements":[{"nodeType":"YulVariableDeclaration","src":"30239:43:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"30269:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"30276:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30265:3:18"},"nodeType":"YulFunctionCall","src":"30265:16:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30259:5:18"},"nodeType":"YulFunctionCall","src":"30259:23:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"30243:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"30329:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"30347:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"30352:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30343:3:18"},"nodeType":"YulFunctionCall","src":"30343:14:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nodeType":"YulIdentifier","src":"30295:33:18"},"nodeType":"YulFunctionCall","src":"30295:63:18"},"nodeType":"YulExpressionStatement","src":"30295:63:18"}]},{"nodeType":"YulBlock","src":"30378:166:18","statements":[{"nodeType":"YulVariableDeclaration","src":"30415:43:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"30445:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"30452:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30441:3:18"},"nodeType":"YulFunctionCall","src":"30441:16:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30435:5:18"},"nodeType":"YulFunctionCall","src":"30435:23:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"30419:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"30505:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"30523:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"30528:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30519:3:18"},"nodeType":"YulFunctionCall","src":"30519:14:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nodeType":"YulIdentifier","src":"30471:33:18"},"nodeType":"YulFunctionCall","src":"30471:63:18"},"nodeType":"YulExpressionStatement","src":"30471:63:18"}]},{"nodeType":"YulBlock","src":"30554:241:18","statements":[{"nodeType":"YulVariableDeclaration","src":"30597:43:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"30627:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"30634:4:18","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30623:3:18"},"nodeType":"YulFunctionCall","src":"30623:16:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30617:5:18"},"nodeType":"YulFunctionCall","src":"30617:23:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"30601:12:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"30665:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"30670:4:18","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30661:3:18"},"nodeType":"YulFunctionCall","src":"30661:14:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"30681:4:18"},{"name":"pos","nodeType":"YulIdentifier","src":"30687:3:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30677:3:18"},"nodeType":"YulFunctionCall","src":"30677:14:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30654:6:18"},"nodeType":"YulFunctionCall","src":"30654:38:18"},"nodeType":"YulExpressionStatement","src":"30654:38:18"},{"nodeType":"YulAssignment","src":"30705:79:18","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"30765:12:18"},{"name":"tail","nodeType":"YulIdentifier","src":"30779:4:18"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"30713:51:18"},"nodeType":"YulFunctionCall","src":"30713:71:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30705:4:18"}]}]},{"nodeType":"YulBlock","src":"30805:237:18","statements":[{"nodeType":"YulVariableDeclaration","src":"30844:43:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"30874:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"30881:4:18","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30870:3:18"},"nodeType":"YulFunctionCall","src":"30870:16:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30864:5:18"},"nodeType":"YulFunctionCall","src":"30864:23:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"30848:12:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"30912:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"30917:4:18","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30908:3:18"},"nodeType":"YulFunctionCall","src":"30908:14:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"30928:4:18"},{"name":"pos","nodeType":"YulIdentifier","src":"30934:3:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"30924:3:18"},"nodeType":"YulFunctionCall","src":"30924:14:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30901:6:18"},"nodeType":"YulFunctionCall","src":"30901:38:18"},"nodeType":"YulExpressionStatement","src":"30901:38:18"},{"nodeType":"YulAssignment","src":"30952:79:18","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"31012:12:18"},{"name":"tail","nodeType":"YulIdentifier","src":"31026:4:18"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"30960:51:18"},"nodeType":"YulFunctionCall","src":"30960:71:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30952:4:18"}]}]},{"nodeType":"YulAssignment","src":"31052:11:18","value":{"name":"tail","nodeType":"YulIdentifier","src":"31059:4:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"31052:3:18"}]}]},"name":"abi_encode_t_struct$_DepositorWithdrawal_$2862_memory_ptr_to_t_struct$_DepositorWithdrawal_$2862_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"29788:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"29795:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"29804:3:18","type":""}],"src":"29661:1408:18"},{"body":{"nodeType":"YulBlock","src":"31247:249:18","statements":[{"nodeType":"YulAssignment","src":"31257:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31269:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"31280:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31265:3:18"},"nodeType":"YulFunctionCall","src":"31265:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31257:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31304:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"31315:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31300:3:18"},"nodeType":"YulFunctionCall","src":"31300:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"31323:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"31329:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31319:3:18"},"nodeType":"YulFunctionCall","src":"31319:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31293:6:18"},"nodeType":"YulFunctionCall","src":"31293:47:18"},"nodeType":"YulExpressionStatement","src":"31293:47:18"},{"nodeType":"YulAssignment","src":"31349:140:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"31475:6:18"},{"name":"tail","nodeType":"YulIdentifier","src":"31484:4:18"}],"functionName":{"name":"abi_encode_t_struct$_DepositorWithdrawal_$2862_memory_ptr_to_t_struct$_DepositorWithdrawal_$2862_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"31357:117:18"},"nodeType":"YulFunctionCall","src":"31357:132:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31349:4:18"}]}]},"name":"abi_encode_tuple_t_struct$_DepositorWithdrawal_$2862_memory_ptr__to_t_struct$_DepositorWithdrawal_$2862_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31219:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31231:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31242:4:18","type":""}],"src":"31075:421:18"},{"body":{"nodeType":"YulBlock","src":"31608:122:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"31630:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"31638:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31626:3:18"},"nodeType":"YulFunctionCall","src":"31626:14:18"},{"hexValue":"4f776e61626c6532537465703a2063616c6c6572206973206e6f742074686520","kind":"string","nodeType":"YulLiteral","src":"31642:34:18","type":"","value":"Ownable2Step: caller is not the "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31619:6:18"},"nodeType":"YulFunctionCall","src":"31619:58:18"},"nodeType":"YulExpressionStatement","src":"31619:58:18"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"31698:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"31706:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31694:3:18"},"nodeType":"YulFunctionCall","src":"31694:15:18"},{"hexValue":"6e6577206f776e6572","kind":"string","nodeType":"YulLiteral","src":"31711:11:18","type":"","value":"new owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31687:6:18"},"nodeType":"YulFunctionCall","src":"31687:36:18"},"nodeType":"YulExpressionStatement","src":"31687:36:18"}]},"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"31600:6:18","type":""}],"src":"31502:228:18"},{"body":{"nodeType":"YulBlock","src":"31882:220:18","statements":[{"nodeType":"YulAssignment","src":"31892:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"31958:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"31963:2:18","type":"","value":"41"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"31899:58:18"},"nodeType":"YulFunctionCall","src":"31899:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"31892:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"32064:3:18"}],"functionName":{"name":"store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc","nodeType":"YulIdentifier","src":"31975:88:18"},"nodeType":"YulFunctionCall","src":"31975:93:18"},"nodeType":"YulExpressionStatement","src":"31975:93:18"},{"nodeType":"YulAssignment","src":"32077:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"32088:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"32093:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32084:3:18"},"nodeType":"YulFunctionCall","src":"32084:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"32077:3:18"}]}]},"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"31870:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"31878:3:18","type":""}],"src":"31736:366:18"},{"body":{"nodeType":"YulBlock","src":"32279:248:18","statements":[{"nodeType":"YulAssignment","src":"32289:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32301:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"32312:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32297:3:18"},"nodeType":"YulFunctionCall","src":"32297:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32289:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32336:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"32347:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32332:3:18"},"nodeType":"YulFunctionCall","src":"32332:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"32355:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"32361:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32351:3:18"},"nodeType":"YulFunctionCall","src":"32351:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32325:6:18"},"nodeType":"YulFunctionCall","src":"32325:47:18"},"nodeType":"YulExpressionStatement","src":"32325:47:18"},{"nodeType":"YulAssignment","src":"32381:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"32515:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"32389:124:18"},"nodeType":"YulFunctionCall","src":"32389:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32381:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32259:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32274:4:18","type":""}],"src":"32108:419:18"},{"body":{"nodeType":"YulBlock","src":"32639:58:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"32661:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"32669:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32657:3:18"},"nodeType":"YulFunctionCall","src":"32657:14:18"},{"hexValue":"616c726561647920706175736564","kind":"string","nodeType":"YulLiteral","src":"32673:16:18","type":"","value":"already paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32650:6:18"},"nodeType":"YulFunctionCall","src":"32650:40:18"},"nodeType":"YulExpressionStatement","src":"32650:40:18"}]},"name":"store_literal_in_memory_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"32631:6:18","type":""}],"src":"32533:164:18"},{"body":{"nodeType":"YulBlock","src":"32849:220:18","statements":[{"nodeType":"YulAssignment","src":"32859:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"32925:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"32930:2:18","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"32866:58:18"},"nodeType":"YulFunctionCall","src":"32866:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"32859:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33031:3:18"}],"functionName":{"name":"store_literal_in_memory_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b","nodeType":"YulIdentifier","src":"32942:88:18"},"nodeType":"YulFunctionCall","src":"32942:93:18"},"nodeType":"YulExpressionStatement","src":"32942:93:18"},{"nodeType":"YulAssignment","src":"33044:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33055:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"33060:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33051:3:18"},"nodeType":"YulFunctionCall","src":"33051:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"33044:3:18"}]}]},"name":"abi_encode_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"32837:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"32845:3:18","type":""}],"src":"32703:366:18"},{"body":{"nodeType":"YulBlock","src":"33246:248:18","statements":[{"nodeType":"YulAssignment","src":"33256:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33268:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"33279:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33264:3:18"},"nodeType":"YulFunctionCall","src":"33264:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33256:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33303:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"33314:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33299:3:18"},"nodeType":"YulFunctionCall","src":"33299:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"33322:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"33328:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"33318:3:18"},"nodeType":"YulFunctionCall","src":"33318:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33292:6:18"},"nodeType":"YulFunctionCall","src":"33292:47:18"},"nodeType":"YulExpressionStatement","src":"33292:47:18"},{"nodeType":"YulAssignment","src":"33348:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"33482:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"33356:124:18"},"nodeType":"YulFunctionCall","src":"33356:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33348:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33226:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33241:4:18","type":""}],"src":"33075:419:18"},{"body":{"nodeType":"YulBlock","src":"33606:67:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"33628:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"33636:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33624:3:18"},"nodeType":"YulFunctionCall","src":"33624:14:18"},{"hexValue":"63616c6c6572206973206e6f7420612072656c61796572","kind":"string","nodeType":"YulLiteral","src":"33640:25:18","type":"","value":"caller is not a relayer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33617:6:18"},"nodeType":"YulFunctionCall","src":"33617:49:18"},"nodeType":"YulExpressionStatement","src":"33617:49:18"}]},"name":"store_literal_in_memory_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"33598:6:18","type":""}],"src":"33500:173:18"},{"body":{"nodeType":"YulBlock","src":"33825:220:18","statements":[{"nodeType":"YulAssignment","src":"33835:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"33901:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"33906:2:18","type":"","value":"23"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"33842:58:18"},"nodeType":"YulFunctionCall","src":"33842:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"33835:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"34007:3:18"}],"functionName":{"name":"store_literal_in_memory_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c","nodeType":"YulIdentifier","src":"33918:88:18"},"nodeType":"YulFunctionCall","src":"33918:93:18"},"nodeType":"YulExpressionStatement","src":"33918:93:18"},{"nodeType":"YulAssignment","src":"34020:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"34031:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"34036:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34027:3:18"},"nodeType":"YulFunctionCall","src":"34027:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"34020:3:18"}]}]},"name":"abi_encode_t_stringliteral_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"33813:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"33821:3:18","type":""}],"src":"33679:366:18"},{"body":{"nodeType":"YulBlock","src":"34222:248:18","statements":[{"nodeType":"YulAssignment","src":"34232:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34244:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"34255:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34240:3:18"},"nodeType":"YulFunctionCall","src":"34240:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34232:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34279:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"34290:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34275:3:18"},"nodeType":"YulFunctionCall","src":"34275:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"34298:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"34304:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"34294:3:18"},"nodeType":"YulFunctionCall","src":"34294:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34268:6:18"},"nodeType":"YulFunctionCall","src":"34268:47:18"},"nodeType":"YulExpressionStatement","src":"34268:47:18"},{"nodeType":"YulAssignment","src":"34324:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"34458:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"34332:124:18"},"nodeType":"YulFunctionCall","src":"34332:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34324:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34202:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34217:4:18","type":""}],"src":"34051:419:18"},{"body":{"nodeType":"YulBlock","src":"34504:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"34521:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"34524:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34514:6:18"},"nodeType":"YulFunctionCall","src":"34514:88:18"},"nodeType":"YulExpressionStatement","src":"34514:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"34618:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"34621:4:18","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34611:6:18"},"nodeType":"YulFunctionCall","src":"34611:15:18"},"nodeType":"YulExpressionStatement","src":"34611:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"34642:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"34645:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"34635:6:18"},"nodeType":"YulFunctionCall","src":"34635:15:18"},"nodeType":"YulExpressionStatement","src":"34635:15:18"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"34476:180:18"},{"body":{"nodeType":"YulBlock","src":"34768:56:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"34790:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"34798:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34786:3:18"},"nodeType":"YulFunctionCall","src":"34786:14:18"},{"hexValue":"74782066696e616c697a6564","kind":"string","nodeType":"YulLiteral","src":"34802:14:18","type":"","value":"tx finalized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34779:6:18"},"nodeType":"YulFunctionCall","src":"34779:38:18"},"nodeType":"YulExpressionStatement","src":"34779:38:18"}]},"name":"store_literal_in_memory_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"34760:6:18","type":""}],"src":"34662:162:18"},{"body":{"nodeType":"YulBlock","src":"34976:220:18","statements":[{"nodeType":"YulAssignment","src":"34986:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"35052:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"35057:2:18","type":"","value":"12"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"34993:58:18"},"nodeType":"YulFunctionCall","src":"34993:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"34986:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"35158:3:18"}],"functionName":{"name":"store_literal_in_memory_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb","nodeType":"YulIdentifier","src":"35069:88:18"},"nodeType":"YulFunctionCall","src":"35069:93:18"},"nodeType":"YulExpressionStatement","src":"35069:93:18"},{"nodeType":"YulAssignment","src":"35171:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"35182:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"35187:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35178:3:18"},"nodeType":"YulFunctionCall","src":"35178:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"35171:3:18"}]}]},"name":"abi_encode_t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"34964:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"34972:3:18","type":""}],"src":"34830:366:18"},{"body":{"nodeType":"YulBlock","src":"35373:248:18","statements":[{"nodeType":"YulAssignment","src":"35383:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35395:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"35406:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35391:3:18"},"nodeType":"YulFunctionCall","src":"35391:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35383:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35430:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"35441:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35426:3:18"},"nodeType":"YulFunctionCall","src":"35426:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"35449:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"35455:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"35445:3:18"},"nodeType":"YulFunctionCall","src":"35445:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35419:6:18"},"nodeType":"YulFunctionCall","src":"35419:47:18"},"nodeType":"YulExpressionStatement","src":"35419:47:18"},{"nodeType":"YulAssignment","src":"35475:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"35609:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"35483:124:18"},"nodeType":"YulFunctionCall","src":"35483:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35475:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35353:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35368:4:18","type":""}],"src":"35202:419:18"},{"body":{"nodeType":"YulBlock","src":"35670:190:18","statements":[{"nodeType":"YulAssignment","src":"35680:33:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"35707:5:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"35689:17:18"},"nodeType":"YulFunctionCall","src":"35689:24:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"35680:5:18"}]},{"body":{"nodeType":"YulBlock","src":"35803:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"35805:16:18"},"nodeType":"YulFunctionCall","src":"35805:18:18"},"nodeType":"YulExpressionStatement","src":"35805:18:18"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"35728:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"35735:66:18","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"35725:2:18"},"nodeType":"YulFunctionCall","src":"35725:77:18"},"nodeType":"YulIf","src":"35722:103:18"},{"nodeType":"YulAssignment","src":"35834:20:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"35845:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"35852:1:18","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35841:3:18"},"nodeType":"YulFunctionCall","src":"35841:13:18"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"35834:3:18"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"35656:5:18","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"35666:3:18","type":""}],"src":"35627:233:18"},{"body":{"nodeType":"YulBlock","src":"35972:54:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"35994:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"36002:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35990:3:18"},"nodeType":"YulFunctionCall","src":"35990:14:18"},{"hexValue":"74782074696d656f7574","kind":"string","nodeType":"YulLiteral","src":"36006:12:18","type":"","value":"tx timeout"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35983:6:18"},"nodeType":"YulFunctionCall","src":"35983:36:18"},"nodeType":"YulExpressionStatement","src":"35983:36:18"}]},"name":"store_literal_in_memory_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"35964:6:18","type":""}],"src":"35866:160:18"},{"body":{"nodeType":"YulBlock","src":"36178:220:18","statements":[{"nodeType":"YulAssignment","src":"36188:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"36254:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"36259:2:18","type":"","value":"10"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"36195:58:18"},"nodeType":"YulFunctionCall","src":"36195:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"36188:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"36360:3:18"}],"functionName":{"name":"store_literal_in_memory_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd","nodeType":"YulIdentifier","src":"36271:88:18"},"nodeType":"YulFunctionCall","src":"36271:93:18"},"nodeType":"YulExpressionStatement","src":"36271:93:18"},{"nodeType":"YulAssignment","src":"36373:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"36384:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"36389:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36380:3:18"},"nodeType":"YulFunctionCall","src":"36380:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"36373:3:18"}]}]},"name":"abi_encode_t_stringliteral_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"36166:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"36174:3:18","type":""}],"src":"36032:366:18"},{"body":{"nodeType":"YulBlock","src":"36575:248:18","statements":[{"nodeType":"YulAssignment","src":"36585:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36597:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"36608:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36593:3:18"},"nodeType":"YulFunctionCall","src":"36593:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36585:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36632:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"36643:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36628:3:18"},"nodeType":"YulFunctionCall","src":"36628:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"36651:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"36657:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"36647:3:18"},"nodeType":"YulFunctionCall","src":"36647:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36621:6:18"},"nodeType":"YulFunctionCall","src":"36621:47:18"},"nodeType":"YulExpressionStatement","src":"36621:47:18"},{"nodeType":"YulAssignment","src":"36677:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"36811:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"36685:124:18"},"nodeType":"YulFunctionCall","src":"36685:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36677:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36555:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36570:4:18","type":""}],"src":"36404:419:18"},{"body":{"nodeType":"YulBlock","src":"36935:115:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"36957:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"36965:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36953:3:18"},"nodeType":"YulFunctionCall","src":"36953:14:18"},{"hexValue":"696e73756666696369656e742076616c756520666f72206465706f7369742066","kind":"string","nodeType":"YulLiteral","src":"36969:34:18","type":"","value":"insufficient value for deposit f"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36946:6:18"},"nodeType":"YulFunctionCall","src":"36946:58:18"},"nodeType":"YulExpressionStatement","src":"36946:58:18"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"37025:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"37033:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37021:3:18"},"nodeType":"YulFunctionCall","src":"37021:15:18"},{"hexValue":"6565","kind":"string","nodeType":"YulLiteral","src":"37038:4:18","type":"","value":"ee"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37014:6:18"},"nodeType":"YulFunctionCall","src":"37014:29:18"},"nodeType":"YulExpressionStatement","src":"37014:29:18"}]},"name":"store_literal_in_memory_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"36927:6:18","type":""}],"src":"36829:221:18"},{"body":{"nodeType":"YulBlock","src":"37202:220:18","statements":[{"nodeType":"YulAssignment","src":"37212:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"37278:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"37283:2:18","type":"","value":"34"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"37219:58:18"},"nodeType":"YulFunctionCall","src":"37219:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"37212:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"37384:3:18"}],"functionName":{"name":"store_literal_in_memory_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114","nodeType":"YulIdentifier","src":"37295:88:18"},"nodeType":"YulFunctionCall","src":"37295:93:18"},"nodeType":"YulExpressionStatement","src":"37295:93:18"},{"nodeType":"YulAssignment","src":"37397:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"37408:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"37413:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37404:3:18"},"nodeType":"YulFunctionCall","src":"37404:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"37397:3:18"}]}]},"name":"abi_encode_t_stringliteral_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"37190:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"37198:3:18","type":""}],"src":"37056:366:18"},{"body":{"nodeType":"YulBlock","src":"37599:248:18","statements":[{"nodeType":"YulAssignment","src":"37609:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37621:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"37632:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37617:3:18"},"nodeType":"YulFunctionCall","src":"37617:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"37609:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37656:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"37667:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37652:3:18"},"nodeType":"YulFunctionCall","src":"37652:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"37675:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"37681:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37671:3:18"},"nodeType":"YulFunctionCall","src":"37671:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37645:6:18"},"nodeType":"YulFunctionCall","src":"37645:47:18"},"nodeType":"YulExpressionStatement","src":"37645:47:18"},{"nodeType":"YulAssignment","src":"37701:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"37835:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"37709:124:18"},"nodeType":"YulFunctionCall","src":"37709:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"37701:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"37579:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"37594:4:18","type":""}],"src":"37428:419:18"},{"body":{"nodeType":"YulBlock","src":"37898:149:18","statements":[{"nodeType":"YulAssignment","src":"37908:25:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37931:1:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"37913:17:18"},"nodeType":"YulFunctionCall","src":"37913:20:18"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"37908:1:18"}]},{"nodeType":"YulAssignment","src":"37942:25:18","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"37965:1:18"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"37947:17:18"},"nodeType":"YulFunctionCall","src":"37947:20:18"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"37942:1:18"}]},{"nodeType":"YulAssignment","src":"37976:17:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37988:1:18"},{"name":"y","nodeType":"YulIdentifier","src":"37991:1:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37984:3:18"},"nodeType":"YulFunctionCall","src":"37984:9:18"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"37976:4:18"}]},{"body":{"nodeType":"YulBlock","src":"38018:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"38020:16:18"},"nodeType":"YulFunctionCall","src":"38020:18:18"},"nodeType":"YulExpressionStatement","src":"38020:18:18"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"38009:4:18"},{"name":"x","nodeType":"YulIdentifier","src":"38015:1:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"38006:2:18"},"nodeType":"YulFunctionCall","src":"38006:11:18"},"nodeType":"YulIf","src":"38003:37:18"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"37884:1:18","type":""},{"name":"y","nodeType":"YulTypedName","src":"37887:1:18","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"37893:4:18","type":""}],"src":"37853:194:18"},{"body":{"nodeType":"YulBlock","src":"38317:618:18","statements":[{"nodeType":"YulAssignment","src":"38327:27:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38339:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"38350:3:18","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38335:3:18"},"nodeType":"YulFunctionCall","src":"38335:19:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"38327:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38408:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38421:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"38432:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38417:3:18"},"nodeType":"YulFunctionCall","src":"38417:17:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"38364:43:18"},"nodeType":"YulFunctionCall","src":"38364:71:18"},"nodeType":"YulExpressionStatement","src":"38364:71:18"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"38489:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38502:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"38513:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38498:3:18"},"nodeType":"YulFunctionCall","src":"38498:18:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"38445:43:18"},"nodeType":"YulFunctionCall","src":"38445:72:18"},"nodeType":"YulExpressionStatement","src":"38445:72:18"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"38571:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38584:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"38595:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38580:3:18"},"nodeType":"YulFunctionCall","src":"38580:18:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"38527:43:18"},"nodeType":"YulFunctionCall","src":"38527:72:18"},"nodeType":"YulExpressionStatement","src":"38527:72:18"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"38653:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38666:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"38677:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38662:3:18"},"nodeType":"YulFunctionCall","src":"38662:18:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"38609:43:18"},"nodeType":"YulFunctionCall","src":"38609:72:18"},"nodeType":"YulExpressionStatement","src":"38609:72:18"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"38735:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38748:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"38759:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38744:3:18"},"nodeType":"YulFunctionCall","src":"38744:19:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"38691:43:18"},"nodeType":"YulFunctionCall","src":"38691:73:18"},"nodeType":"YulExpressionStatement","src":"38691:73:18"},{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"38818:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38831:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"38842:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38827:3:18"},"nodeType":"YulFunctionCall","src":"38827:19:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"38774:43:18"},"nodeType":"YulFunctionCall","src":"38774:73:18"},"nodeType":"YulExpressionStatement","src":"38774:73:18"},{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"38899:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38912:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"38923:3:18","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38908:3:18"},"nodeType":"YulFunctionCall","src":"38908:19:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32_fromStack","nodeType":"YulIdentifier","src":"38857:41:18"},"nodeType":"YulFunctionCall","src":"38857:71:18"},"nodeType":"YulExpressionStatement","src":"38857:71:18"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address_t_address_t_uint256_t_uint256_t_uint32__to_t_uint256_t_uint256_t_address_t_address_t_uint256_t_uint256_t_uint32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"38241:9:18","type":""},{"name":"value6","nodeType":"YulTypedName","src":"38253:6:18","type":""},{"name":"value5","nodeType":"YulTypedName","src":"38261:6:18","type":""},{"name":"value4","nodeType":"YulTypedName","src":"38269:6:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"38277:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"38285:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"38293:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"38301:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"38312:4:18","type":""}],"src":"38053:882:18"},{"body":{"nodeType":"YulBlock","src":"39151:454:18","statements":[{"nodeType":"YulAssignment","src":"39161:27:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39173:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"39184:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39169:3:18"},"nodeType":"YulFunctionCall","src":"39169:19:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"39161:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39242:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39255:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"39266:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39251:3:18"},"nodeType":"YulFunctionCall","src":"39251:17:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"39198:43:18"},"nodeType":"YulFunctionCall","src":"39198:71:18"},"nodeType":"YulExpressionStatement","src":"39198:71:18"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"39323:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39336:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"39347:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39332:3:18"},"nodeType":"YulFunctionCall","src":"39332:18:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"39279:43:18"},"nodeType":"YulFunctionCall","src":"39279:72:18"},"nodeType":"YulExpressionStatement","src":"39279:72:18"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"39405:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39418:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"39429:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39414:3:18"},"nodeType":"YulFunctionCall","src":"39414:18:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"39361:43:18"},"nodeType":"YulFunctionCall","src":"39361:72:18"},"nodeType":"YulExpressionStatement","src":"39361:72:18"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"39487:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39500:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"39511:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39496:3:18"},"nodeType":"YulFunctionCall","src":"39496:18:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"39443:43:18"},"nodeType":"YulFunctionCall","src":"39443:72:18"},"nodeType":"YulExpressionStatement","src":"39443:72:18"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"39569:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39582:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"39593:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39578:3:18"},"nodeType":"YulFunctionCall","src":"39578:19:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"39525:43:18"},"nodeType":"YulFunctionCall","src":"39525:73:18"},"nodeType":"YulExpressionStatement","src":"39525:73:18"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_address_t_address_t_uint256__to_t_bytes32_t_bytes32_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"39091:9:18","type":""},{"name":"value4","nodeType":"YulTypedName","src":"39103:6:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"39111:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"39119:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"39127:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"39135:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"39146:4:18","type":""}],"src":"38941:664:18"},{"body":{"nodeType":"YulBlock","src":"39724:34:18","statements":[{"nodeType":"YulAssignment","src":"39734:18:18","value":{"name":"pos","nodeType":"YulIdentifier","src":"39749:3:18"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"39734:11:18"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"39696:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"39701:6:18","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"39712:11:18","type":""}],"src":"39611:147:18"},{"body":{"nodeType":"YulBlock","src":"39870:8:18","statements":[]},"name":"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"39862:6:18","type":""}],"src":"39764:114:18"},{"body":{"nodeType":"YulBlock","src":"40047:235:18","statements":[{"nodeType":"YulAssignment","src":"40057:90:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"40140:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"40145:1:18","type":"","value":"0"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"40064:75:18"},"nodeType":"YulFunctionCall","src":"40064:83:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"40057:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"40245:3:18"}],"functionName":{"name":"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","nodeType":"YulIdentifier","src":"40156:88:18"},"nodeType":"YulFunctionCall","src":"40156:93:18"},"nodeType":"YulExpressionStatement","src":"40156:93:18"},{"nodeType":"YulAssignment","src":"40258:18:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"40269:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"40274:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40265:3:18"},"nodeType":"YulFunctionCall","src":"40265:11:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"40258:3:18"}]}]},"name":"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"40035:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"40043:3:18","type":""}],"src":"39884:398:18"},{"body":{"nodeType":"YulBlock","src":"40476:191:18","statements":[{"nodeType":"YulAssignment","src":"40487:154:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"40637:3:18"}],"functionName":{"name":"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"40494:141:18"},"nodeType":"YulFunctionCall","src":"40494:147:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"40487:3:18"}]},{"nodeType":"YulAssignment","src":"40651:10:18","value":{"name":"pos","nodeType":"YulIdentifier","src":"40658:3:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"40651:3:18"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"40463:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"40472:3:18","type":""}],"src":"40288:379:18"},{"body":{"nodeType":"YulBlock","src":"40779:63:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"40801:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"40809:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40797:3:18"},"nodeType":"YulFunctionCall","src":"40797:14:18"},{"hexValue":"776974686472617720657468206661696c6564","kind":"string","nodeType":"YulLiteral","src":"40813:21:18","type":"","value":"withdraw eth failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40790:6:18"},"nodeType":"YulFunctionCall","src":"40790:45:18"},"nodeType":"YulExpressionStatement","src":"40790:45:18"}]},"name":"store_literal_in_memory_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"40771:6:18","type":""}],"src":"40673:169:18"},{"body":{"nodeType":"YulBlock","src":"40994:220:18","statements":[{"nodeType":"YulAssignment","src":"41004:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"41070:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"41075:2:18","type":"","value":"19"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"41011:58:18"},"nodeType":"YulFunctionCall","src":"41011:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"41004:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"41176:3:18"}],"functionName":{"name":"store_literal_in_memory_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489","nodeType":"YulIdentifier","src":"41087:88:18"},"nodeType":"YulFunctionCall","src":"41087:93:18"},"nodeType":"YulExpressionStatement","src":"41087:93:18"},{"nodeType":"YulAssignment","src":"41189:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"41200:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"41205:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41196:3:18"},"nodeType":"YulFunctionCall","src":"41196:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"41189:3:18"}]}]},"name":"abi_encode_t_stringliteral_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"40982:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"40990:3:18","type":""}],"src":"40848:366:18"},{"body":{"nodeType":"YulBlock","src":"41391:248:18","statements":[{"nodeType":"YulAssignment","src":"41401:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41413:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"41424:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41409:3:18"},"nodeType":"YulFunctionCall","src":"41409:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"41401:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41448:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"41459:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41444:3:18"},"nodeType":"YulFunctionCall","src":"41444:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"41467:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"41473:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"41463:3:18"},"nodeType":"YulFunctionCall","src":"41463:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41437:6:18"},"nodeType":"YulFunctionCall","src":"41437:47:18"},"nodeType":"YulExpressionStatement","src":"41437:47:18"},{"nodeType":"YulAssignment","src":"41493:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"41627:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"41501:124:18"},"nodeType":"YulFunctionCall","src":"41501:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"41493:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"41371:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"41386:4:18","type":""}],"src":"41220:419:18"},{"body":{"nodeType":"YulBlock","src":"41771:206:18","statements":[{"nodeType":"YulAssignment","src":"41781:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41793:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"41804:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41789:3:18"},"nodeType":"YulFunctionCall","src":"41789:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"41781:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41861:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41874:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"41885:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41870:3:18"},"nodeType":"YulFunctionCall","src":"41870:17:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"41817:43:18"},"nodeType":"YulFunctionCall","src":"41817:71:18"},"nodeType":"YulExpressionStatement","src":"41817:71:18"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"41942:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41955:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"41966:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41951:3:18"},"nodeType":"YulFunctionCall","src":"41951:18:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"41898:43:18"},"nodeType":"YulFunctionCall","src":"41898:72:18"},"nodeType":"YulExpressionStatement","src":"41898:72:18"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"41735:9:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"41747:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"41755:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"41766:4:18","type":""}],"src":"41645:332:18"},{"body":{"nodeType":"YulBlock","src":"42023:76:18","statements":[{"body":{"nodeType":"YulBlock","src":"42077:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42086:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"42089:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"42079:6:18"},"nodeType":"YulFunctionCall","src":"42079:12:18"},"nodeType":"YulExpressionStatement","src":"42079:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"42046:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"42068:5:18"}],"functionName":{"name":"cleanup_t_bool","nodeType":"YulIdentifier","src":"42053:14:18"},"nodeType":"YulFunctionCall","src":"42053:21:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"42043:2:18"},"nodeType":"YulFunctionCall","src":"42043:32:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"42036:6:18"},"nodeType":"YulFunctionCall","src":"42036:40:18"},"nodeType":"YulIf","src":"42033:60:18"}]},"name":"validator_revert_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"42016:5:18","type":""}],"src":"41983:116:18"},{"body":{"nodeType":"YulBlock","src":"42165:77:18","statements":[{"nodeType":"YulAssignment","src":"42175:22:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"42190:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"42184:5:18"},"nodeType":"YulFunctionCall","src":"42184:13:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"42175:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"42230:5:18"}],"functionName":{"name":"validator_revert_t_bool","nodeType":"YulIdentifier","src":"42206:23:18"},"nodeType":"YulFunctionCall","src":"42206:30:18"},"nodeType":"YulExpressionStatement","src":"42206:30:18"}]},"name":"abi_decode_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42143:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"42151:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"42159:5:18","type":""}],"src":"42105:137:18"},{"body":{"nodeType":"YulBlock","src":"42322:271:18","statements":[{"body":{"nodeType":"YulBlock","src":"42368:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"42370:77:18"},"nodeType":"YulFunctionCall","src":"42370:79:18"},"nodeType":"YulExpressionStatement","src":"42370:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"42343:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"42352:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"42339:3:18"},"nodeType":"YulFunctionCall","src":"42339:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"42364:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"42335:3:18"},"nodeType":"YulFunctionCall","src":"42335:32:18"},"nodeType":"YulIf","src":"42332:119:18"},{"nodeType":"YulBlock","src":"42461:125:18","statements":[{"nodeType":"YulVariableDeclaration","src":"42476:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"42490:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"42480:6:18","type":""}]},{"nodeType":"YulAssignment","src":"42505:71:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42548:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"42559:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42544:3:18"},"nodeType":"YulFunctionCall","src":"42544:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"42568:7:18"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nodeType":"YulIdentifier","src":"42515:28:18"},"nodeType":"YulFunctionCall","src":"42515:61:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"42505:6:18"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"42292:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"42303:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"42315:6:18","type":""}],"src":"42248:345:18"},{"body":{"nodeType":"YulBlock","src":"42631:28:18","statements":[{"nodeType":"YulAssignment","src":"42641:12:18","value":{"name":"value","nodeType":"YulIdentifier","src":"42648:5:18"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"42641:3:18"}]}]},"name":"identity","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"42617:5:18","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"42627:3:18","type":""}],"src":"42599:60:18"},{"body":{"nodeType":"YulBlock","src":"42725:82:18","statements":[{"nodeType":"YulAssignment","src":"42735:66:18","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"42793:5:18"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"42775:17:18"},"nodeType":"YulFunctionCall","src":"42775:24:18"}],"functionName":{"name":"identity","nodeType":"YulIdentifier","src":"42766:8:18"},"nodeType":"YulFunctionCall","src":"42766:34:18"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"42748:17:18"},"nodeType":"YulFunctionCall","src":"42748:53:18"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"42735:9:18"}]}]},"name":"convert_t_uint160_to_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"42705:5:18","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"42715:9:18","type":""}],"src":"42665:142:18"},{"body":{"nodeType":"YulBlock","src":"42873:66:18","statements":[{"nodeType":"YulAssignment","src":"42883:50:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"42927:5:18"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nodeType":"YulIdentifier","src":"42896:30:18"},"nodeType":"YulFunctionCall","src":"42896:37:18"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"42883:9:18"}]}]},"name":"convert_t_uint160_to_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"42853:5:18","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"42863:9:18","type":""}],"src":"42813:126:18"},{"body":{"nodeType":"YulBlock","src":"43019:66:18","statements":[{"nodeType":"YulAssignment","src":"43029:50:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43073:5:18"}],"functionName":{"name":"convert_t_uint160_to_t_address","nodeType":"YulIdentifier","src":"43042:30:18"},"nodeType":"YulFunctionCall","src":"43042:37:18"},"variableNames":[{"name":"converted","nodeType":"YulIdentifier","src":"43029:9:18"}]}]},"name":"convert_t_contract$_IERC20_$312_to_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"42999:5:18","type":""}],"returnVariables":[{"name":"converted","nodeType":"YulTypedName","src":"43009:9:18","type":""}],"src":"42945:140:18"},{"body":{"nodeType":"YulBlock","src":"43170:80:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"43187:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43237:5:18"}],"functionName":{"name":"convert_t_contract$_IERC20_$312_to_t_address","nodeType":"YulIdentifier","src":"43192:44:18"},"nodeType":"YulFunctionCall","src":"43192:51:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43180:6:18"},"nodeType":"YulFunctionCall","src":"43180:64:18"},"nodeType":"YulExpressionStatement","src":"43180:64:18"}]},"name":"abi_encode_t_contract$_IERC20_$312_to_t_address_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"43158:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"43165:3:18","type":""}],"src":"43091:159:18"},{"body":{"nodeType":"YulBlock","src":"43452:385:18","statements":[{"nodeType":"YulAssignment","src":"43462:27:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43474:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"43485:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43470:3:18"},"nodeType":"YulFunctionCall","src":"43470:19:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"43462:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"43543:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43556:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"43567:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43552:3:18"},"nodeType":"YulFunctionCall","src":"43552:17:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"43499:43:18"},"nodeType":"YulFunctionCall","src":"43499:71:18"},"nodeType":"YulExpressionStatement","src":"43499:71:18"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"43624:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43637:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"43648:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43633:3:18"},"nodeType":"YulFunctionCall","src":"43633:18:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"43580:43:18"},"nodeType":"YulFunctionCall","src":"43580:72:18"},"nodeType":"YulExpressionStatement","src":"43580:72:18"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"43720:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43733:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"43744:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43729:3:18"},"nodeType":"YulFunctionCall","src":"43729:18:18"}],"functionName":{"name":"abi_encode_t_contract$_IERC20_$312_to_t_address_fromStack","nodeType":"YulIdentifier","src":"43662:57:18"},"nodeType":"YulFunctionCall","src":"43662:86:18"},"nodeType":"YulExpressionStatement","src":"43662:86:18"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"43802:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"43815:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"43826:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43811:3:18"},"nodeType":"YulFunctionCall","src":"43811:18:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"43758:43:18"},"nodeType":"YulFunctionCall","src":"43758:72:18"},"nodeType":"YulExpressionStatement","src":"43758:72:18"}]},"name":"abi_encode_tuple_t_address_t_address_t_contract$_IERC20_$312_t_uint256__to_t_address_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"43400:9:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"43412:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"43420:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"43428:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"43436:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"43447:4:18","type":""}],"src":"43256:581:18"},{"body":{"nodeType":"YulBlock","src":"43949:76:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"43971:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"43979:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43967:3:18"},"nodeType":"YulFunctionCall","src":"43967:14:18"},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","kind":"string","nodeType":"YulLiteral","src":"43983:34:18","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43960:6:18"},"nodeType":"YulFunctionCall","src":"43960:58:18"},"nodeType":"YulExpressionStatement","src":"43960:58:18"}]},"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"43941:6:18","type":""}],"src":"43843:182:18"},{"body":{"nodeType":"YulBlock","src":"44177:220:18","statements":[{"nodeType":"YulAssignment","src":"44187:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"44253:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"44258:2:18","type":"","value":"32"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"44194:58:18"},"nodeType":"YulFunctionCall","src":"44194:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"44187:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"44359:3:18"}],"functionName":{"name":"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","nodeType":"YulIdentifier","src":"44270:88:18"},"nodeType":"YulFunctionCall","src":"44270:93:18"},"nodeType":"YulExpressionStatement","src":"44270:93:18"},{"nodeType":"YulAssignment","src":"44372:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"44383:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"44388:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44379:3:18"},"nodeType":"YulFunctionCall","src":"44379:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"44372:3:18"}]}]},"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"44165:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"44173:3:18","type":""}],"src":"44031:366:18"},{"body":{"nodeType":"YulBlock","src":"44574:248:18","statements":[{"nodeType":"YulAssignment","src":"44584:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44596:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"44607:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44592:3:18"},"nodeType":"YulFunctionCall","src":"44592:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"44584:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"44631:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"44642:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"44627:3:18"},"nodeType":"YulFunctionCall","src":"44627:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"44650:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"44656:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"44646:3:18"},"nodeType":"YulFunctionCall","src":"44646:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"44620:6:18"},"nodeType":"YulFunctionCall","src":"44620:47:18"},"nodeType":"YulExpressionStatement","src":"44620:47:18"},{"nodeType":"YulAssignment","src":"44676:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"44810:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"44684:124:18"},"nodeType":"YulFunctionCall","src":"44684:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"44676:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"44554:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"44569:4:18","type":""}],"src":"44403:419:18"},{"body":{"nodeType":"YulBlock","src":"44879:51:18","statements":[{"nodeType":"YulAssignment","src":"44889:34:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"44914:1:18","type":"","value":"0"},{"name":"value","nodeType":"YulIdentifier","src":"44917:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"44910:3:18"},"nodeType":"YulFunctionCall","src":"44910:13:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"44889:8:18"}]}]},"name":"shift_right_0_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"44860:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"44870:8:18","type":""}],"src":"44828:102:18"},{"body":{"nodeType":"YulBlock","src":"44994:73:18","statements":[{"nodeType":"YulAssignment","src":"45004:57:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"45019:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"45026:34:18","type":"","value":"0xffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"45015:3:18"},"nodeType":"YulFunctionCall","src":"45015:46:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"45004:7:18"}]}]},"name":"cleanup_from_storage_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"44976:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"44986:7:18","type":""}],"src":"44936:131:18"},{"body":{"nodeType":"YulBlock","src":"45148:91:18","statements":[{"nodeType":"YulAssignment","src":"45158:75:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"45221:10:18"}],"functionName":{"name":"shift_right_0_unsigned","nodeType":"YulIdentifier","src":"45198:22:18"},"nodeType":"YulFunctionCall","src":"45198:34:18"}],"functionName":{"name":"cleanup_from_storage_t_uint128","nodeType":"YulIdentifier","src":"45167:30:18"},"nodeType":"YulFunctionCall","src":"45167:66:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"45158:5:18"}]}]},"name":"extract_from_storage_value_offset_0t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"45127:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"45142:5:18","type":""}],"src":"45073:166:18"},{"body":{"nodeType":"YulBlock","src":"45300:53:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"45317:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"45340:5:18"}],"functionName":{"name":"cleanup_t_uint128","nodeType":"YulIdentifier","src":"45322:17:18"},"nodeType":"YulFunctionCall","src":"45322:24:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"45310:6:18"},"nodeType":"YulFunctionCall","src":"45310:37:18"},"nodeType":"YulExpressionStatement","src":"45310:37:18"}]},"name":"abi_encode_t_uint128_to_t_uint128","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"45288:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"45295:3:18","type":""}],"src":"45245:108:18"},{"body":{"nodeType":"YulBlock","src":"45412:53:18","statements":[{"nodeType":"YulAssignment","src":"45422:36:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"45447:3:18","type":"","value":"128"},{"name":"value","nodeType":"YulIdentifier","src":"45452:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"45443:3:18"},"nodeType":"YulFunctionCall","src":"45443:15:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"45422:8:18"}]}]},"name":"shift_right_128_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"45393:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"45403:8:18","type":""}],"src":"45359:106:18"},{"body":{"nodeType":"YulBlock","src":"45528:49:18","statements":[{"nodeType":"YulAssignment","src":"45538:33:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"45553:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"45560:10:18","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"45549:3:18"},"nodeType":"YulFunctionCall","src":"45549:22:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"45538:7:18"}]}]},"name":"cleanup_from_storage_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"45510:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"45520:7:18","type":""}],"src":"45471:106:18"},{"body":{"nodeType":"YulBlock","src":"45658:92:18","statements":[{"nodeType":"YulAssignment","src":"45668:76:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"45732:10:18"}],"functionName":{"name":"shift_right_128_unsigned","nodeType":"YulIdentifier","src":"45707:24:18"},"nodeType":"YulFunctionCall","src":"45707:36:18"}],"functionName":{"name":"cleanup_from_storage_t_uint32","nodeType":"YulIdentifier","src":"45677:29:18"},"nodeType":"YulFunctionCall","src":"45677:67:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"45668:5:18"}]}]},"name":"extract_from_storage_value_offset_16t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"45637:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"45652:5:18","type":""}],"src":"45583:167:18"},{"body":{"nodeType":"YulBlock","src":"45809:52:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"45826:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"45848:5:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"45831:16:18"},"nodeType":"YulFunctionCall","src":"45831:23:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"45819:6:18"},"nodeType":"YulFunctionCall","src":"45819:36:18"},"nodeType":"YulExpressionStatement","src":"45819:36:18"}]},"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"45797:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"45804:3:18","type":""}],"src":"45756:105:18"},{"body":{"nodeType":"YulBlock","src":"45920:53:18","statements":[{"nodeType":"YulAssignment","src":"45930:36:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"45955:3:18","type":"","value":"160"},{"name":"value","nodeType":"YulIdentifier","src":"45960:5:18"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"45951:3:18"},"nodeType":"YulFunctionCall","src":"45951:15:18"},"variableNames":[{"name":"newValue","nodeType":"YulIdentifier","src":"45930:8:18"}]}]},"name":"shift_right_160_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"45901:5:18","type":""}],"returnVariables":[{"name":"newValue","nodeType":"YulTypedName","src":"45911:8:18","type":""}],"src":"45867:106:18"},{"body":{"nodeType":"YulBlock","src":"46054:92:18","statements":[{"nodeType":"YulAssignment","src":"46064:76:18","value":{"arguments":[{"arguments":[{"name":"slot_value","nodeType":"YulIdentifier","src":"46128:10:18"}],"functionName":{"name":"shift_right_160_unsigned","nodeType":"YulIdentifier","src":"46103:24:18"},"nodeType":"YulFunctionCall","src":"46103:36:18"}],"functionName":{"name":"cleanup_from_storage_t_uint32","nodeType":"YulIdentifier","src":"46073:29:18"},"nodeType":"YulFunctionCall","src":"46073:67:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"46064:5:18"}]}]},"name":"extract_from_storage_value_offset_20t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot_value","nodeType":"YulTypedName","src":"46033:10:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"46048:5:18","type":""}],"src":"45979:167:18"},{"body":{"nodeType":"YulBlock","src":"46319:761:18","statements":[{"nodeType":"YulVariableDeclaration","src":"46329:26:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"46345:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"46350:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"46341:3:18"},"nodeType":"YulFunctionCall","src":"46341:14:18"},"variables":[{"name":"tail","nodeType":"YulTypedName","src":"46333:4:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"46364:18:18","value":{"kind":"number","nodeType":"YulLiteral","src":"46381:1:18","type":"","value":"0"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"46368:9:18","type":""}]},{"nodeType":"YulBlock","src":"46392:254:18","statements":[{"nodeType":"YulAssignment","src":"46436:36:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"46459:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"46466:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"46455:3:18"},"nodeType":"YulFunctionCall","src":"46455:16:18"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"46449:5:18"},"nodeType":"YulFunctionCall","src":"46449:23:18"},"variableNames":[{"name":"slotValue","nodeType":"YulIdentifier","src":"46436:9:18"}]},{"nodeType":"YulVariableDeclaration","src":"46485:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"46550:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_0t_uint128","nodeType":"YulIdentifier","src":"46505:44:18"},"nodeType":"YulFunctionCall","src":"46505:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"46489:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"46607:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"46625:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"46630:4:18","type":"","value":"0x00"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"46621:3:18"},"nodeType":"YulFunctionCall","src":"46621:14:18"}],"functionName":{"name":"abi_encode_t_uint128_to_t_uint128","nodeType":"YulIdentifier","src":"46573:33:18"},"nodeType":"YulFunctionCall","src":"46573:63:18"},"nodeType":"YulExpressionStatement","src":"46573:63:18"}]},{"nodeType":"YulBlock","src":"46656:204:18","statements":[{"nodeType":"YulVariableDeclaration","src":"46701:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"46766:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_16t_uint32","nodeType":"YulIdentifier","src":"46721:44:18"},"nodeType":"YulFunctionCall","src":"46721:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"46705:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"46821:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"46839:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"46844:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"46835:3:18"},"nodeType":"YulFunctionCall","src":"46835:14:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulIdentifier","src":"46789:31:18"},"nodeType":"YulFunctionCall","src":"46789:61:18"},"nodeType":"YulExpressionStatement","src":"46789:61:18"}]},{"nodeType":"YulBlock","src":"46870:203:18","statements":[{"nodeType":"YulVariableDeclaration","src":"46914:75:18","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"46979:9:18"}],"functionName":{"name":"extract_from_storage_value_offset_20t_uint32","nodeType":"YulIdentifier","src":"46934:44:18"},"nodeType":"YulFunctionCall","src":"46934:55:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"46918:12:18","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"47034:12:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"47052:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"47057:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"47048:3:18"},"nodeType":"YulFunctionCall","src":"47048:14:18"}],"functionName":{"name":"abi_encode_t_uint32_to_t_uint32","nodeType":"YulIdentifier","src":"47002:31:18"},"nodeType":"YulFunctionCall","src":"47002:61:18"},"nodeType":"YulExpressionStatement","src":"47002:61:18"}]}]},"name":"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"46306:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"46313:3:18","type":""}],"src":"46206:874:18"},{"body":{"nodeType":"YulBlock","src":"47231:171:18","statements":[{"nodeType":"YulAssignment","src":"47241:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"47253:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"47264:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"47249:3:18"},"nodeType":"YulFunctionCall","src":"47249:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"47241:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"47368:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"47381:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"47392:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"47377:3:18"},"nodeType":"YulFunctionCall","src":"47377:17:18"}],"functionName":{"name":"abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"47277:90:18"},"nodeType":"YulFunctionCall","src":"47277:118:18"},"nodeType":"YulExpressionStatement","src":"47277:118:18"}]},"name":"abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"47203:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"47215:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"47226:4:18","type":""}],"src":"47086:316:18"},{"body":{"nodeType":"YulBlock","src":"47449:141:18","statements":[{"nodeType":"YulAssignment","src":"47459:24:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"47481:1:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"47464:16:18"},"nodeType":"YulFunctionCall","src":"47464:19:18"},"variableNames":[{"name":"x","nodeType":"YulIdentifier","src":"47459:1:18"}]},{"nodeType":"YulAssignment","src":"47492:24:18","value":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"47514:1:18"}],"functionName":{"name":"cleanup_t_uint32","nodeType":"YulIdentifier","src":"47497:16:18"},"nodeType":"YulFunctionCall","src":"47497:19:18"},"variableNames":[{"name":"y","nodeType":"YulIdentifier","src":"47492:1:18"}]},{"body":{"nodeType":"YulBlock","src":"47538:22:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"47540:16:18"},"nodeType":"YulFunctionCall","src":"47540:18:18"},"nodeType":"YulExpressionStatement","src":"47540:18:18"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"47535:1:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"47528:6:18"},"nodeType":"YulFunctionCall","src":"47528:9:18"},"nodeType":"YulIf","src":"47525:35:18"},{"nodeType":"YulAssignment","src":"47570:14:18","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"47579:1:18"},{"name":"y","nodeType":"YulIdentifier","src":"47582:1:18"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"47575:3:18"},"nodeType":"YulFunctionCall","src":"47575:9:18"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"47570:1:18"}]}]},"name":"checked_div_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"47438:1:18","type":""},{"name":"y","nodeType":"YulTypedName","src":"47441:1:18","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"47447:1:18","type":""}],"src":"47408:182:18"},{"body":{"nodeType":"YulBlock","src":"47702:119:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"47724:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"47732:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"47720:3:18"},"nodeType":"YulFunctionCall","src":"47720:14:18"},{"hexValue":"6665652072617465206d757374206265206c657373206f7220657175616c2074","kind":"string","nodeType":"YulLiteral","src":"47736:34:18","type":"","value":"fee rate must be less or equal t"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"47713:6:18"},"nodeType":"YulFunctionCall","src":"47713:58:18"},"nodeType":"YulExpressionStatement","src":"47713:58:18"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"47792:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"47800:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"47788:3:18"},"nodeType":"YulFunctionCall","src":"47788:15:18"},{"hexValue":"68616e203525","kind":"string","nodeType":"YulLiteral","src":"47805:8:18","type":"","value":"han 5%"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"47781:6:18"},"nodeType":"YulFunctionCall","src":"47781:33:18"},"nodeType":"YulExpressionStatement","src":"47781:33:18"}]},"name":"store_literal_in_memory_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"47694:6:18","type":""}],"src":"47596:225:18"},{"body":{"nodeType":"YulBlock","src":"47973:220:18","statements":[{"nodeType":"YulAssignment","src":"47983:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"48049:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"48054:2:18","type":"","value":"38"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"47990:58:18"},"nodeType":"YulFunctionCall","src":"47990:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"47983:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"48155:3:18"}],"functionName":{"name":"store_literal_in_memory_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef","nodeType":"YulIdentifier","src":"48066:88:18"},"nodeType":"YulFunctionCall","src":"48066:93:18"},"nodeType":"YulExpressionStatement","src":"48066:93:18"},{"nodeType":"YulAssignment","src":"48168:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"48179:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"48184:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"48175:3:18"},"nodeType":"YulFunctionCall","src":"48175:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"48168:3:18"}]}]},"name":"abi_encode_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"47961:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"47969:3:18","type":""}],"src":"47827:366:18"},{"body":{"nodeType":"YulBlock","src":"48370:248:18","statements":[{"nodeType":"YulAssignment","src":"48380:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"48392:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"48403:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"48388:3:18"},"nodeType":"YulFunctionCall","src":"48388:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"48380:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"48427:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"48438:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"48423:3:18"},"nodeType":"YulFunctionCall","src":"48423:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"48446:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"48452:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"48442:3:18"},"nodeType":"YulFunctionCall","src":"48442:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"48416:6:18"},"nodeType":"YulFunctionCall","src":"48416:47:18"},"nodeType":"YulExpressionStatement","src":"48416:47:18"},{"nodeType":"YulAssignment","src":"48472:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"48606:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"48480:124:18"},"nodeType":"YulFunctionCall","src":"48480:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"48472:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"48350:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"48365:4:18","type":""}],"src":"48199:419:18"},{"body":{"nodeType":"YulBlock","src":"48652:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"48669:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"48672:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"48662:6:18"},"nodeType":"YulFunctionCall","src":"48662:88:18"},"nodeType":"YulExpressionStatement","src":"48662:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"48766:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"48769:4:18","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"48759:6:18"},"nodeType":"YulFunctionCall","src":"48759:15:18"},"nodeType":"YulExpressionStatement","src":"48759:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"48790:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"48793:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"48783:6:18"},"nodeType":"YulFunctionCall","src":"48783:15:18"},"nodeType":"YulExpressionStatement","src":"48783:15:18"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"48624:180:18"},{"body":{"nodeType":"YulBlock","src":"48916:59:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"48938:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"48946:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"48934:3:18"},"nodeType":"YulFunctionCall","src":"48934:14:18"},{"hexValue":"7472616e73666572206661696c6564","kind":"string","nodeType":"YulLiteral","src":"48950:17:18","type":"","value":"transfer failed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"48927:6:18"},"nodeType":"YulFunctionCall","src":"48927:41:18"},"nodeType":"YulExpressionStatement","src":"48927:41:18"}]},"name":"store_literal_in_memory_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"48908:6:18","type":""}],"src":"48810:165:18"},{"body":{"nodeType":"YulBlock","src":"49127:220:18","statements":[{"nodeType":"YulAssignment","src":"49137:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"49203:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"49208:2:18","type":"","value":"15"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"49144:58:18"},"nodeType":"YulFunctionCall","src":"49144:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"49137:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"49309:3:18"}],"functionName":{"name":"store_literal_in_memory_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b","nodeType":"YulIdentifier","src":"49220:88:18"},"nodeType":"YulFunctionCall","src":"49220:93:18"},"nodeType":"YulExpressionStatement","src":"49220:93:18"},{"nodeType":"YulAssignment","src":"49322:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"49333:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"49338:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"49329:3:18"},"nodeType":"YulFunctionCall","src":"49329:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"49322:3:18"}]}]},"name":"abi_encode_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"49115:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"49123:3:18","type":""}],"src":"48981:366:18"},{"body":{"nodeType":"YulBlock","src":"49524:248:18","statements":[{"nodeType":"YulAssignment","src":"49534:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"49546:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"49557:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"49542:3:18"},"nodeType":"YulFunctionCall","src":"49542:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"49534:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"49581:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"49592:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"49577:3:18"},"nodeType":"YulFunctionCall","src":"49577:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"49600:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"49606:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"49596:3:18"},"nodeType":"YulFunctionCall","src":"49596:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"49570:6:18"},"nodeType":"YulFunctionCall","src":"49570:47:18"},"nodeType":"YulExpressionStatement","src":"49570:47:18"},{"nodeType":"YulAssignment","src":"49626:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"49760:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"49634:124:18"},"nodeType":"YulFunctionCall","src":"49634:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"49626:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"49504:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"49519:4:18","type":""}],"src":"49353:419:18"},{"body":{"nodeType":"YulBlock","src":"49884:63:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"49906:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"49914:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"49902:3:18"},"nodeType":"YulFunctionCall","src":"49902:14:18"},{"hexValue":"6e6f6e6578697374656e742072656c61796572","kind":"string","nodeType":"YulLiteral","src":"49918:21:18","type":"","value":"nonexistent relayer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"49895:6:18"},"nodeType":"YulFunctionCall","src":"49895:45:18"},"nodeType":"YulExpressionStatement","src":"49895:45:18"}]},"name":"store_literal_in_memory_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"49876:6:18","type":""}],"src":"49778:169:18"},{"body":{"nodeType":"YulBlock","src":"50099:220:18","statements":[{"nodeType":"YulAssignment","src":"50109:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"50175:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"50180:2:18","type":"","value":"19"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"50116:58:18"},"nodeType":"YulFunctionCall","src":"50116:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"50109:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"50281:3:18"}],"functionName":{"name":"store_literal_in_memory_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3","nodeType":"YulIdentifier","src":"50192:88:18"},"nodeType":"YulFunctionCall","src":"50192:93:18"},"nodeType":"YulExpressionStatement","src":"50192:93:18"},{"nodeType":"YulAssignment","src":"50294:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"50305:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"50310:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"50301:3:18"},"nodeType":"YulFunctionCall","src":"50301:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"50294:3:18"}]}]},"name":"abi_encode_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"50087:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"50095:3:18","type":""}],"src":"49953:366:18"},{"body":{"nodeType":"YulBlock","src":"50496:248:18","statements":[{"nodeType":"YulAssignment","src":"50506:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"50518:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"50529:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"50514:3:18"},"nodeType":"YulFunctionCall","src":"50514:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"50506:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"50553:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"50564:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"50549:3:18"},"nodeType":"YulFunctionCall","src":"50549:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"50572:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"50578:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"50568:3:18"},"nodeType":"YulFunctionCall","src":"50568:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"50542:6:18"},"nodeType":"YulFunctionCall","src":"50542:47:18"},"nodeType":"YulExpressionStatement","src":"50542:47:18"},{"nodeType":"YulAssignment","src":"50598:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"50732:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"50606:124:18"},"nodeType":"YulFunctionCall","src":"50606:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"50598:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50476:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"50491:4:18","type":""}],"src":"50325:419:18"},{"body":{"nodeType":"YulBlock","src":"50778:152:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"50795:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"50798:77:18","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"50788:6:18"},"nodeType":"YulFunctionCall","src":"50788:88:18"},"nodeType":"YulExpressionStatement","src":"50788:88:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"50892:1:18","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"50895:4:18","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"50885:6:18"},"nodeType":"YulFunctionCall","src":"50885:15:18"},"nodeType":"YulExpressionStatement","src":"50885:15:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"50916:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"50919:4:18","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"50909:6:18"},"nodeType":"YulFunctionCall","src":"50909:15:18"},"nodeType":"YulExpressionStatement","src":"50909:15:18"}]},"name":"panic_error_0x22","nodeType":"YulFunctionDefinition","src":"50750:180:18"},{"body":{"nodeType":"YulBlock","src":"50987:269:18","statements":[{"nodeType":"YulAssignment","src":"50997:22:18","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"51011:4:18"},{"kind":"number","nodeType":"YulLiteral","src":"51017:1:18","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"51007:3:18"},"nodeType":"YulFunctionCall","src":"51007:12:18"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"50997:6:18"}]},{"nodeType":"YulVariableDeclaration","src":"51028:38:18","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"51058:4:18"},{"kind":"number","nodeType":"YulLiteral","src":"51064:1:18","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"51054:3:18"},"nodeType":"YulFunctionCall","src":"51054:12:18"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"51032:18:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"51105:51:18","statements":[{"nodeType":"YulAssignment","src":"51119:27:18","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"51133:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"51141:4:18","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"51129:3:18"},"nodeType":"YulFunctionCall","src":"51129:17:18"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"51119:6:18"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"51085:18:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"51078:6:18"},"nodeType":"YulFunctionCall","src":"51078:26:18"},"nodeType":"YulIf","src":"51075:81:18"},{"body":{"nodeType":"YulBlock","src":"51208:42:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nodeType":"YulIdentifier","src":"51222:16:18"},"nodeType":"YulFunctionCall","src":"51222:18:18"},"nodeType":"YulExpressionStatement","src":"51222:18:18"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"51172:18:18"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"51195:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"51203:2:18","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"51192:2:18"},"nodeType":"YulFunctionCall","src":"51192:14:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"51169:2:18"},"nodeType":"YulFunctionCall","src":"51169:38:18"},"nodeType":"YulIf","src":"51166:84:18"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"50971:4:18","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"50980:6:18","type":""}],"src":"50936:320:18"},{"body":{"nodeType":"YulBlock","src":"51368:117:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"51390:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"51398:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51386:3:18"},"nodeType":"YulFunctionCall","src":"51386:14:18"},{"hexValue":"696e73756666696369656e7420616d6f756e7420666f722066696e616c697a65","kind":"string","nodeType":"YulLiteral","src":"51402:34:18","type":"","value":"insufficient amount for finalize"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"51379:6:18"},"nodeType":"YulFunctionCall","src":"51379:58:18"},"nodeType":"YulExpressionStatement","src":"51379:58:18"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"51458:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"51466:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51454:3:18"},"nodeType":"YulFunctionCall","src":"51454:15:18"},{"hexValue":"20666565","kind":"string","nodeType":"YulLiteral","src":"51471:6:18","type":"","value":" fee"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"51447:6:18"},"nodeType":"YulFunctionCall","src":"51447:31:18"},"nodeType":"YulExpressionStatement","src":"51447:31:18"}]},"name":"store_literal_in_memory_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"51360:6:18","type":""}],"src":"51262:223:18"},{"body":{"nodeType":"YulBlock","src":"51637:220:18","statements":[{"nodeType":"YulAssignment","src":"51647:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"51713:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"51718:2:18","type":"","value":"36"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"51654:58:18"},"nodeType":"YulFunctionCall","src":"51654:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"51647:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"51819:3:18"}],"functionName":{"name":"store_literal_in_memory_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f","nodeType":"YulIdentifier","src":"51730:88:18"},"nodeType":"YulFunctionCall","src":"51730:93:18"},"nodeType":"YulExpressionStatement","src":"51730:93:18"},{"nodeType":"YulAssignment","src":"51832:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"51843:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"51848:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"51839:3:18"},"nodeType":"YulFunctionCall","src":"51839:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"51832:3:18"}]}]},"name":"abi_encode_t_stringliteral_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"51625:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"51633:3:18","type":""}],"src":"51491:366:18"},{"body":{"nodeType":"YulBlock","src":"52034:248:18","statements":[{"nodeType":"YulAssignment","src":"52044:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"52056:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"52067:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"52052:3:18"},"nodeType":"YulFunctionCall","src":"52052:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"52044:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"52091:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"52102:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"52087:3:18"},"nodeType":"YulFunctionCall","src":"52087:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"52110:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"52116:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"52106:3:18"},"nodeType":"YulFunctionCall","src":"52106:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"52080:6:18"},"nodeType":"YulFunctionCall","src":"52080:47:18"},"nodeType":"YulExpressionStatement","src":"52080:47:18"},{"nodeType":"YulAssignment","src":"52136:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"52270:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"52144:124:18"},"nodeType":"YulFunctionCall","src":"52144:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"52136:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"52014:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"52029:4:18","type":""}],"src":"51863:419:18"},{"body":{"nodeType":"YulBlock","src":"52554:620:18","statements":[{"nodeType":"YulAssignment","src":"52564:27:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"52576:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"52587:3:18","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"52572:3:18"},"nodeType":"YulFunctionCall","src":"52572:19:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"52564:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"52645:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"52658:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"52669:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"52654:3:18"},"nodeType":"YulFunctionCall","src":"52654:17:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"52601:43:18"},"nodeType":"YulFunctionCall","src":"52601:71:18"},"nodeType":"YulExpressionStatement","src":"52601:71:18"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"52726:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"52739:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"52750:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"52735:3:18"},"nodeType":"YulFunctionCall","src":"52735:18:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"52682:43:18"},"nodeType":"YulFunctionCall","src":"52682:72:18"},"nodeType":"YulExpressionStatement","src":"52682:72:18"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"52808:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"52821:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"52832:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"52817:3:18"},"nodeType":"YulFunctionCall","src":"52817:18:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"52764:43:18"},"nodeType":"YulFunctionCall","src":"52764:72:18"},"nodeType":"YulExpressionStatement","src":"52764:72:18"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"52890:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"52903:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"52914:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"52899:3:18"},"nodeType":"YulFunctionCall","src":"52899:18:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"52846:43:18"},"nodeType":"YulFunctionCall","src":"52846:72:18"},"nodeType":"YulExpressionStatement","src":"52846:72:18"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"52972:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"52985:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"52996:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"52981:3:18"},"nodeType":"YulFunctionCall","src":"52981:19:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"52928:43:18"},"nodeType":"YulFunctionCall","src":"52928:73:18"},"nodeType":"YulExpressionStatement","src":"52928:73:18"},{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"53055:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"53068:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"53079:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"53064:3:18"},"nodeType":"YulFunctionCall","src":"53064:19:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"53011:43:18"},"nodeType":"YulFunctionCall","src":"53011:73:18"},"nodeType":"YulExpressionStatement","src":"53011:73:18"},{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"53138:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"53151:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"53162:3:18","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"53147:3:18"},"nodeType":"YulFunctionCall","src":"53147:19:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"53094:43:18"},"nodeType":"YulFunctionCall","src":"53094:73:18"},"nodeType":"YulExpressionStatement","src":"53094:73:18"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256_t_bytes32_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"52478:9:18","type":""},{"name":"value6","nodeType":"YulTypedName","src":"52490:6:18","type":""},{"name":"value5","nodeType":"YulTypedName","src":"52498:6:18","type":""},{"name":"value4","nodeType":"YulTypedName","src":"52506:6:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"52514:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"52522:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"52530:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"52538:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"52549:4:18","type":""}],"src":"52288:886:18"},{"body":{"nodeType":"YulBlock","src":"53286:58:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"53308:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"53316:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"53304:3:18"},"nodeType":"YulFunctionCall","src":"53304:14:18"},{"hexValue":"72656c6179657220657869737473","kind":"string","nodeType":"YulLiteral","src":"53320:16:18","type":"","value":"relayer exists"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"53297:6:18"},"nodeType":"YulFunctionCall","src":"53297:40:18"},"nodeType":"YulExpressionStatement","src":"53297:40:18"}]},"name":"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"53278:6:18","type":""}],"src":"53180:164:18"},{"body":{"nodeType":"YulBlock","src":"53496:220:18","statements":[{"nodeType":"YulAssignment","src":"53506:74:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"53572:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"53577:2:18","type":"","value":"14"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"53513:58:18"},"nodeType":"YulFunctionCall","src":"53513:67:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"53506:3:18"}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"53678:3:18"}],"functionName":{"name":"store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1","nodeType":"YulIdentifier","src":"53589:88:18"},"nodeType":"YulFunctionCall","src":"53589:93:18"},"nodeType":"YulExpressionStatement","src":"53589:93:18"},{"nodeType":"YulAssignment","src":"53691:19:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"53702:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"53707:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"53698:3:18"},"nodeType":"YulFunctionCall","src":"53698:12:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"53691:3:18"}]}]},"name":"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"53484:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"53492:3:18","type":""}],"src":"53350:366:18"},{"body":{"nodeType":"YulBlock","src":"53893:248:18","statements":[{"nodeType":"YulAssignment","src":"53903:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"53915:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"53926:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"53911:3:18"},"nodeType":"YulFunctionCall","src":"53911:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"53903:4:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"53950:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"53961:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"53946:3:18"},"nodeType":"YulFunctionCall","src":"53946:17:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"53969:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"53975:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"53965:3:18"},"nodeType":"YulFunctionCall","src":"53965:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"53939:6:18"},"nodeType":"YulFunctionCall","src":"53939:47:18"},"nodeType":"YulExpressionStatement","src":"53939:47:18"},{"nodeType":"YulAssignment","src":"53995:139:18","value":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"54129:4:18"}],"functionName":{"name":"abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"54003:124:18"},"nodeType":"YulFunctionCall","src":"54003:131:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"53995:4:18"}]}]},"name":"abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"53873:9:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"53888:4:18","type":""}],"src":"53722:419:18"},{"body":{"nodeType":"YulBlock","src":"54242:73:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"54259:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"54264:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"54252:6:18"},"nodeType":"YulFunctionCall","src":"54252:19:18"},"nodeType":"YulExpressionStatement","src":"54252:19:18"},{"nodeType":"YulAssignment","src":"54280:29:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"54299:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"54304:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"54295:3:18"},"nodeType":"YulFunctionCall","src":"54295:14:18"},"variableNames":[{"name":"updated_pos","nodeType":"YulIdentifier","src":"54280:11:18"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"54214:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"54219:6:18","type":""}],"returnVariables":[{"name":"updated_pos","nodeType":"YulTypedName","src":"54230:11:18","type":""}],"src":"54147:168:18"},{"body":{"nodeType":"YulBlock","src":"54411:283:18","statements":[{"nodeType":"YulVariableDeclaration","src":"54421:52:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"54467:5:18"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"54435:31:18"},"nodeType":"YulFunctionCall","src":"54435:38:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"54425:6:18","type":""}]},{"nodeType":"YulAssignment","src":"54482:77:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"54547:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"54552:6:18"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"54489:57:18"},"nodeType":"YulFunctionCall","src":"54489:70:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"54482:3:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"54607:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"54614:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"54603:3:18"},"nodeType":"YulFunctionCall","src":"54603:16:18"},{"name":"pos","nodeType":"YulIdentifier","src":"54621:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"54626:6:18"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"54568:34:18"},"nodeType":"YulFunctionCall","src":"54568:65:18"},"nodeType":"YulExpressionStatement","src":"54568:65:18"},{"nodeType":"YulAssignment","src":"54642:46:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"54653:3:18"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"54680:6:18"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"54658:21:18"},"nodeType":"YulFunctionCall","src":"54658:29:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"54649:3:18"},"nodeType":"YulFunctionCall","src":"54649:39:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"54642:3:18"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"54392:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"54399:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"54407:3:18","type":""}],"src":"54321:373:18"},{"body":{"nodeType":"YulBlock","src":"54844:275:18","statements":[{"nodeType":"YulAssignment","src":"54854:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"54866:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"54877:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"54862:3:18"},"nodeType":"YulFunctionCall","src":"54862:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"54854:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"54934:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"54947:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"54958:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"54943:3:18"},"nodeType":"YulFunctionCall","src":"54943:17:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"54890:43:18"},"nodeType":"YulFunctionCall","src":"54890:71:18"},"nodeType":"YulExpressionStatement","src":"54890:71:18"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"54982:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"54993:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"54978:3:18"},"nodeType":"YulFunctionCall","src":"54978:18:18"},{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"55002:4:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"55008:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"54998:3:18"},"nodeType":"YulFunctionCall","src":"54998:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"54971:6:18"},"nodeType":"YulFunctionCall","src":"54971:48:18"},"nodeType":"YulExpressionStatement","src":"54971:48:18"},{"nodeType":"YulAssignment","src":"55028:84:18","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"55098:6:18"},{"name":"tail","nodeType":"YulIdentifier","src":"55107:4:18"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nodeType":"YulIdentifier","src":"55036:61:18"},"nodeType":"YulFunctionCall","src":"55036:76:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"55028:4:18"}]}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"54808:9:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"54820:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"54828:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"54839:4:18","type":""}],"src":"54700:419:18"},{"body":{"nodeType":"YulBlock","src":"55233:278:18","statements":[{"nodeType":"YulVariableDeclaration","src":"55243:52:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"55289:5:18"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nodeType":"YulIdentifier","src":"55257:31:18"},"nodeType":"YulFunctionCall","src":"55257:38:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"55247:6:18","type":""}]},{"nodeType":"YulAssignment","src":"55304:95:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"55387:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"55392:6:18"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"55311:75:18"},"nodeType":"YulFunctionCall","src":"55311:88:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"55304:3:18"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"55447:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"55454:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"55443:3:18"},"nodeType":"YulFunctionCall","src":"55443:16:18"},{"name":"pos","nodeType":"YulIdentifier","src":"55461:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"55466:6:18"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"55408:34:18"},"nodeType":"YulFunctionCall","src":"55408:65:18"},"nodeType":"YulExpressionStatement","src":"55408:65:18"},{"nodeType":"YulAssignment","src":"55482:23:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"55493:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"55498:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"55489:3:18"},"nodeType":"YulFunctionCall","src":"55489:16:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"55482:3:18"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"55214:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"55221:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"55229:3:18","type":""}],"src":"55125:386:18"},{"body":{"nodeType":"YulBlock","src":"55651:137:18","statements":[{"nodeType":"YulAssignment","src":"55662:100:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"55749:6:18"},{"name":"pos","nodeType":"YulIdentifier","src":"55758:3:18"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nodeType":"YulIdentifier","src":"55669:79:18"},"nodeType":"YulFunctionCall","src":"55669:93:18"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"55662:3:18"}]},{"nodeType":"YulAssignment","src":"55772:10:18","value":{"name":"pos","nodeType":"YulIdentifier","src":"55779:3:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"55772:3:18"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"55630:3:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"55636:6:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"55647:3:18","type":""}],"src":"55517:271:18"},{"body":{"nodeType":"YulBlock","src":"55857:80:18","statements":[{"nodeType":"YulAssignment","src":"55867:22:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"55882:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"55876:5:18"},"nodeType":"YulFunctionCall","src":"55876:13:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"55867:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"55925:5:18"}],"functionName":{"name":"validator_revert_t_bytes32","nodeType":"YulIdentifier","src":"55898:26:18"},"nodeType":"YulFunctionCall","src":"55898:33:18"},"nodeType":"YulExpressionStatement","src":"55898:33:18"}]},"name":"abi_decode_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"55835:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"55843:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"55851:5:18","type":""}],"src":"55794:143:18"},{"body":{"nodeType":"YulBlock","src":"56020:274:18","statements":[{"body":{"nodeType":"YulBlock","src":"56066:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"56068:77:18"},"nodeType":"YulFunctionCall","src":"56068:79:18"},"nodeType":"YulExpressionStatement","src":"56068:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"56041:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"56050:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"56037:3:18"},"nodeType":"YulFunctionCall","src":"56037:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"56062:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"56033:3:18"},"nodeType":"YulFunctionCall","src":"56033:32:18"},"nodeType":"YulIf","src":"56030:119:18"},{"nodeType":"YulBlock","src":"56159:128:18","statements":[{"nodeType":"YulVariableDeclaration","src":"56174:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"56188:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"56178:6:18","type":""}]},{"nodeType":"YulAssignment","src":"56203:74:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"56249:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"56260:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"56245:3:18"},"nodeType":"YulFunctionCall","src":"56245:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"56269:7:18"}],"functionName":{"name":"abi_decode_t_bytes32_fromMemory","nodeType":"YulIdentifier","src":"56213:31:18"},"nodeType":"YulFunctionCall","src":"56213:64:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"56203:6:18"}]}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"55990:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"56001:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"56013:6:18","type":""}],"src":"55943:351:18"},{"body":{"nodeType":"YulBlock","src":"56343:43:18","statements":[{"nodeType":"YulAssignment","src":"56353:27:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"56368:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"56375:4:18","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"56364:3:18"},"nodeType":"YulFunctionCall","src":"56364:16:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"56353:7:18"}]}]},"name":"cleanup_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"56325:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"56335:7:18","type":""}],"src":"56300:86:18"},{"body":{"nodeType":"YulBlock","src":"56453:51:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"56470:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"56491:5:18"}],"functionName":{"name":"cleanup_t_uint8","nodeType":"YulIdentifier","src":"56475:15:18"},"nodeType":"YulFunctionCall","src":"56475:22:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56463:6:18"},"nodeType":"YulFunctionCall","src":"56463:35:18"},"nodeType":"YulExpressionStatement","src":"56463:35:18"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"56441:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"56448:3:18","type":""}],"src":"56392:112:18"},{"body":{"nodeType":"YulBlock","src":"56688:367:18","statements":[{"nodeType":"YulAssignment","src":"56698:27:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"56710:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"56721:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"56706:3:18"},"nodeType":"YulFunctionCall","src":"56706:19:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"56698:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"56779:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"56792:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"56803:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"56788:3:18"},"nodeType":"YulFunctionCall","src":"56788:17:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"56735:43:18"},"nodeType":"YulFunctionCall","src":"56735:71:18"},"nodeType":"YulExpressionStatement","src":"56735:71:18"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"56856:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"56869:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"56880:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"56865:3:18"},"nodeType":"YulFunctionCall","src":"56865:18:18"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nodeType":"YulIdentifier","src":"56816:39:18"},"nodeType":"YulFunctionCall","src":"56816:68:18"},"nodeType":"YulExpressionStatement","src":"56816:68:18"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"56938:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"56951:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"56962:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"56947:3:18"},"nodeType":"YulFunctionCall","src":"56947:18:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"56894:43:18"},"nodeType":"YulFunctionCall","src":"56894:72:18"},"nodeType":"YulExpressionStatement","src":"56894:72:18"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"57020:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"57033:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"57044:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"57029:3:18"},"nodeType":"YulFunctionCall","src":"57029:18:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"56976:43:18"},"nodeType":"YulFunctionCall","src":"56976:72:18"},"nodeType":"YulExpressionStatement","src":"56976:72:18"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"56636:9:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"56648:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"56656:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"56664:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"56672:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"56683:4:18","type":""}],"src":"56510:545:18"},{"body":{"nodeType":"YulBlock","src":"57271:454:18","statements":[{"nodeType":"YulAssignment","src":"57281:27:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"57293:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"57304:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"57289:3:18"},"nodeType":"YulFunctionCall","src":"57289:19:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"57281:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"57362:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"57375:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"57386:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"57371:3:18"},"nodeType":"YulFunctionCall","src":"57371:17:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"57318:43:18"},"nodeType":"YulFunctionCall","src":"57318:71:18"},"nodeType":"YulExpressionStatement","src":"57318:71:18"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"57443:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"57456:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"57467:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"57452:3:18"},"nodeType":"YulFunctionCall","src":"57452:18:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"57399:43:18"},"nodeType":"YulFunctionCall","src":"57399:72:18"},"nodeType":"YulExpressionStatement","src":"57399:72:18"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"57525:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"57538:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"57549:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"57534:3:18"},"nodeType":"YulFunctionCall","src":"57534:18:18"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nodeType":"YulIdentifier","src":"57481:43:18"},"nodeType":"YulFunctionCall","src":"57481:72:18"},"nodeType":"YulExpressionStatement","src":"57481:72:18"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"57607:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"57620:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"57631:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"57616:3:18"},"nodeType":"YulFunctionCall","src":"57616:18:18"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"57563:43:18"},"nodeType":"YulFunctionCall","src":"57563:72:18"},"nodeType":"YulExpressionStatement","src":"57563:72:18"},{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"57689:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"57702:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"57713:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"57698:3:18"},"nodeType":"YulFunctionCall","src":"57698:19:18"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nodeType":"YulIdentifier","src":"57645:43:18"},"nodeType":"YulFunctionCall","src":"57645:73:18"},"nodeType":"YulExpressionStatement","src":"57645:73:18"}]},"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","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"57211:9:18","type":""},{"name":"value4","nodeType":"YulTypedName","src":"57223:6:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"57231:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"57239:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"57247:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"57255:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"57266:4:18","type":""}],"src":"57061:664:18"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function validator_revert_t_uint32(value) {\n        if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint32(value)\n    }\n\n    function abi_decode_tuple_t_uint32(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n        revert(0, 0)\n    }\n\n    function round_up_to_mul_of_32(value) -> result {\n        result := and(add(value, 31), not(31))\n    }\n\n    function panic_error_0x41() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n\n    function finalize_allocation(memPtr, size) {\n        let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n        // protect against overflow\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n\n    function allocate_memory(size) -> memPtr {\n        memPtr := allocate_unbounded()\n        finalize_allocation(memPtr, size)\n    }\n\n    function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint128(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n    }\n\n    function validator_revert_t_uint128(value) {\n        if iszero(eq(value, cleanup_t_uint128(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint128(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint128(value)\n    }\n\n    // struct Config.Config_\n    function abi_decode_t_struct$_Config__$2546_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // depositBaseFee\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_uint128(add(headStart, offset), end))\n\n        }\n\n        {\n            // depositFeeRate\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_uint32(add(headStart, offset), end))\n\n        }\n\n        {\n            // finalizeTxGas\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_uint32(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_Config__$2546_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_Config__$2546_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_bytes32(value) -> cleaned {\n        cleaned := value\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function validator_revert_t_bytes32(value) {\n        if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes32(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n        revert(0, 0)\n    }\n\n    function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n        revert(0, 0)\n    }\n\n    function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n        calldatacopy(dst, src, length)\n        mstore(add(dst, length), 0)\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_calldata_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    // struct ETHDeliver.DepositorWithdrawal\n    function abi_decode_t_struct$_DepositorWithdrawal_$2862_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0xc0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0xc0)\n\n        {\n            // logHash\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_bytes32(add(headStart, offset), end))\n\n        }\n\n        {\n            // from\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // to\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // amount\n\n            let offset := 96\n\n            mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n        }\n\n        {\n            // depositorSig\n\n            let offset := calldataload(add(headStart, 128))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x80), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // adminSig\n\n            let offset := calldataload(add(headStart, 160))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0xa0), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_DepositorWithdrawal_$2862_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_struct$_DepositorWithdrawal_$2862_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint128_to_t_uint128_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint128(value))\n    }\n\n    function abi_encode_t_uint32_to_t_uint32_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function abi_encode_tuple_t_uint128_t_uint32_t_uint32__to_t_uint128_t_uint32_t_uint32__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_uint128_to_t_uint128_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value2,  add(headStart, 64))\n\n    }\n\n    function cleanup_t_bytes1(value) -> cleaned {\n        cleaned := and(value, 0xff00000000000000000000000000000000000000000000000000000000000000)\n    }\n\n    function abi_encode_t_bytes1_to_t_bytes1_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bytes1(value))\n    }\n\n    function array_length_t_string_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n        data := ptr\n\n        data := add(ptr, 0x20)\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n        abi_encode_t_uint256_to_t_uint256(value0, pos)\n        updatedPos := add(pos, 0x20)\n    }\n\n    function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n        next := add(ptr, 0x20)\n    }\n\n    // uint256[] -> uint256[]\n    function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos)  -> end  {\n        let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n        let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n        let srcPtr := baseRef\n        for { let i := 0 } lt(i, length) { i := add(i, 1) }\n        {\n            let elementValue0 := mload(srcPtr)\n            pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n            srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n        }\n        end := pos\n    }\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        tail := add(headStart, 224)\n\n        abi_encode_t_bytes1_to_t_bytes1_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1,  tail)\n\n        mstore(add(headStart, 64), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2,  tail)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_address_to_t_address_fromStack(value4,  add(headStart, 128))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value5,  add(headStart, 160))\n\n        mstore(add(headStart, 192), sub(tail, headStart))\n        tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value6,  tail)\n\n    }\n\n    function array_allocation_size_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := mul(length, 0x20)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n        revert(0, 0)\n    }\n\n    // struct ETHDeliver.FinalizeTxMeta\n    function abi_decode_t_struct$_FinalizeTxMeta_$2873_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0xa0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0xa0)\n\n        {\n            // srcChainId\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_uint256(add(headStart, offset), end))\n\n        }\n\n        {\n            // logHash\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_bytes32(add(headStart, offset), end))\n\n        }\n\n        {\n            // to\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n        {\n            // amount\n\n            let offset := 96\n\n            mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n        }\n\n        {\n            // timeoutAt\n\n            let offset := 128\n\n            mstore(add(value, 0x80), abi_decode_t_uint32(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct ETHDeliver.FinalizeTxMeta[]\n    function abi_decode_available_length_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr(offset, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr(length))\n        let dst := array\n\n        mstore(array, length)\n        dst := add(array, 0x20)\n\n        let srcEnd := add(offset, mul(length, 0xa0))\n        if gt(srcEnd, end) {\n            revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n        }\n        for { let src := offset } lt(src, srcEnd) { src := add(src, 0xa0) }\n        {\n\n            let elementPos := src\n\n            mstore(dst, abi_decode_t_struct$_FinalizeTxMeta_$2873_memory_ptr(elementPos, end))\n            dst := add(dst, 0x20)\n        }\n    }\n\n    // struct ETHDeliver.FinalizeTxMeta[]\n    function abi_decode_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    function abi_decode_tuple_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_array$_t_struct$_FinalizeTxMeta_$2873_memory_ptr_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_struct$_FinalizeTxMeta_$2873_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_struct$_FinalizeTxMeta_$2873_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_uint256t_uint32(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint32(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_decode_tuple_t_uint128(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_uint128(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_bytes32t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3 {\n        if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 96\n\n            value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_contract$_IERC20_$312(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_IERC20_$312(value) {\n        if iszero(eq(value, cleanup_t_contract$_IERC20_$312(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_IERC20_$312(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_contract$_IERC20_$312(value)\n    }\n\n    function abi_decode_tuple_t_contract$_IERC20_$312t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n        if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_contract$_IERC20_$312(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 32\n\n            value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n        {\n\n            let offset := 64\n\n            value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function store_literal_in_memory_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b(memPtr) {\n\n        mstore(add(memPtr, 0), \"not paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 10)\n        store_literal_in_memory_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f1413c76b577e56478125bd3f71ecf4670e25217920a3814d2fafa72531b9e7b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_mul_t_uint256(x, y) -> product {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        let product_raw := mul(x, y)\n        product := cleanup_t_uint256(product_raw)\n\n        // overflow, if x != 0 and y != product/x\n        if iszero(\n            or(\n                iszero(x),\n                eq(y, div(product, x))\n            )\n        ) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x12() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x12)\n        revert(0, 0x24)\n    }\n\n    function checked_div_t_uint256(x, y) -> r {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function store_literal_in_memory_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7(memPtr) {\n\n        mstore(add(memPtr, 0), \"deposits already withdraw\")\n\n    }\n\n    function abi_encode_t_stringliteral_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n        store_literal_in_memory_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_e8b3853cf0b4d2bdf9008dea70e1f128800c5ffaba698e4c3b83a19c789712a7_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601(memPtr) {\n\n        mstore(add(memPtr, 0), \"paused!\")\n\n    }\n\n    function abi_encode_t_stringliteral_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 7)\n        store_literal_in_memory_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_1d74cc8b2fbe87526353ffc85452305121b85b8415016c1f7974f76a86de8601_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid depositor\")\n\n    }\n\n    function abi_encode_t_stringliteral_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 17)\n        store_literal_in_memory_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_5d20f278b6ff8278c56af94f9d3e1847ec82738d1903cba58689a1f05e532298_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8(memPtr) {\n\n        mstore(add(memPtr, 0), \"invalid admin\")\n\n    }\n\n    function abi_encode_t_stringliteral_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 13)\n        store_literal_in_memory_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9d9fa82088d485c8d6b888bb331234a32c47332e226c99adf000aea741bfe0e8_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encode_t_address_to_t_address(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function array_length_t_bytes_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\n    }\n\n    // struct ETHDeliver.DepositorWithdrawal -> struct ETHDeliver.DepositorWithdrawal\n    function abi_encode_t_struct$_DepositorWithdrawal_$2862_memory_ptr_to_t_struct$_DepositorWithdrawal_$2862_memory_ptr_fromStack(value, pos)  -> end  {\n        let tail := add(pos, 0xc0)\n\n        {\n            // logHash\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_bytes32_to_t_bytes32(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // from\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n        }\n\n        {\n            // to\n\n            let memberValue0 := mload(add(value, 0x40))\n            abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n        }\n\n        {\n            // amount\n\n            let memberValue0 := mload(add(value, 0x60))\n            abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x60))\n        }\n\n        {\n            // depositorSig\n\n            let memberValue0 := mload(add(value, 0x80))\n\n            mstore(add(pos, 0x80), sub(tail, pos))\n            tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // adminSig\n\n            let memberValue0 := mload(add(value, 0xa0))\n\n            mstore(add(pos, 0xa0), sub(tail, pos))\n            tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    function abi_encode_tuple_t_struct$_DepositorWithdrawal_$2862_memory_ptr__to_t_struct$_DepositorWithdrawal_$2862_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_struct$_DepositorWithdrawal_$2862_memory_ptr_to_t_struct$_DepositorWithdrawal_$2862_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable2Step: caller is not the \")\n\n        mstore(add(memPtr, 32), \"new owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n        store_literal_in_memory_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_225559eb8402045bea7ff07c35d0ad8c0547830223ac1c21d44fb948d6896ebc_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b(memPtr) {\n\n        mstore(add(memPtr, 0), \"already paused\")\n\n    }\n\n    function abi_encode_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n        store_literal_in_memory_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_e44cdf99b474d3ac8cd8be04fddd55b50ebf6bccca0daac4252cccb8bbba898b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c(memPtr) {\n\n        mstore(add(memPtr, 0), \"caller is not a relayer\")\n\n    }\n\n    function abi_encode_t_stringliteral_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n        store_literal_in_memory_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_89904c47da71550a57b1e330c072b82dfcd75d9fafe3d1edfb62089a1a8b5f1c_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function store_literal_in_memory_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb(memPtr) {\n\n        mstore(add(memPtr, 0), \"tx finalized\")\n\n    }\n\n    function abi_encode_t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 12)\n        store_literal_in_memory_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_d23bd282b099540c86cb58529c0e94be38a11f4e61eb3967fbdcbdb1c9f26efb_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function increment_t_uint256(value) -> ret {\n        value := cleanup_t_uint256(value)\n        if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n\n    function store_literal_in_memory_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd(memPtr) {\n\n        mstore(add(memPtr, 0), \"tx timeout\")\n\n    }\n\n    function abi_encode_t_stringliteral_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 10)\n        store_literal_in_memory_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9347480442d99ec3ebc8801ccafc845d9fce6497d827dac8b7c2cede879602dd_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114(memPtr) {\n\n        mstore(add(memPtr, 0), \"insufficient value for deposit f\")\n\n        mstore(add(memPtr, 32), \"ee\")\n\n    }\n\n    function abi_encode_t_stringliteral_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n        store_literal_in_memory_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7df159819cc98755c4f5035c8a00d9fbf4838dff8a97de1b201f52c65b042114_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function abi_encode_tuple_t_uint256_t_uint256_t_address_t_address_t_uint256_t_uint256_t_uint32__to_t_uint256_t_uint256_t_address_t_address_t_uint256_t_uint256_t_uint32__fromStack_reversed(headStart , value6, value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 224)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_address_to_t_address_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_address_to_t_address_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value4,  add(headStart, 128))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value5,  add(headStart, 160))\n\n        abi_encode_t_uint32_to_t_uint32_fromStack(value6,  add(headStart, 192))\n\n    }\n\n    function abi_encode_tuple_t_bytes32_t_bytes32_t_address_t_address_t_uint256__to_t_bytes32_t_bytes32_t_address_t_address_t_uint256__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 160)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_address_to_t_address_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_address_to_t_address_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value4,  add(headStart, 128))\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n    }\n\n    function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 0)\n        store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n        end := add(pos, 0)\n    }\n\n    function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n        pos := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n        end := pos\n    }\n\n    function store_literal_in_memory_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489(memPtr) {\n\n        mstore(add(memPtr, 0), \"withdraw eth failed\")\n\n    }\n\n    function abi_encode_t_stringliteral_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n        store_literal_in_memory_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9f0e4376005cd61e72726d9b8b60a06afa3a595c95b2b6964fb3818ed5d44489_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function validator_revert_t_bool(value) {\n        if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bool_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bool(value)\n    }\n\n    function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint160_to_t_uint160(value) -> converted {\n        converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n    }\n\n    function convert_t_uint160_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_uint160(value)\n    }\n\n    function convert_t_contract$_IERC20_$312_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IERC20_$312_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IERC20_$312_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address_t_address_t_contract$_IERC20_$312_t_uint256__to_t_address_t_address_t_address_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_contract$_IERC20_$312_to_t_address_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n    }\n\n    function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n        mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n    }\n\n    function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n        store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function shift_right_0_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(0, value)\n\n    }\n\n    function cleanup_from_storage_t_uint128(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffff)\n    }\n\n    function extract_from_storage_value_offset_0t_uint128(slot_value) -> value {\n        value := cleanup_from_storage_t_uint128(shift_right_0_unsigned(slot_value))\n    }\n\n    function abi_encode_t_uint128_to_t_uint128(value, pos) {\n        mstore(pos, cleanup_t_uint128(value))\n    }\n\n    function shift_right_128_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(128, value)\n\n    }\n\n    function cleanup_from_storage_t_uint32(value) -> cleaned {\n        cleaned := and(value, 0xffffffff)\n    }\n\n    function extract_from_storage_value_offset_16t_uint32(slot_value) -> value {\n        value := cleanup_from_storage_t_uint32(shift_right_128_unsigned(slot_value))\n    }\n\n    function abi_encode_t_uint32_to_t_uint32(value, pos) {\n        mstore(pos, cleanup_t_uint32(value))\n    }\n\n    function shift_right_160_unsigned(value) -> newValue {\n        newValue :=\n\n        shr(160, value)\n\n    }\n\n    function extract_from_storage_value_offset_20t_uint32(slot_value) -> value {\n        value := cleanup_from_storage_t_uint32(shift_right_160_unsigned(slot_value))\n    }\n\n    // struct Config.Config_ -> struct Config.Config_\n    function abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack(value, pos)  {\n        let tail := add(pos, 0x60)\n        let slotValue := 0\n\n        {\n            // depositBaseFee\n            slotValue := sload(add(value, 0x00))\n            let memberValue0 := extract_from_storage_value_offset_0t_uint128(slotValue)\n            abi_encode_t_uint128_to_t_uint128(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // depositFeeRate\n\n            let memberValue0 := extract_from_storage_value_offset_16t_uint32(slotValue)\n            abi_encode_t_uint32_to_t_uint32(memberValue0, add(pos, 0x20))\n        }\n\n        {\n            // finalizeTxGas\n\n            let memberValue0 := extract_from_storage_value_offset_20t_uint32(slotValue)\n            abi_encode_t_uint32_to_t_uint32(memberValue0, add(pos, 0x40))\n        }\n\n    }\n\n    function abi_encode_tuple_t_struct$_Config__$2546_storage__to_t_struct$_Config__$2546_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 96)\n\n        abi_encode_t_struct$_Config__$2546_storage_to_t_struct$_Config__$2546_memory_ptr_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function checked_div_t_uint32(x, y) -> r {\n        x := cleanup_t_uint32(x)\n        y := cleanup_t_uint32(y)\n        if iszero(y) { panic_error_0x12() }\n\n        r := div(x, y)\n    }\n\n    function store_literal_in_memory_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef(memPtr) {\n\n        mstore(add(memPtr, 0), \"fee rate must be less or equal t\")\n\n        mstore(add(memPtr, 32), \"han 5%\")\n\n    }\n\n    function abi_encode_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n        store_literal_in_memory_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f41c6bbdd0d929e8e5abc05d989b610fd69195845e1b73019bdbf9133f0e3eef_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x21() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n\n    function store_literal_in_memory_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b(memPtr) {\n\n        mstore(add(memPtr, 0), \"transfer failed\")\n\n    }\n\n    function abi_encode_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 15)\n        store_literal_in_memory_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_df1797085e2da014ef9392ee25ab0802d6ce132451397172f17fd86110e2e02b_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function store_literal_in_memory_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3(memPtr) {\n\n        mstore(add(memPtr, 0), \"nonexistent relayer\")\n\n    }\n\n    function abi_encode_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n        store_literal_in_memory_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_4e8ccf89e76ca7af16ada40f1ef58d7e3980fb5e028bc896e02f3305a95e83a3_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function store_literal_in_memory_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f(memPtr) {\n\n        mstore(add(memPtr, 0), \"insufficient amount for finalize\")\n\n        mstore(add(memPtr, 32), \" fee\")\n\n    }\n\n    function abi_encode_t_stringliteral_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 36)\n        store_literal_in_memory_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f(pos)\n        end := add(pos, 64)\n    }\n\n    function abi_encode_tuple_t_stringliteral_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_bb5331156591c0e0767653a12fdecca581e314001bf062c1428f9ddd9c20ec2f_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function abi_encode_tuple_t_address_t_uint256_t_uint256_t_bytes32_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value6, value5, value4, value3, value2, value1, value0) -> tail {\n        tail := add(headStart, 224)\n\n        abi_encode_t_address_to_t_address_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_address_to_t_address_fromStack(value4,  add(headStart, 128))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value5,  add(headStart, 160))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value6,  add(headStart, 192))\n\n    }\n\n    function store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1(memPtr) {\n\n        mstore(add(memPtr, 0), \"relayer exists\")\n\n    }\n\n    function abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n        store_literal_in_memory_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n        tail := add(headStart, 32)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_eaae461068a99dca2b7bf21072280e47e6d5a1bd4905b0f12f890a47773b1fc1_to_t_string_memory_ptr_fromStack( tail)\n\n    }\n\n    function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, round_up_to_mul_of_32(length))\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        tail := add(headStart, 64)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 32), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1,  tail)\n\n    }\n\n    function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_bytes_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\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        pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\n    }\n\n    function abi_decode_t_bytes32_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_bytes32_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint8(value) -> cleaned {\n        cleaned := and(value, 0xff)\n    }\n\n    function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint8(value))\n    }\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        tail := add(headStart, 128)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_uint8_to_t_uint8_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value3,  add(headStart, 96))\n\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        tail := add(headStart, 160)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 0))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value1,  add(headStart, 32))\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value2,  add(headStart, 64))\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value3,  add(headStart, 96))\n\n        abi_encode_t_address_to_t_address_fromStack(value4,  add(headStart, 128))\n\n    }\n\n}\n","id":18,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"1280":[{"length":32,"start":5475}],"1282":[{"length":32,"start":5433}],"1284":[{"length":32,"start":5391}],"1286":[{"length":32,"start":5777}],"1288":[{"length":32,"start":5810}],"1291":[{"length":32,"start":2226}],"1294":[{"length":32,"start":2269}]},"linkReferences":{},"object":"6080604052600436106101dc5760003560e01c80638456cb5911610102578063cb11b9f411610095578063e63ea40811610064578063e63ea40814610587578063f2fde38b146105a7578063f35acf51146105c7578063fe173b97146105dc57600080fd5b8063cb11b9f414610505578063dd39f00d14610529578063e183bb5a14610549578063e30c39781461056957600080fd5b80638fbd65e6116100d15780638fbd65e61461049f5780639a8a0592146104bf578063b1cccca2146104d2578063c8dc8a0c146104e557600080fd5b80638456cb591461041b57806384b0196e1461043057806387939d78146104585780638da5cb5b1461047857600080fd5b80635aaf6cc71161017a578063715018a611610149578063715018a614610379578063788daa171461038e57806379502c55146103be57806379ba50971461040657600080fd5b80635aaf6cc7146102e85780635c975abb1461030857806360f0a5ac14610329578063638d9c561461034957600080fd5b80633f4ba83a116101b65780633f4ba83a1461024a578063423c485a1461025f5780634d5ff840146102955780635300f841146102ab57600080fd5b806310c58d65146101e85780631251d14e1461020a57806328ad6c161461022a57600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b50610208610203366004611720565b6105ef565b005b34801561021657600080fd5b50610208610225366004611720565b610603565b34801561023657600080fd5b50610208610245366004611818565b610614565b34801561025657600080fd5b50610208610625565b34801561026b57600080fd5b5061027f61027a36600461184a565b61066e565b60405161028c9190611873565b60405180910390f35b3480156102a157600080fd5b5061027f60065481565b3480156102b757600080fd5b506102db6102c63660046118a6565b60006020819052908152604090205460ff1681565b60405161028c91906118cf565b3480156102f457600080fd5b50610208610303366004611a49565b6106b6565b34801561031457600080fd5b506003546102db90600160a01b900460ff1681565b34801561033557600080fd5b506102086103443660046118a6565b610803565b34801561035557600080fd5b506102db61036436600461184a565b60086020526000908152604090205460ff1681565b34801561038557600080fd5b50610208610814565b34801561039a57600080fd5b506102db6103a936600461184a565b60076020526000908152604090205460ff1681565b3480156103ca57600080fd5b506001546103f7906001600160801b0381169063ffffffff600160801b8204811691600160a01b90041683565b60405161028c93929190611a9f565b34801561041257600080fd5b50610208610828565b34801561042757600080fd5b5061020861085d565b34801561043c57600080fd5b506104456108a4565b60405161028c9796959493929190611b93565b34801561046457600080fd5b50610208610473366004611d3a565b61092d565b34801561048457600080fd5b506002546001600160a01b03165b60405161028c9190611d75565b3480156104ab57600080fd5b506102086104ba366004611d83565b610a10565b3480156104cb57600080fd5b504661027f565b6102086104e0366004611da4565b610b04565b3480156104f157600080fd5b50610208610500366004611df4565b610bf5565b34801561051157600080fd5b5061051c620f424081565b60405161028c9190611e15565b34801561053557600080fd5b506102086105443660046118a6565b610c06565b34801561055557600080fd5b5061027f610564366004611e23565b610c17565b34801561057557600080fd5b506003546001600160a01b0316610492565b34801561059357600080fd5b506102086105a2366004611ea6565b610c5d565b3480156105b357600080fd5b506102086105c23660046118a6565b610d9d565b3480156105d357600080fd5b5061027f610e0e565b3480156105e857600080fd5b503a61027f565b6105f7610e30565b61060081610e5a565b50565b61060b610e30565b61060081610e9f565b61061c610e30565b61060081610f12565b61062d610e30565b600354600160a01b900460ff1661065f5760405162461bcd60e51b815260040161065690611f10565b60405180910390fd5b6003805460ff60a01b19169055565b600154600090620f42409061069090600160801b900463ffffffff1684611f36565b61069a9190611f6b565b6001546106b091906001600160801b0316611f83565b92915050565b805160008181526008602052604090205460ff16156106e75760405162461bcd60e51b815260040161065690611fca565b6000818152600860205260409020805460ff19166001179055600354600160a01b900460ff161561072a5760405162461bcd60e51b815260040161065690611ff8565b60006107488360000151846020015185604001518660600151610c17565b905061075d8360200151828560800151610f82565b6107795760405162461bcd60e51b815260040161065690612030565b61079961078e6002546001600160a01b031690565b828560a00151610f82565b6107b55760405162461bcd60e51b815260040161065690612064565b6107c783604001518460600151610fe5565b7fa92a9cf2c9f7f08e828b3b3ad56e58a518a0446039b53c6a35ee54340c1fbf10836040516107f691906120fc565b60405180910390a1505050565b61080b610e30565b61060081611061565b61081c610e30565b61082660006110ec565b565b60035433906001600160a01b031681146108545760405162461bcd60e51b815260040161065690612156565b610600816110ec565b610865610e30565b600354600160a01b900460ff161561088f5760405162461bcd60e51b81526004016106569061218b565b6003805460ff60a01b1916600160a01b179055565b6000606080828080836108d87f00000000000000000000000000000000000000000000000000000000000000006004611105565b6109037f00000000000000000000000000000000000000000000000000000000000000006005611105565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b3360009081526020819052604090205460ff1661095c5760405162461bcd60e51b8152600401610656906121cf565b60005b8151811015610a0c57600082828151811061097c5761097c6121df565b602090810291909101810151808201516000908152600790925260409091205490915060ff16156109bf5760405162461bcd60e51b815260040161065690612218565b6020808201805160009081526007909252604091829020805460ff19166001179055825190519183015160608401516109f99391906111b1565b5080610a0481612228565b91505061095f565b5050565b6020808201516000818152600790925260409091205460ff1615610a465760405162461bcd60e51b815260040161065690612218565b6000818152600760205260409020805460ff19166001179055608082015163ffffffff8116421115610a8a5760405162461bcd60e51b815260040161065690612263565b3360009081526020819052604090205460ff16610ab95760405162461bcd60e51b8152600401610656906121cf565b600354600160a01b900460ff1615610ae35760405162461bcd60e51b815260040161065690611ff8565b610aff83600001518460200151856040015186606001516111b1565b505050565b808063ffffffff16421115610b2b5760405162461bcd60e51b815260040161065690612263565b600354600160a01b900460ff1615610b555760405162461bcd60e51b815260040161065690611ff8565b346000610b618261066e565b905080821015610b835760405162461bcd60e51b8152600401610656906122b2565b610b8d81836122c2565b9150610baa610ba46002546001600160a01b031690565b82610fe5565b7f073bfd0ef2114072a401cb773cac34805c7a6a50ea8aa09aca0698a1608d47b54686338986868a604051610be597969594939291906122d5565b60405180910390a1505050505050565b610bfd610e30565b61060081611247565b610c0e610e30565b61060081611287565b6000610c5260065486868686604051602001610c3795949392919061233d565b60405160208183030381529060405280519060200120611313565b90505b949350505050565b610c65610e30565b6001600160a01b038316610cf5576000826001600160a01b031682604051610c8c90612389565b60006040518083038185875af1925050503d8060008114610cc9576040519150601f19603f3d011682016040523d82523d6000602084013e610cce565b606091505b5050905080610cef5760405162461bcd60e51b8152600401610656906123bb565b50610d68565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610d2390859085906004016123cb565b6020604051808303816000875af1158015610d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6691906123f9565b505b7f0c8988bc8137b371a82f0a753a05b85a2c3cdecff90c59eaf36ec6f7b3bce499338385846040516107f6949392919061242e565b610da5610e30565b600380546001600160a01b0383166001600160a01b03199091168117909155610dd66002546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60003a600154610e2b9190600160a01b900463ffffffff16611f36565b905090565b6002546001600160a01b031633146108265760405162461bcd60e51b815260040161065690612495565b6001805463ffffffff60a01b1916600160a01b63ffffffff84160217815560405160008051602061283c83398151915291610e949161252c565b60405180910390a150565b610ead6014620f424061253a565b63ffffffff168163ffffffff161115610ed85760405162461bcd60e51b815260040161065690612594565b6001805463ffffffff60801b1916600160801b63ffffffff84160217815560405160008051602061283c83398151915291610e949161252c565b80516001805460208401516040808601516001600160801b039095166001600160a01b031990931692909217600160801b63ffffffff928316021763ffffffff60a01b1916600160a01b9190941602929092178155905160008051602061283c83398151915291610e949161252c565b6000806000610f918585611340565b90925090506000816004811115610faa57610faa6125a4565b148015610fc85750856001600160a01b0316826001600160a01b0316145b80610fd95750610fd9868686611385565b925050505b9392505050565b6000826001600160a01b031682604051610ffe90612389565b60006040518083038185875af1925050503d806000811461103b576040519150601f19603f3d011682016040523d82523d6000602084013e611040565b606091505b5050905080610aff5760405162461bcd60e51b8152600401610656906125e0565b6001600160a01b03811660009081526020819052604090205460ff166110995760405162461bcd60e51b81526004016106569061261a565b6001600160a01b03811660009081526020819052604090819020805460ff19166001179055517f370e7a3077485fd8cef64916374045a1bfae1d0984617c2833e614ed87b9d0df90610e94908390611d75565b600380546001600160a01b031916905561060081611471565b606060ff831461111f57611118836114c3565b90506106b0565b81805461112b90612640565b80601f016020809104026020016040519081016040528092919081815260200182805461115790612640565b80156111a45780601f10611179576101008083540402835291602001916111a4565b820191906000526020600020905b81548152906001019060200180831161118757829003601f168201915b5050505050905092915050565b60006111bb610e0e565b9050808210156111dd5760405162461bcd60e51b8152600401610656906126ad565b6111e781836122c2565b91506111f38383610fe5565b6111fd3382610fe5565b7f02e3e72232a62e8a18c680821d40213041c2c22c1f0b30f80463eeae3320064c3386468787878760405161123897969594939291906126bd565b60405180910390a15050505050565b600180546fffffffffffffffffffffffffffffffff19166001600160801b03831617815560405160008051602061283c83398151915291610e949161252c565b6001600160a01b03811660009081526020819052604090205460ff16156112c05760405162461bcd60e51b81526004016106569061273e565b6001600160a01b03811660009081526020819052604090819020805460ff19166001179055517f7c363f8df6087ba61be7d84b7a936d5eb39ebd1ab56dd8188a27a60e3b301a2790610e94908390611d75565b60006106b0611320611502565b8360405161190160f01b8152600281019290925260228201526042902090565b60008082516041036113765760208301516040840151606085015160001a61136a8782858561158d565b9450945050505061137e565b506000905060025b9250929050565b6000806000856001600160a01b0316631626ba7e60e01b86866040516024016113af92919061274e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516113ed9190612790565b600060405180830381855afa9150503d8060008114611428576040519150601f19603f3d011682016040523d82523d6000602084013e61142d565b606091505b509150915081801561144157506020815110155b8015610fd957508051630b135d3f60e11b9061146690830160209081019084016127a7565b149695505050505050565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606060006114d083611644565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561155b57507f000000000000000000000000000000000000000000000000000000000000000046145b1561158557507f000000000000000000000000000000000000000000000000000000000000000090565b610e2b61166c565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156115c4575060009050600361163b565b6000600187878787604051600081526020016040526040516115e994939291906127d1565b6020604051602081039080840390855afa15801561160b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166116345760006001925092505061163b565b9150600090505b94509492505050565b600060ff8216601f8111156106b057604051632cd44ac360e21b815260040160405180910390fd5b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046306040516020016116e79594939291906127f9565b60405160208183030381529060405280519060200120905090565b63ffffffff81165b811461060057600080fd5b80356106b081611702565b60006020828403121561173557611735600080fd5b6000610c558484611715565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561177d5761177d611741565b6040525050565b600061178f60405190565b905061179b8282611757565b919050565b6001600160801b03811661170a565b80356106b0816117a0565b6000606082840312156117cf576117cf600080fd5b6117d96060611784565b905060006117e784846117af565b82525060206117f884848301611715565b602083015250604061180c84828501611715565b60408301525092915050565b60006060828403121561182d5761182d600080fd5b6000610c5584846117ba565b8061170a565b80356106b081611839565b60006020828403121561185f5761185f600080fd5b6000610c55848461183f565b805b82525050565b602081016106b0828461186b565b60006001600160a01b0382166106b0565b61170a81611881565b80356106b081611892565b6000602082840312156118bb576118bb600080fd5b6000610c55848461189b565b80151561186d565b602081016106b082846118c7565b600067ffffffffffffffff8211156118f7576118f7611741565b601f19601f83011660200192915050565b82818337506000910152565b6000611927611922846118dd565b611784565b90508281526020810184848401111561194257611942600080fd5b61194d848285611908565b509392505050565b600082601f83011261196957611969600080fd5b8135610c55848260208601611914565b600060c0828403121561198e5761198e600080fd5b61199860c0611784565b905060006119a6848461183f565b82525060206119b78484830161189b565b60208301525060406119cb8482850161189b565b60408301525060606119df8482850161183f565b606083015250608082013567ffffffffffffffff811115611a0257611a02600080fd5b611a0e84828501611955565b60808301525060a082013567ffffffffffffffff811115611a3157611a31600080fd5b611a3d84828501611955565b60a08301525092915050565b600060208284031215611a5e57611a5e600080fd5b813567ffffffffffffffff811115611a7857611a78600080fd5b610c5584828501611979565b6001600160801b03811661186d565b63ffffffff811661186d565b60608101611aad8286611a84565b611aba6020830185611a93565b610c556040830184611a93565b6001600160f81b0319811661186d565b60005b83811015611af2578181015183820152602001611ada565b50506000910152565b6000611b05825190565b808452602084019350611b1c818560208601611ad7565b601f01601f19169290920192915050565b61186d81611881565b6000611b42838361186b565b505060200190565b6000611b54825190565b80845260209384019383018060005b83811015611b88578151611b778882611b36565b975060208301925050600101611b63565b509495945050505050565b60e08101611ba1828a611ac7565b8181036020830152611bb38189611afb565b90508181036040830152611bc78188611afb565b9050611bd6606083018761186b565b611be36080830186611b2d565b611bf060a083018561186b565b81810360c0830152611c028184611b4a565b9998505050505050505050565b600067ffffffffffffffff821115611c2957611c29611741565b5060209081020190565b600060a08284031215611c4857611c48600080fd5b611c5260a0611784565b90506000611c60848461183f565b8252506020611c718484830161183f565b6020830152506040611c858482850161189b565b6040830152506060611c998482850161183f565b6060830152506080611cad84828501611715565b60808301525092915050565b6000611cc761192284611c0f565b83815290506020810160a08402830185811115611ce657611ce6600080fd5b835b81811015611d0c5780611cfb8882611c33565b84525060209092019160a001611ce8565b5050509392505050565b600082601f830112611d2a57611d2a600080fd5b8135610c55848260208601611cb9565b600060208284031215611d4f57611d4f600080fd5b813567ffffffffffffffff811115611d6957611d69600080fd5b610c5584828501611d16565b602081016106b08284611b2d565b600060a08284031215611d9857611d98600080fd5b6000610c558484611c33565b600080600060608486031215611dbc57611dbc600080fd5b6000611dc8868661189b565b9350506020611dd98682870161183f565b9250506040611dea86828701611715565b9150509250925092565b600060208284031215611e0957611e09600080fd5b6000610c5584846117af565b602081016106b08284611a93565b60008060008060808587031215611e3c57611e3c600080fd5b6000611e48878761183f565b9450506020611e598782880161189b565b9350506040611e6a8782880161189b565b9250506060611e7b8782880161183f565b91505092959194509250565b60006106b082611881565b61170a81611e87565b80356106b081611e92565b600080600060608486031215611ebe57611ebe600080fd5b6000611eca8686611e9b565b9350506020611edb8682870161189b565b9250506040611dea8682870161183f565b600a8152600060208201691b9bdd081c185d5cd95960b21b815291505b5060200190565b602080825281016106b081611eec565b634e487b7160e01b600052601160045260246000fd5b818102808215838204851417611f4e57611f4e611f20565b5092915050565b634e487b7160e01b600052601260045260246000fd5b6000825b925082611f7e57611f7e611f55565b500490565b808201808211156106b0576106b0611f20565b601981526000602082017f6465706f7369747320616c72656164792077697468647261770000000000000081529150611f09565b602080825281016106b081611f96565b60078152600060208201667061757365642160c81b81529150611f09565b602080825281016106b081611fda565b601181526000602082017034b73b30b634b2103232b837b9b4ba37b960791b81529150611f09565b602080825281016106b081612008565b600d81526000602082016c34b73b30b634b21030b236b4b760991b81529150611f09565b602080825281016106b081612040565b805160009060c0840190612088858261186b565b50602083015161209b6020860182611b2d565b5060408301516120ae6040860182611b2d565b5060608301516120c1606086018261186b565b50608083015184820360808601526120d98282611afb565b91505060a083015184820360a08601526120f38282611afb565b95945050505050565b60208082528101610fde8184612074565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b602082015291505b5060400190565b602080825281016106b08161210d565b600e81526000602082016d185b1c9958591e481c185d5cd95960921b81529150611f09565b602080825281016106b081612166565b601781526000602082017f63616c6c6572206973206e6f7420612072656c6179657200000000000000000081529150611f09565b602080825281016106b08161219b565b634e487b7160e01b600052603260045260246000fd5b600c81526000602082016b1d1e08199a5b985b1a5e995960a21b81529150611f09565b602080825281016106b0816121f5565b6000600019820361223b5761223b611f20565b5060010190565b600a8152600060208201691d1e081d1a5b595bdd5d60b21b81529150611f09565b602080825281016106b081612242565b602281526000602082017f696e73756666696369656e742076616c756520666f72206465706f7369742066815261656560f01b6020820152915061214f565b602080825281016106b081612273565b818103818111156106b0576106b0611f20565b60e081016122e3828a61186b565b6122f0602083018961186b565b6122fd6040830188611b2d565b61230a6060830187611b2d565b612317608083018661186b565b61232460a083018561186b565b61233160c0830184611a93565b98975050505050505050565b60a0810161234b828861186b565b612358602083018761186b565b6123656040830186611b2d565b6123726060830185611b2d565b61237f608083018461186b565b9695505050505050565b6000816106b0565b60138152600060208201721dda5d1a191c985dc8195d1a0819985a5b1959606a1b81529150611f09565b602080825281016106b081612391565b604081016123d98285611b2d565b610fde602083018461186b565b80151561170a565b80516106b0816123e6565b60006020828403121561240e5761240e600080fd5b6000610c5584846123ee565b60006106b082611e87565b61186d8161241a565b6080810161243c8287611b2d565b6124496020830186611b2d565b6124566040830185612425565b6120f3606083018461186b565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000611f09565b602080825281016106b081612463565b60006001600160801b0382166106b0565b60006106b06124c58360801c90565b63ffffffff1690565b60006106b06124c58360a01c90565b805460608301906124ed816124a5565b6124f78582611a84565b50612501816124b6565b61250e6020860182611a93565b50612518816124ce565b6125256040860182611a93565b5050505050565b606081016106b082846124dd565b600063ffffffff8216915063ffffffff8316611f6f565b602681526000602082017f6665652072617465206d757374206265206c657373206f7220657175616c207481526568616e20352560d01b6020820152915061214f565b602080825281016106b081612551565b634e487b7160e01b600052602160045260246000fd5b600f81526000602082016e1d1c985b9cd9995c8819985a5b1959608a1b81529150611f09565b602080825281016106b0816125ba565b60138152600060208201723737b732bc34b9ba32b73a103932b630bcb2b960691b81529150611f09565b602080825281016106b0816125f0565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061265457607f821691505b6020821081036126665761266661262a565b50919050565b602481526000602082017f696e73756666696369656e7420616d6f756e7420666f722066696e616c697a658152632066656560e01b6020820152915061214f565b602080825281016106b08161266c565b60e081016126cb828a611b2d565b6126d8602083018961186b565b6126e5604083018861186b565b6126f2606083018761186b565b6126ff6080830186611b2d565b61270c60a083018561186b565b61233160c083018461186b565b600e81526000602082016d72656c617965722065786973747360901b81529150611f09565b602080825281016106b081612719565b6040810161275c828561186b565b8181036020830152610c558184611afb565b6000612778825190565b612786818560208601611ad7565b9290920192915050565b6000610fde828461276e565b80516106b081611839565b6000602082840312156127bc576127bc600080fd5b6000610c55848461279c565b60ff811661186d565b608081016127df828761186b565b6127ec60208301866127c8565b612456604083018561186b565b60a08101612807828861186b565b612814602083018761186b565b612821604083018661186b565b61282e606083018561186b565b61237f6080830184611b2d56fec3b5a50e47b6b36cbfdf9f2816f54bcadaa46c6d4469b530f5e1fd8cc70e8fd8a2646970667358221220a0319d84374318ba8d4f2dd328006be686734cc59cdd1df72590e7e532b0900764736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1DC JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8456CB59 GT PUSH2 0x102 JUMPI DUP1 PUSH4 0xCB11B9F4 GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xE63EA408 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xE63EA408 EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0xF35ACF51 EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0xFE173B97 EQ PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xCB11B9F4 EQ PUSH2 0x505 JUMPI DUP1 PUSH4 0xDD39F00D EQ PUSH2 0x529 JUMPI DUP1 PUSH4 0xE183BB5A EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x569 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8FBD65E6 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0x8FBD65E6 EQ PUSH2 0x49F JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x4BF JUMPI DUP1 PUSH4 0xB1CCCCA2 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0xC8DC8A0C EQ PUSH2 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0x84B0196E EQ PUSH2 0x430 JUMPI DUP1 PUSH4 0x87939D78 EQ PUSH2 0x458 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x478 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5AAF6CC7 GT PUSH2 0x17A JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x149 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0x788DAA17 EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0x79502C55 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x406 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5AAF6CC7 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x308 JUMPI DUP1 PUSH4 0x60F0A5AC EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0x638D9C56 EQ PUSH2 0x349 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3F4BA83A GT PUSH2 0x1B6 JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x423C485A EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x4D5FF840 EQ PUSH2 0x295 JUMPI DUP1 PUSH4 0x5300F841 EQ PUSH2 0x2AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x10C58D65 EQ PUSH2 0x1E8 JUMPI DUP1 PUSH4 0x1251D14E EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x28AD6C16 EQ PUSH2 0x22A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x1E3 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x203 CALLDATASIZE PUSH1 0x4 PUSH2 0x1720 JUMP JUMPDEST PUSH2 0x5EF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x1720 JUMP JUMPDEST PUSH2 0x603 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x245 CALLDATASIZE PUSH1 0x4 PUSH2 0x1818 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x625 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27F PUSH2 0x27A CALLDATASIZE PUSH1 0x4 PUSH2 0x184A JUMP JUMPDEST PUSH2 0x66E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x1873 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27F PUSH1 0x6 SLOAD DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DB PUSH2 0x2C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x18A6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x18CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x303 CALLDATASIZE PUSH1 0x4 PUSH2 0x1A49 JUMP JUMPDEST PUSH2 0x6B6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x314 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x2DB SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x335 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x344 CALLDATASIZE PUSH1 0x4 PUSH2 0x18A6 JUMP JUMPDEST PUSH2 0x803 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DB PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x184A JUMP JUMPDEST PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x385 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x814 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DB PUSH2 0x3A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x184A JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x3F7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x80 SHL DUP3 DIV DUP2 AND SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV AND DUP4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1A9F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x412 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x828 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x427 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x85D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x445 PUSH2 0x8A4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1B93 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x473 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D3A JUMP JUMPDEST PUSH2 0x92D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x484 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x1D75 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x4BA CALLDATASIZE PUSH1 0x4 PUSH2 0x1D83 JUMP JUMPDEST PUSH2 0xA10 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CHAINID PUSH2 0x27F JUMP JUMPDEST PUSH2 0x208 PUSH2 0x4E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1DA4 JUMP JUMPDEST PUSH2 0xB04 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x500 CALLDATASIZE PUSH1 0x4 PUSH2 0x1DF4 JUMP JUMPDEST PUSH2 0xBF5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x511 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x51C PUSH3 0xF4240 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x1E15 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x535 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x544 CALLDATASIZE PUSH1 0x4 PUSH2 0x18A6 JUMP JUMPDEST PUSH2 0xC06 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27F PUSH2 0x564 CALLDATASIZE PUSH1 0x4 PUSH2 0x1E23 JUMP JUMPDEST PUSH2 0xC17 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x575 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x492 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x593 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x5A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1EA6 JUMP JUMPDEST PUSH2 0xC5D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x5C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x18A6 JUMP JUMPDEST PUSH2 0xD9D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27F PUSH2 0xE0E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GASPRICE PUSH2 0x27F JUMP JUMPDEST PUSH2 0x5F7 PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0xE5A JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x60B PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x61C PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0xF12 JUMP JUMPDEST PUSH2 0x62D PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND PUSH2 0x65F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x1F10 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SWAP1 PUSH3 0xF4240 SWAP1 PUSH2 0x690 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP5 PUSH2 0x1F36 JUMP JUMPDEST PUSH2 0x69A SWAP2 SWAP1 PUSH2 0x1F6B JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x6B0 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB AND PUSH2 0x1F83 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x6E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x1FCA JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x8 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x72A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x1FF8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x748 DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x60 ADD MLOAD PUSH2 0xC17 JUMP JUMPDEST SWAP1 POP PUSH2 0x75D DUP4 PUSH1 0x20 ADD MLOAD DUP3 DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0xF82 JUMP JUMPDEST PUSH2 0x779 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2030 JUMP JUMPDEST PUSH2 0x799 PUSH2 0x78E PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST DUP3 DUP6 PUSH1 0xA0 ADD MLOAD PUSH2 0xF82 JUMP JUMPDEST PUSH2 0x7B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2064 JUMP JUMPDEST PUSH2 0x7C7 DUP4 PUSH1 0x40 ADD MLOAD DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0xFE5 JUMP JUMPDEST PUSH32 0xA92A9CF2C9F7F08E828B3B3AD56E58A518A0446039B53C6A35EE54340C1FBF10 DUP4 PUSH1 0x40 MLOAD PUSH2 0x7F6 SWAP2 SWAP1 PUSH2 0x20FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x80B PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0x1061 JUMP JUMPDEST PUSH2 0x81C PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x826 PUSH1 0x0 PUSH2 0x10EC JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x3 SLOAD CALLER SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 EQ PUSH2 0x854 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2156 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0x10EC JUMP JUMPDEST PUSH2 0x865 PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x88F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x218B JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 DUP3 DUP1 DUP1 DUP4 PUSH2 0x8D8 PUSH32 0x0 PUSH1 0x4 PUSH2 0x1105 JUMP JUMPDEST PUSH2 0x903 PUSH32 0x0 PUSH1 0x5 PUSH2 0x1105 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0xF PUSH1 0xF8 SHL SWAP12 SWAP4 SWAP11 POP SWAP2 SWAP9 POP CHAINID SWAP8 POP ADDRESS SWAP7 POP SWAP5 POP SWAP3 POP SWAP1 POP JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x95C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x21CF JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0xA0C JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x97C JUMPI PUSH2 0x97C PUSH2 0x21DF JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD DUP2 ADD MLOAD DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND ISZERO PUSH2 0x9BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2218 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD DUP1 MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP3 MLOAD SWAP1 MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH2 0x9F9 SWAP4 SWAP2 SWAP1 PUSH2 0x11B1 JUMP JUMPDEST POP DUP1 PUSH2 0xA04 DUP2 PUSH2 0x2228 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x95F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xA46 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2218 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x80 DUP3 ADD MLOAD PUSH4 0xFFFFFFFF DUP2 AND TIMESTAMP GT ISZERO PUSH2 0xA8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2263 JUMP JUMPDEST CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xAB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x21CF JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xAE3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x1FF8 JUMP JUMPDEST PUSH2 0xAFF DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD DUP7 PUSH1 0x60 ADD MLOAD PUSH2 0x11B1 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH4 0xFFFFFFFF AND TIMESTAMP GT ISZERO PUSH2 0xB2B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2263 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xB55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x1FF8 JUMP JUMPDEST CALLVALUE PUSH1 0x0 PUSH2 0xB61 DUP3 PUSH2 0x66E JUMP JUMPDEST SWAP1 POP DUP1 DUP3 LT ISZERO PUSH2 0xB83 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x22B2 JUMP JUMPDEST PUSH2 0xB8D DUP2 DUP4 PUSH2 0x22C2 JUMP JUMPDEST SWAP2 POP PUSH2 0xBAA PUSH2 0xBA4 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST DUP3 PUSH2 0xFE5 JUMP JUMPDEST PUSH32 0x73BFD0EF2114072A401CB773CAC34805C7A6A50EA8AA09ACA0698A1608D47B5 CHAINID DUP7 CALLER DUP10 DUP7 DUP7 DUP11 PUSH1 0x40 MLOAD PUSH2 0xBE5 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x22D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xBFD PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0x1247 JUMP JUMPDEST PUSH2 0xC0E PUSH2 0xE30 JUMP JUMPDEST PUSH2 0x600 DUP2 PUSH2 0x1287 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC52 PUSH1 0x6 SLOAD DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC37 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x233D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x1313 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0xC65 PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xCF5 JUMPI PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH2 0xC8C SWAP1 PUSH2 0x2389 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 0xCC9 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 0xCCE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xCEF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x23BB JUMP JUMPDEST POP PUSH2 0xD68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH2 0xD23 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x23CB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD42 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 0xD66 SWAP2 SWAP1 PUSH2 0x23F9 JUMP JUMPDEST POP JUMPDEST PUSH32 0xC8988BC8137B371A82F0A753A05B85A2C3CDECFF90C59EAF36EC6F7B3BCE499 CALLER DUP4 DUP6 DUP5 PUSH1 0x40 MLOAD PUSH2 0x7F6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x242E JUMP JUMPDEST PUSH2 0xDA5 PUSH2 0xE30 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP2 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH2 0xDD6 PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP JUMP JUMPDEST PUSH1 0x0 GASPRICE PUSH1 0x1 SLOAD PUSH2 0xE2B SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x1F36 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2495 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH4 0xFFFFFFFF DUP5 AND MUL OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0xE94 SWAP2 PUSH2 0x252C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xEAD PUSH1 0x14 PUSH3 0xF4240 PUSH2 0x253A JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP2 PUSH4 0xFFFFFFFF AND GT ISZERO PUSH2 0xED8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x2594 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0x80 SHL NOT AND PUSH1 0x1 PUSH1 0x80 SHL PUSH4 0xFFFFFFFF DUP5 AND MUL OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0xE94 SWAP2 PUSH2 0x252C JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x80 SHL PUSH4 0xFFFFFFFF SWAP3 DUP4 AND MUL OR PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL SWAP2 SWAP1 SWAP5 AND MUL SWAP3 SWAP1 SWAP3 OR DUP2 SSTORE SWAP1 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0xE94 SWAP2 PUSH2 0x252C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xF91 DUP6 DUP6 PUSH2 0x1340 JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xFAA JUMPI PUSH2 0xFAA PUSH2 0x25A4 JUMP JUMPDEST EQ DUP1 ISZERO PUSH2 0xFC8 JUMPI POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST DUP1 PUSH2 0xFD9 JUMPI POP PUSH2 0xFD9 DUP7 DUP7 DUP7 PUSH2 0x1385 JUMP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH2 0xFFE SWAP1 PUSH2 0x2389 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 0x103B 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 0x1040 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xAFF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x25E0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1099 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x261A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x370E7A3077485FD8CEF64916374045A1BFAE1D0984617C2833E614ED87B9D0DF SWAP1 PUSH2 0xE94 SWAP1 DUP4 SWAP1 PUSH2 0x1D75 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE PUSH2 0x600 DUP2 PUSH2 0x1471 JUMP JUMPDEST PUSH1 0x60 PUSH1 0xFF DUP4 EQ PUSH2 0x111F JUMPI PUSH2 0x1118 DUP4 PUSH2 0x14C3 JUMP JUMPDEST SWAP1 POP PUSH2 0x6B0 JUMP JUMPDEST DUP2 DUP1 SLOAD PUSH2 0x112B SWAP1 PUSH2 0x2640 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 0x1157 SWAP1 PUSH2 0x2640 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x11A4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1179 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x11A4 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 0x1187 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11BB PUSH2 0xE0E JUMP JUMPDEST SWAP1 POP DUP1 DUP3 LT ISZERO PUSH2 0x11DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x26AD JUMP JUMPDEST PUSH2 0x11E7 DUP2 DUP4 PUSH2 0x22C2 JUMP JUMPDEST SWAP2 POP PUSH2 0x11F3 DUP4 DUP4 PUSH2 0xFE5 JUMP JUMPDEST PUSH2 0x11FD CALLER DUP3 PUSH2 0xFE5 JUMP JUMPDEST PUSH32 0x2E3E72232A62E8A18C680821D40213041C2C22C1F0B30F80463EEAE3320064C CALLER DUP7 CHAINID DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x1238 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x26BD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP4 AND OR DUP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x283C DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0xE94 SWAP2 PUSH2 0x252C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x12C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x656 SWAP1 PUSH2 0x273E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD PUSH32 0x7C363F8DF6087BA61BE7D84B7A936D5EB39EBD1AB56DD8188A27A60E3B301A27 SWAP1 PUSH2 0xE94 SWAP1 DUP4 SWAP1 PUSH2 0x1D75 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 PUSH2 0x1320 PUSH2 0x1502 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL 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 0x1376 JUMPI PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x136A DUP8 DUP3 DUP6 DUP6 PUSH2 0x158D JUMP JUMPDEST SWAP5 POP SWAP5 POP POP POP POP PUSH2 0x137E JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP PUSH1 0x2 JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x13AF SWAP3 SWAP2 SWAP1 PUSH2 0x274E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 DUP2 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 MSTORE SWAP1 MLOAD PUSH2 0x13ED SWAP2 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS STATICCALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1428 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 0x142D JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x1441 JUMPI POP PUSH1 0x20 DUP2 MLOAD LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xFD9 JUMPI POP DUP1 MLOAD PUSH4 0xB135D3F PUSH1 0xE1 SHL SWAP1 PUSH2 0x1466 SWAP1 DUP4 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP1 DUP5 ADD PUSH2 0x27A7 JUMP JUMPDEST EQ SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 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 PUSH1 0x60 PUSH1 0x0 PUSH2 0x14D0 DUP4 PUSH2 0x1644 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH32 0x0 AND EQ DUP1 ISZERO PUSH2 0x155B JUMPI POP PUSH32 0x0 CHAINID EQ JUMPDEST ISZERO PUSH2 0x1585 JUMPI POP PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH2 0xE2B PUSH2 0x166C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP4 GT ISZERO PUSH2 0x15C4 JUMPI POP PUSH1 0x0 SWAP1 POP PUSH1 0x3 PUSH2 0x163B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP8 DUP8 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x15E9 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27D1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x160B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1634 JUMPI PUSH1 0x0 PUSH1 0x1 SWAP3 POP SWAP3 POP POP PUSH2 0x163B 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 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2CD44AC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH32 0x0 PUSH32 0x0 CHAINID ADDRESS PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x16E7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27F9 JUMP JUMPDEST 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 PUSH4 0xFFFFFFFF DUP2 AND JUMPDEST DUP2 EQ PUSH2 0x600 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x6B0 DUP2 PUSH2 0x1702 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1735 JUMPI PUSH2 0x1735 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x1715 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x177D JUMPI PUSH2 0x177D PUSH2 0x1741 JUMP JUMPDEST PUSH1 0x40 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x178F PUSH1 0x40 MLOAD SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x179B DUP3 DUP3 PUSH2 0x1757 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x170A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x6B0 DUP2 PUSH2 0x17A0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17CF JUMPI PUSH2 0x17CF PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x17D9 PUSH1 0x60 PUSH2 0x1784 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17E7 DUP5 DUP5 PUSH2 0x17AF JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x17F8 DUP5 DUP5 DUP4 ADD PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x180C DUP5 DUP3 DUP6 ADD PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x182D JUMPI PUSH2 0x182D PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x17BA JUMP JUMPDEST DUP1 PUSH2 0x170A JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x6B0 DUP2 PUSH2 0x1839 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x185F JUMPI PUSH2 0x185F PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x183F JUMP JUMPDEST DUP1 JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x186B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6B0 JUMP JUMPDEST PUSH2 0x170A DUP2 PUSH2 0x1881 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x6B0 DUP2 PUSH2 0x1892 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18BB JUMPI PUSH2 0x18BB PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x189B JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x186D JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x18C7 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x18F7 JUMPI PUSH2 0x18F7 PUSH2 0x1741 JUMP JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1927 PUSH2 0x1922 DUP5 PUSH2 0x18DD JUMP JUMPDEST PUSH2 0x1784 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1942 JUMPI PUSH2 0x1942 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x194D DUP5 DUP3 DUP6 PUSH2 0x1908 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1969 JUMPI PUSH2 0x1969 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC55 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1914 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x198E JUMPI PUSH2 0x198E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1998 PUSH1 0xC0 PUSH2 0x1784 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x19A6 DUP5 DUP5 PUSH2 0x183F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x19B7 DUP5 DUP5 DUP4 ADD PUSH2 0x189B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x19CB DUP5 DUP3 DUP6 ADD PUSH2 0x189B JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x19DF DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A02 JUMPI PUSH2 0x1A02 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A0E DUP5 DUP3 DUP6 ADD PUSH2 0x1955 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A31 JUMPI PUSH2 0x1A31 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1A3D DUP5 DUP3 DUP6 ADD PUSH2 0x1955 JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A5E JUMPI PUSH2 0x1A5E PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A78 JUMPI PUSH2 0x1A78 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC55 DUP5 DUP3 DUP6 ADD PUSH2 0x1979 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND PUSH2 0x186D JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND PUSH2 0x186D JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x1AAD DUP3 DUP7 PUSH2 0x1A84 JUMP JUMPDEST PUSH2 0x1ABA PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A93 JUMP JUMPDEST PUSH2 0xC55 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A93 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT DUP2 AND PUSH2 0x186D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1AF2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1ADA JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B05 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH2 0x1B1C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1AD7 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x186D DUP2 PUSH2 0x1881 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B42 DUP4 DUP4 PUSH2 0x186B JUMP JUMPDEST POP POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B54 DUP3 MLOAD SWAP1 JUMP JUMPDEST DUP1 DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 DUP4 ADD DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B88 JUMPI DUP2 MLOAD PUSH2 0x1B77 DUP9 DUP3 PUSH2 0x1B36 JUMP JUMPDEST SWAP8 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 ADD PUSH2 0x1B63 JUMP JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH2 0x1BA1 DUP3 DUP11 PUSH2 0x1AC7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1BB3 DUP2 DUP10 PUSH2 0x1AFB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1BC7 DUP2 DUP9 PUSH2 0x1AFB JUMP JUMPDEST SWAP1 POP PUSH2 0x1BD6 PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x1BE3 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x1BF0 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x1C02 DUP2 DUP5 PUSH2 0x1B4A JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1C29 JUMPI PUSH2 0x1C29 PUSH2 0x1741 JUMP JUMPDEST POP PUSH1 0x20 SWAP1 DUP2 MUL ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C48 JUMPI PUSH2 0x1C48 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C52 PUSH1 0xA0 PUSH2 0x1784 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C60 DUP5 DUP5 PUSH2 0x183F JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 PUSH2 0x1C71 DUP5 DUP5 DUP4 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1C85 DUP5 DUP3 DUP6 ADD PUSH2 0x189B JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1C99 DUP5 DUP3 DUP6 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x1CAD DUP5 DUP3 DUP6 ADD PUSH2 0x1715 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CC7 PUSH2 0x1922 DUP5 PUSH2 0x1C0F JUMP JUMPDEST DUP4 DUP2 MSTORE SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0xA0 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE6 PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1D0C JUMPI DUP1 PUSH2 0x1CFB DUP9 DUP3 PUSH2 0x1C33 JUMP JUMPDEST DUP5 MSTORE POP PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0xA0 ADD PUSH2 0x1CE8 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1D2A JUMPI PUSH2 0x1D2A PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC55 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1CB9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D4F JUMPI PUSH2 0x1D4F PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D69 JUMPI PUSH2 0x1D69 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC55 DUP5 DUP3 DUP6 ADD PUSH2 0x1D16 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D98 JUMPI PUSH2 0x1D98 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x1C33 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1DBC JUMPI PUSH2 0x1DBC PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DC8 DUP7 DUP7 PUSH2 0x189B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1DD9 DUP7 DUP3 DUP8 ADD PUSH2 0x183F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1DEA DUP7 DUP3 DUP8 ADD PUSH2 0x1715 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E09 JUMPI PUSH2 0x1E09 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x17AF JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x1A93 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1E3C JUMPI PUSH2 0x1E3C PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1E48 DUP8 DUP8 PUSH2 0x183F JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x1E59 DUP8 DUP3 DUP9 ADD PUSH2 0x189B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x1E6A DUP8 DUP3 DUP9 ADD PUSH2 0x189B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 PUSH2 0x1E7B DUP8 DUP3 DUP9 ADD PUSH2 0x183F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 DUP3 PUSH2 0x1881 JUMP JUMPDEST PUSH2 0x170A DUP2 PUSH2 0x1E87 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x6B0 DUP2 PUSH2 0x1E92 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1EBE JUMPI PUSH2 0x1EBE PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1ECA DUP7 DUP7 PUSH2 0x1E9B JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1EDB DUP7 DUP3 DUP8 ADD PUSH2 0x189B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1DEA DUP7 DUP3 DUP8 ADD PUSH2 0x183F JUMP JUMPDEST PUSH1 0xA DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH10 0x1B9BDD081C185D5CD959 PUSH1 0xB2 SHL DUP2 MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x1EEC JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 MUL DUP1 DUP3 ISZERO DUP4 DUP3 DIV DUP6 EQ OR PUSH2 0x1F4E JUMPI PUSH2 0x1F4E PUSH2 0x1F20 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 JUMPDEST SWAP3 POP DUP3 PUSH2 0x1F7E JUMPI PUSH2 0x1F7E PUSH2 0x1F55 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1F20 JUMP JUMPDEST PUSH1 0x19 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x6465706F7369747320616C726561647920776974686472617700000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x1F96 JUMP JUMPDEST PUSH1 0x7 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH7 0x70617573656421 PUSH1 0xC8 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x1FDA JUMP JUMPDEST PUSH1 0x11 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH17 0x34B73B30B634B2103232B837B9B4BA37B9 PUSH1 0x79 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2008 JUMP JUMPDEST PUSH1 0xD DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH13 0x34B73B30B634B21030B236B4B7 PUSH1 0x99 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2040 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x0 SWAP1 PUSH1 0xC0 DUP5 ADD SWAP1 PUSH2 0x2088 DUP6 DUP3 PUSH2 0x186B JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x209B PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1B2D JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x20AE PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1B2D JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x20C1 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x186B JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x20D9 DUP3 DUP3 PUSH2 0x1AFB JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0xA0 DUP7 ADD MSTORE PUSH2 0x20F3 DUP3 DUP3 PUSH2 0x1AFB JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0xFDE DUP2 DUP5 PUSH2 0x2074 JUMP JUMPDEST PUSH1 0x29 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x4F776E61626C6532537465703A2063616C6C6572206973206E6F742074686520 DUP2 MSTORE PUSH9 0x3732BB9037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP JUMPDEST POP PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x210D JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x185B1C9958591E481C185D5CD959 PUSH1 0x92 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2166 JUMP JUMPDEST PUSH1 0x17 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x63616C6C6572206973206E6F7420612072656C61796572000000000000000000 DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x219B JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0xC DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH12 0x1D1E08199A5B985B1A5E9959 PUSH1 0xA2 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x21F5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 SUB PUSH2 0x223B JUMPI PUSH2 0x223B PUSH2 0x1F20 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0xA DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH10 0x1D1E081D1A5B595BDD5D PUSH1 0xB2 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2242 JUMP JUMPDEST PUSH1 0x22 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E73756666696369656E742076616C756520666F72206465706F7369742066 DUP2 MSTORE PUSH2 0x6565 PUSH1 0xF0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x214F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2273 JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x6B0 JUMPI PUSH2 0x6B0 PUSH2 0x1F20 JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH2 0x22E3 DUP3 DUP11 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x22F0 PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x22FD PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x230A PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x2317 PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2324 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2331 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x1A93 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x234B DUP3 DUP9 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2358 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2365 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x2372 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x237F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x186B JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x13 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH19 0x1DDA5D1A191C985DC8195D1A0819985A5B1959 PUSH1 0x6A SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2391 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x23D9 DUP3 DUP6 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0xFDE PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x186B JUMP JUMPDEST DUP1 ISZERO ISZERO PUSH2 0x170A JUMP JUMPDEST DUP1 MLOAD PUSH2 0x6B0 DUP2 PUSH2 0x23E6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240E JUMPI PUSH2 0x240E PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x23EE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 DUP3 PUSH2 0x1E87 JUMP JUMPDEST PUSH2 0x186D DUP2 PUSH2 0x241A JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x243C DUP3 DUP8 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x2449 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x2456 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x2425 JUMP JUMPDEST PUSH2 0x20F3 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x186B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 SWAP2 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2463 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP3 AND PUSH2 0x6B0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 PUSH2 0x24C5 DUP4 PUSH1 0x80 SHR SWAP1 JUMP JUMPDEST PUSH4 0xFFFFFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 PUSH2 0x24C5 DUP4 PUSH1 0xA0 SHR SWAP1 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x60 DUP4 ADD SWAP1 PUSH2 0x24ED DUP2 PUSH2 0x24A5 JUMP JUMPDEST PUSH2 0x24F7 DUP6 DUP3 PUSH2 0x1A84 JUMP JUMPDEST POP PUSH2 0x2501 DUP2 PUSH2 0x24B6 JUMP JUMPDEST PUSH2 0x250E PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1A93 JUMP JUMPDEST POP PUSH2 0x2518 DUP2 PUSH2 0x24CE JUMP JUMPDEST PUSH2 0x2525 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1A93 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD PUSH2 0x6B0 DUP3 DUP5 PUSH2 0x24DD JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP2 POP PUSH4 0xFFFFFFFF DUP4 AND PUSH2 0x1F6F JUMP JUMPDEST PUSH1 0x26 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x6665652072617465206D757374206265206C657373206F7220657175616C2074 DUP2 MSTORE PUSH6 0x68616E203525 PUSH1 0xD0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x214F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2551 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0xF DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH15 0x1D1C985B9CD9995C8819985A5B1959 PUSH1 0x8A SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x25BA JUMP JUMPDEST PUSH1 0x13 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH19 0x3737B732BC34B9BA32B73A103932B630BCB2B9 PUSH1 0x69 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x25F0 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2654 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2666 JUMPI PUSH2 0x2666 PUSH2 0x262A JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x24 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH32 0x696E73756666696369656E7420616D6F756E7420666F722066696E616C697A65 DUP2 MSTORE PUSH4 0x20666565 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD MSTORE SWAP2 POP PUSH2 0x214F JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x266C JUMP JUMPDEST PUSH1 0xE0 DUP2 ADD PUSH2 0x26CB DUP3 DUP11 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x26D8 PUSH1 0x20 DUP4 ADD DUP10 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x26E5 PUSH1 0x40 DUP4 ADD DUP9 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x26F2 PUSH1 0x60 DUP4 ADD DUP8 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x26FF PUSH1 0x80 DUP4 ADD DUP7 PUSH2 0x1B2D JUMP JUMPDEST PUSH2 0x270C PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2331 PUSH1 0xC0 DUP4 ADD DUP5 PUSH2 0x186B JUMP JUMPDEST PUSH1 0xE DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH14 0x72656C6179657220657869737473 PUSH1 0x90 SHL DUP2 MSTORE SWAP2 POP PUSH2 0x1F09 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD PUSH2 0x6B0 DUP2 PUSH2 0x2719 JUMP JUMPDEST PUSH1 0x40 DUP2 ADD PUSH2 0x275C DUP3 DUP6 PUSH2 0x186B JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xC55 DUP2 DUP5 PUSH2 0x1AFB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2778 DUP3 MLOAD SWAP1 JUMP JUMPDEST PUSH2 0x2786 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1AD7 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFDE DUP3 DUP5 PUSH2 0x276E JUMP JUMPDEST DUP1 MLOAD PUSH2 0x6B0 DUP2 PUSH2 0x1839 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27BC JUMPI PUSH2 0x27BC PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC55 DUP5 DUP5 PUSH2 0x279C JUMP JUMPDEST PUSH1 0xFF DUP2 AND PUSH2 0x186D JUMP JUMPDEST PUSH1 0x80 DUP2 ADD PUSH2 0x27DF DUP3 DUP8 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x27EC PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x27C8 JUMP JUMPDEST PUSH2 0x2456 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH1 0xA0 DUP2 ADD PUSH2 0x2807 DUP3 DUP9 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2814 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x2821 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x282E PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x186B JUMP JUMPDEST PUSH2 0x237F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x1B2D JUMP INVALID 0xC3 0xB5 0xA5 0xE SELFBALANCE 0xB6 0xB3 PUSH13 0xBFDF9F2816F54BCADAA46C6D44 PUSH10 0xB530F5E1FD8CC70E8FD8 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG0 BALANCE SWAP14 DUP5 CALLDATACOPY NUMBER XOR 0xBA DUP14 0x4F 0x2D 0xD3 0x28 STOP PUSH12 0xE686734CC59CDD1DF72590E7 0xE5 ORIGIN 0xB0 SWAP1 SMOD PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"281:4539:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1137:115:15;;;;;;;;;;-1:-1:-1;1137:115:15;;;;;:::i;:::-;;:::i;:::-;;1015:119;;;;;;;;;;-1:-1:-1;1015:119:15;;;;;:::i;:::-;;:::i;794:95::-;;;;;;;;;;-1:-1:-1;794:95:15;;;;;:::i;:::-;;:::i;518:93::-;;;;;;;;;;;;;:::i;3128:145:16:-;;;;;;;;;;-1:-1:-1;3128:145:16;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;424:130;;;;;;;;;;;;;;;;79:40:17;;;;;;;;;;-1:-1:-1;79:40:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;3539:460:16:-;;;;;;;;;;-1:-1:-1;3539:460:16;;;;;:::i;:::-;;:::i;222:18:15:-;;;;;;;;;;-1:-1:-1;222:18:15;;;;-1:-1:-1;;;222:18:15;;;;;;701:90;;;;;;;;;;-1:-1:-1;701:90:15;;;;;:::i;:::-;;:::i;658:52:16:-;;;;;;;;;;-1:-1:-1;658:52:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;1824:101:0;;;;;;;;;;;;;:::i;613:41:16:-;;;;;;;;;;-1:-1:-1;613:41:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;175:21:14;;;;;;;;;;-1:-1:-1;175:21:14;;;;-1:-1:-1;;;;;175:21:14;;;;-1:-1:-1;;;175:21:14;;;;;-1:-1:-1;;;175:21:14;;;;;;;;;;;;;;:::i;1734:212:1:-;;;;;;;;;;;;;:::i;420:95:15:-;;;;;;;;;;;;;:::i;5021:633:10:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;2243:326:16:-;;;;;;;;;;-1:-1:-1;2243:326:16;;;;;:::i;:::-;;:::i;1201:85:0:-;;;;;;;;;;-1:-1:-1;1273:6:0;;-1:-1:-1;;;;;1273:6:0;1201:85;;;;;;;:::i;2572:201:16:-;;;;;;;;;;-1:-1:-1;2572:201:16;;;;;:::i;:::-;;:::i;4591:92::-;;;;;;;;;;-1:-1:-1;4667:9:16;4591:92;;1868:372;;;;;;:::i;:::-;;:::i;892:120:15:-;;;;;;;;;;-1:-1:-1;892:120:15;;;;;:::i;:::-;;:::i;200:39:14:-;;;;;;;;;;;;232:7;200:39;;;;;;;;;:::i;614:84:15:-;;;;;;;;;;-1:-1:-1;614:84:15;;;;;:::i;:::-;;:::i;4002:254:16:-;;;;;;;;;;-1:-1:-1;4002:254:16;;;;;:::i;:::-;;:::i;847:99:1:-;;;;;;;;;;-1:-1:-1;926:13:1;;-1:-1:-1;;;;;926:13:1;847:99;;4259:329:16;;;;;;;;;;-1:-1:-1;4259:329:16;;;;;:::i;:::-;;:::i;1139:178:1:-;;;;;;;;;;-1:-1:-1;1139:178:1;;;;;:::i;:::-;;:::i;3276:109:16:-;;;;;;;;;;;;;:::i;4686:100::-;;;;;;;;;;-1:-1:-1;4769:10:16;4686:100;;1137:115:15;1094:13:0;:11;:13::i;:::-;1212:36:15::1;1233:14;1212:20;:36::i;:::-;1137:115:::0;:::o;1015:119::-;1094:13:0;:11;:13::i;:::-;1092:38:15::1;1114:15;1092:21;:38::i;794:95::-:0;1094:13:0;:11;:13::i;:::-;863:22:15::1;877:7;863:13;:22::i;518:93::-:0;1094:13:0;:11;:13::i;:::-;568:6:15::1;::::0;-1:-1:-1;;;568:6:15;::::1;;;560:29;;;;-1:-1:-1::0;;;560:29:15::1;;;;;;;:::i;:::-;;;;;;;;;593:6;:14:::0;;-1:-1:-1;;;;593:14:15::1;::::0;;518:93::o;3128:145:16:-;3238:6;:21;3184:7;;232::14;;3229:30:16;;-1:-1:-1;;;3238:21:16;;3229:39;3238:21;3229:6;:30;:::i;:::-;:39;;;;:::i;:::-;3204:6;:21;:65;;;-1:-1:-1;;;;;3204:21:16;:65;:::i;:::-;3197:72;3128:145;-1:-1:-1;;3128:145:16:o;3539:460::-;3629:9;;;1440:29;;;:20;:29;;;;;;;;1439:30;1431:68;;;;-1:-1:-1;;;1431:68:16;;;;;;;:::i;:::-;1503:29;;;;:20;:29;;;;;:36;;-1:-1:-1;;1503:36:16;1535:4;1503:36;;;282:6:15::1;::::0;-1:-1:-1;;;282:6:15;::::1;1503:36:16::0;282:6:15::1;281:7;273:27;;;;-1:-1:-1::0;;;273:27:15::1;;;;;;;:::i;:::-;3658:12:16::2;3673:70;3709:1;:9;;;3720:1;:6;;;3728:1;:4;;;3734:1;:8;;;3673:35;:70::i;:::-;3658:85;;3755:66;3792:1;:6;;;3800:4;3806:1;:14;;;3755:36;:66::i;:::-;3747:96;;;;-1:-1:-1::0;;;3747:96:16::2;;;;;;;:::i;:::-;3855:63;3892:7;1273:6:0::0;;-1:-1:-1;;;;;1273:6:0;;1201:85;3892:7:16::2;3901:4;3907:1;:10;;;3855:36;:63::i;:::-;3847:89;;;;-1:-1:-1::0;;;3847:89:16::2;;;;;;;:::i;:::-;3940:25;3950:1;:4;;;3956:1;:8;;;3940:9;:25::i;:::-;3974:21;3993:1;3974:21;;;;;;:::i;:::-;;;;;;;;3654:345;3539:460:::0;;:::o;701:90:15:-;1094:13:0;:11;:13::i;:::-;764:23:15::1;779:7;764:14;:23::i;1824:101:0:-:0;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1734:212:1:-;926:13;;734:10:5;;-1:-1:-1;;;;;926:13:1;1833:24;;1825:78;;;;-1:-1:-1;;;1825:78:1;;;;;;;:::i;:::-;1913:26;1932:6;1913:18;:26::i;420:95:15:-;1094:13:0;:11;:13::i;:::-;469:6:15::1;::::0;-1:-1:-1;;;469:6:15;::::1;;;468:7;460:34;;;;-1:-1:-1::0;;;460:34:15::1;;;;;;;:::i;:::-;498:6;:13:::0;;-1:-1:-1;;;;498:13:15::1;-1:-1:-1::0;;;498:13:15::1;::::0;;420:95::o;5021:633:10:-;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;;;;;;;;;-1:-1:-1;;;5376:271:10;;;-1:-1:-1;5376:271:10;;-1:-1:-1;5543:13:10;;-1:-1:-1;5578:4:10;;-1:-1:-1;5605:1:10;-1:-1:-1;5621:16:10;-1:-1:-1;5376:271:10;-1:-1:-1;5021:633:10:o;2243:326:16:-;243:10:17;234:8;:20;;;;;;;;;;;;;226:56;;;;-1:-1:-1;;;226:56:17;;;;;;;:::i;:::-;2325:9:16::1;2320:246;2344:5;:12;2340:1;:16;2320:246;;;2368:26;2397:5;2403:1;2397:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;2429:12;;::::1;::::0;2419:23:::1;::::0;;;:9:::1;:23:::0;;;;;;;;2397:8;;-1:-1:-1;2419:23:16::1;;2418:24;2410:49;;;;-1:-1:-1::0;;;2410:49:16::1;;;;;;;:::i;:::-;2474:12;::::0;;::::1;::::0;;2464:23:::1;::::0;;;:9:::1;:23:::0;;;;;;;;:30;;-1:-1:-1;;2464:30:16::1;2490:4;2464:30;::::0;;2509:15;;2526:12;;2540:7;;::::1;::::0;2549:11:::1;::::0;::::1;::::0;2499:62:::1;::::0;2526:12;2540:7;2499:9:::1;:62::i;:::-;-1:-1:-1::0;2358:3:16;::::1;::::0;::::1;:::i;:::-;;;;2320:246;;;;2243:326:::0;:::o;2572:201::-;2636:12;;;;;1599:18;;;;:9;:18;;;;;;;;;;1598:19;1590:44;;;;-1:-1:-1;;;1590:44:16;;;;;;;:::i;:::-;1638:18;;;;:9;:18;;;;;:25;;-1:-1:-1;;1638:25:16;1659:4;1638:25;;;2661:14:::1;::::0;::::1;::::0;1725:28:::1;::::0;::::1;:15;:28;;1717:51;;;;-1:-1:-1::0;;;1717:51:16::1;;;;;;;:::i;:::-;243:10:17::2;234:8;:20:::0;;;::::2;::::0;;;;;;;::::2;;226:56;;;;-1:-1:-1::0;;;226:56:17::2;;;;;;;:::i;:::-;282:6:15::3;::::0;-1:-1:-1;;;282:6:15;::::3;;;281:7;273:27;;;;-1:-1:-1::0;;;273:27:15::3;;;;;;;:::i;:::-;2707:62:16::4;2717:4;:15;;;2734:4;:12;;;2748:4;:7;;;2757:4;:11;;;2707:9;:62::i;:::-;1667:1:::1;2572:201:::0;;:::o;1868:372::-;1963:9;1744;1725:28;;:15;:28;;1717:51;;;;-1:-1:-1;;;1717:51:16;;;;;;;:::i;:::-;282:6:15::1;::::0;-1:-1:-1;;;282:6:15;::::1;;;281:7;273:27;;;;-1:-1:-1::0;;;273:27:15::1;;;;;;;:::i;:::-;2008:9:16::2;1992:13;2035:17;2008:9:::0;2035:10:::2;:17::i;:::-;2021:31;;2073:3;2064:5;:12;;2056:59;;;;-1:-1:-1::0;;;2056:59:16::2;;;;;;;:::i;:::-;2119:12;2128:3:::0;2119:12;::::2;:::i;:::-;;;2135:23;2145:7;1273:6:0::0;;-1:-1:-1;;;;;1273:6:0;;1201:85;2145:7:16::2;2154:3;2135:9;:23::i;:::-;2167:69;4667:9:::0;2186:10:::2;2198;2210:2;2214:5;2221:3;2226:9;2167:69;;;;;;;;;;;;:::i;:::-;;;;;;;;1988:252;;1868:372:::0;;;;:::o;892:120:15:-;1094:13:0;:11;:13::i;:::-;970:38:15::1;992:15;970:21;:38::i;614:84::-:0;1094:13:0;:11;:13::i;:::-;674:20:15::1;686:7;674:11;:20::i;4002:254:16:-:0;4138:7;4158:94;4196:26;;4224:7;4233:4;4239:2;4243:6;4185:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4175:76;;;;;;4158:16;:94::i;:::-;4151:101;;4002:254;;;;;;;:::o;4259:329::-;1094:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;4355:28:16;::::1;4351:177;;4391:12;4409:2;-1:-1:-1::0;;;;;4409:7:16::1;4425:6;4409:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4390:47;;;4450:7;4442:39;;;;-1:-1:-1::0;;;4442:39:16::1;;;;;;;:::i;:::-;4385:101;4351:177;;;4497:26;::::0;-1:-1:-1;;;4497:26:16;;-1:-1:-1;;;;;4497:14:16;::::1;::::0;::::1;::::0;:26:::1;::::0;4512:2;;4516:6;;4497:26:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4351:177;4536:48;4554:10;4566:2;4570:5;4577:6;4536:48;;;;;;;;;:::i;1139:178:1:-:0;1094:13:0;:11;:13::i;:::-;1228::1::1;:24:::0;;-1:-1:-1;;;;;1228:24:1;::::1;-1:-1:-1::0;;;;;;1228:24:1;;::::1;::::0;::::1;::::0;;;1292:7:::1;1273:6:0::0;;-1:-1:-1;;;;;1273:6:0;;1201:85;1292:7:1::1;-1:-1:-1::0;;;;;1267:43:1::1;;;;;;;;;;;1139:178:::0;:::o;3276:109:16:-;3325:7;4769:10;3348:6;:20;:33;;;-1:-1:-1;;;3348:20:16;;;;:33;:::i;:::-;3341:40;;3276:109;:::o;1359:130:0:-;1273:6;;-1:-1:-1;;;;;1273:6:0;734:10:5;1422:23:0;1414:68;;;;-1:-1:-1;;;1414:68:0;;;;;;;:::i;767:137:14:-;833:6;:37;;-1:-1:-1;;;;833:37:14;-1:-1:-1;;;833:37:14;;;;;;;880:20;;-1:-1:-1;;;;;;;;;;;880:20:14;;;;:::i;:::-;;;;;;;;767:137;:::o;538:226::-;633:11;642:2;232:7;633:11;:::i;:::-;614:30;;:15;:30;;;;606:81;;;;-1:-1:-1;;;606:81:14;;;;;;;:::i;:::-;691:6;:39;;-1:-1:-1;;;;691:39:14;-1:-1:-1;;;691:39:14;;;;;;;740:20;;-1:-1:-1;;;;;;;;;;;740:20:14;;;;:::i;281:109::-;341:16;;:6;:16;;;;;;;;;;;-1:-1:-1;;;;;341:16:14;;;-1:-1:-1;;;;;;341:16:14;;;;;;;-1:-1:-1;;;341:16:14;;;;;;-1:-1:-1;;;;341:16:14;-1:-1:-1;;;341:16:14;;;;;;;;;;;366:20;;-1:-1:-1;;;;;;;;;;;366:20:14;;;;:::i;1014:366:11:-;1120:4;1137:17;1156:24;1184:33;1201:4;1207:9;1184:16;:33::i;:::-;1136:81;;-1:-1:-1;1136:81:11;-1:-1:-1;1256:26:11;1247:5;:35;;;;;;;;:::i;:::-;;:58;;;;;1299:6;-1:-1:-1;;;;;1286:19:11;:9;-1:-1:-1;;;;;1286:19:11;;1247:58;1246:127;;;;1322:51;1349:6;1357:4;1363:9;1322:26;:51::i;:::-;1227:146;;;;1014:366;;;;;;:::o;3388:148:16:-;3448:12;3466:2;-1:-1:-1;;;;;3466:7:16;3482:5;3466:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3447:46;;;3505:7;3497:35;;;;-1:-1:-1;;;3497:35:16;;;;;;;:::i;453:166:17:-;-1:-1:-1;;;;;515:17:17;;:8;:17;;;;;;;;;;;;;507:49;;;;-1:-1:-1;;;507:49:17;;;;;;;:::i;:::-;-1:-1:-1;;;;;560:17:17;;:8;:17;;;;;;;;;;;;:24;;-1:-1:-1;;560:24:17;580:4;560:24;;;593:22;;;;;569:7;;593:22;:::i;1501:153:1:-;1590:13;1583:20;;-1:-1:-1;;;;;;1583:20:1;;;1613:34;1638:8;1613:24;:34::i;3367:268:6:-;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;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3367:268;;;;:::o;2776:349:16:-;2873:11;2887:18;:16;:18::i;:::-;2873:32;;2927:3;2917:6;:13;;2909:62;;;;-1:-1:-1;;;2909:62:16;;;;;;;:::i;:::-;2975:13;2985:3;2975:13;;:::i;:::-;;;2992:21;3002:2;3006:6;2992:9;:21::i;:::-;3017:26;3027:10;3039:3;3017:9;:26::i;:::-;3052:69;3061:10;3073;4667:9;3096:7;3105:2;3109:6;3117:3;3052:69;;;;;;;;;;;;:::i;:::-;;;;;;;;2869:256;2776:349;;;;:::o;393:142:14:-;462:6;:39;;-1:-1:-1;;462:39:14;-1:-1:-1;;;;;462:39:14;;;;;511:20;;-1:-1:-1;;;;;;;;;;;511:20:14;;;;:::i;294:156:17:-;-1:-1:-1;;;;;354:17:17;;:8;:17;;;;;;;;;;;;;353:18;345:45;;;;-1:-1:-1;;;345:45:17;;;;;;;:::i;:::-;-1:-1:-1;;;;;394:17:17;;:8;:17;;;;;;;;;;;;:24;;-1:-1:-1;;394:24:17;414:4;394:24;;;427:19;;;;;403:7;;427:19;:::i;4768:165:10:-;4845:7;4871:55;4893:20;:18;:20::i;:::-;4915:10;8536:4:9;8530:11;-1:-1:-1;;;8554:23:9;;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:9;;-1:-1:-1;2822:35:9;2259:610;2145:730;;;;;:::o;1786:473:11:-;1929:4;1946:12;1960:19;1983:6;-1:-1:-1;;;;;1983:17:11;2037:34;;;2073:4;2079:9;2014:75;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2014:75:11;;;;;;;;;;;;;;-1:-1:-1;;;;;2014:75:11;-1:-1:-1;;;;;;2014:75:11;;;;;;;;;;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:11;;-1:-1:-1;;;2216:34:11;2175:29;;;;;;;;;;;;:::i;:::-;:76;;1786:473;-1:-1:-1;;;;;;1786:473:11: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;2059:405:6:-;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:6;;2281:14;;;;;;;;;-1:-1:-1;;;2371:16:6;;;-1:-1:-1;2416:4:6;2407:14;;2400:28;;;;-1:-1:-1;2371:16:6;2059:405::o;3695:262:10:-;3748:7;3779:4;-1:-1:-1;;;;;3788:11:10;3771:28;;:63;;;;;3820:14;3803:13;:31;3771:63;3767:184;;;-1:-1:-1;3857:22:10;;3695:262::o;3767:184::-;3917:23;:21;:23::i;5009:1456:9:-;5097:7;;6021:66;6008:79;;6004:161;;;-1:-1:-1;6119:1:9;;-1:-1:-1;6123:30:9;6103:51;;6004:161;6259:14;6276:24;6286:4;6292:1;6295;6298;6276:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6276:24:9;;-1:-1:-1;;6276:24:9;;;-1:-1:-1;;;;;;;6314:20:9;;6310:101;;6366:1;6370:29;6350:50;;;;;;;6310:101;6429:6;-1:-1:-1;6437:20:9;;-1:-1:-1;5009:1456:9;;;;;;;;:::o;2536:245:6:-;2597:7;2669:4;2633:40;;2696:2;2687:11;;2683:69;;;2721:20;;-1:-1:-1;;;2721:20:6;;;;;;;;;;;3963:180:10;4018:7;1929:95;4077:11;4090:14;4106:13;4129:4;4054:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4044:92;;;;;;4037:99;;3963:180;:::o;433:120:18:-;410:10;399:22;;505:23;498:5;495:34;485:62;;543:1;540;533:12;559:137;629:20;;658:32;629:20;658:32;:::i;702:327::-;760:6;809:2;797:9;788:7;784:23;780:32;777:119;;;815:79;281:4539:16;;;815:79:18;935:1;960:52;1004:7;984:9;960:52;:::i;1266:180::-;-1:-1:-1;;;1311:1:18;1304:88;1411:4;1408:1;1401:15;1435:4;1432:1;1425:15;1452:281;-1:-1:-1;;1250:2:18;1230:14;;1226:28;1527:6;1523:40;1665:6;1653:10;1650:22;1629:18;1617:10;1614:34;1611:62;1608:88;;;1676:18;;:::i;:::-;1712:2;1705:22;-1:-1:-1;;1452:281:18:o;1739:129::-;1773:6;1800:20;73:2;67:9;;7:75;1800:20;1790:30;;1829:33;1857:4;1849:6;1829:33;:::i;:::-;1739:129;;;:::o;2121:122::-;-1:-1:-1;;;;;2063:46:18;;2194:24;1997:118;2249:139;2320:20;;2349:33;2320:20;2349:33;:::i;2423:762::-;2497:5;2541:4;2529:9;2524:3;2520:19;2516:30;2513:117;;;2549:79;281:4539:16;;;2549:79:18;2648:21;2664:4;2648:21;:::i;:::-;2639:30;-1:-1:-1;2738:1:18;2778:49;2823:3;2803:9;2778:49;:::i;:::-;2753:75;;-1:-1:-1;2908:2:18;2949:48;2993:3;2969:22;;;2949:48;:::i;:::-;2942:4;2935:5;2931:16;2924:74;2849:160;3077:2;3118:48;3162:3;3153:6;3142:9;3138:22;3118:48;:::i;:::-;3111:4;3104:5;3100:16;3093:74;3019:159;2423:762;;;;:::o;3191:379::-;3275:6;3324:2;3312:9;3303:7;3299:23;3295:32;3292:119;;;3330:79;281:4539:16;;;3330:79:18;3450:1;3475:78;3545:7;3525:9;3475:78;:::i;3659:122::-;3750:5;3732:24;3576:77;3787:139;3858:20;;3887:33;3858:20;3887:33;:::i;3932:329::-;3991:6;4040:2;4028:9;4019:7;4015:23;4011:32;4008:119;;;4046:79;281:4539:16;;;4046:79:18;4166:1;4191:53;4236:7;4216:9;4191:53;:::i;4267:118::-;4372:5;4354:24;4349:3;4342:37;4267:118;;:::o;4391:222::-;4522:2;4507:18;;4535:71;4511:9;4579:6;4535:71;:::i;5186:96::-;5223:7;-1:-1:-1;;;;;5120:54:18;;5252:24;5054:126;5288:122;5361:24;5379:5;5361:24;:::i;5416:139::-;5487:20;;5516:33;5487:20;5516:33;:::i;5561:329::-;5620:6;5669:2;5657:9;5648:7;5644:23;5640:32;5637:119;;;5675:79;281:4539:16;;;5675:79:18;5795:1;5820:53;5865:7;5845:9;5820:53;:::i;5992:109::-;5966:13;;5959:21;6073;5896:90;6107:210;6232:2;6217:18;;6245:65;6221:9;6283:6;6245:65;:::i;6842:307::-;6903:4;6993:18;6985:6;6982:30;6979:56;;;7015:18;;:::i;:::-;-1:-1:-1;;1250:2:18;1230:14;;1226:28;7137:4;7127:15;;6842:307;-1:-1:-1;;6842:307:18:o;7155:146::-;7252:6;7247:3;7242;7229:30;-1:-1:-1;7293:1:18;7275:16;;7268:27;7155:146::o;7307:423::-;7384:5;7409:65;7425:48;7466:6;7425:48;:::i;:::-;7409:65;:::i;:::-;7400:74;;7497:6;7490:5;7483:21;7535:4;7528:5;7524:16;7573:3;7564:6;7559:3;7555:16;7552:25;7549:112;;;7580:79;281:4539:16;;;7580:79:18;7670:54;7717:6;7712:3;7707;7670:54;:::i;:::-;7390:340;7307:423;;;;;:::o;7749:338::-;7804:5;7853:3;7846:4;7838:6;7834:17;7830:27;7820:122;;7861:79;281:4539:16;;;7861:79:18;7978:6;7965:20;8003:78;8077:3;8069:6;8062:4;8054:6;8050:17;8003:78;:::i;8138:1585::-;8224:5;8268:4;8256:9;8251:3;8247:19;8243:30;8240:117;;;8276:79;281:4539:16;;;8276:79:18;8375:21;8391:4;8375:21;:::i;:::-;8366:30;-1:-1:-1;8458:1:18;8498:49;8543:3;8523:9;8498:49;:::i;:::-;8473:75;;-1:-1:-1;8618:2:18;8659:49;8704:3;8680:22;;;8659:49;:::i;:::-;8652:4;8645:5;8641:16;8634:75;8569:151;8777:2;8818:49;8863:3;8854:6;8843:9;8839:22;8818:49;:::i;:::-;8811:4;8804:5;8800:16;8793:75;8730:149;8940:2;8981:49;9026:3;9017:6;9006:9;9002:22;8981:49;:::i;:::-;8974:4;8967:5;8963:16;8956:75;8889:153;9137:3;9126:9;9122:19;9109:33;9169:18;9161:6;9158:30;9155:117;;;9191:79;281:4539:16;;;9191:79:18;9311:58;9365:3;9356:6;9345:9;9341:22;9311:58;:::i;:::-;9304:4;9297:5;9293:16;9286:84;9052:329;9472:3;9461:9;9457:19;9444:33;9504:18;9496:6;9493:30;9490:117;;;9526:79;281:4539:16;;;9526:79:18;9646:58;9700:3;9691:6;9680:9;9676:22;9646:58;:::i;:::-;9639:4;9632:5;9628:16;9621:84;9391:325;8138:1585;;;;:::o;9729:563::-;9825:6;9874:2;9862:9;9853:7;9849:23;9845:32;9842:119;;;9880:79;281:4539:16;;;9880:79:18;10000:31;;10058:18;10047:30;;10044:117;;;10080:79;281:4539:16;;;10080:79:18;10185:90;10267:7;10258:6;10247:9;10243:22;10185:90;:::i;10633:118::-;-1:-1:-1;;;;;2063:46:18;;10720:24;1997:118;10757:115;410:10;399:22;;10842:23;334:93;10878:434;11061:2;11046:18;;11074:71;11050:9;11118:6;11074:71;:::i;:::-;11155:70;11221:2;11210:9;11206:18;11197:6;11155:70;:::i;:::-;11235;11301:2;11290:9;11286:18;11277:6;11235:70;:::i;11473:115::-;-1:-1:-1;;;;;;11383:78:18;;11558:23;11318:149;11874:246;11955:1;11965:113;11979:6;11976:1;11973:13;11965:113;;;12055:11;;;12049:18;12036:11;;;12029:39;12001:2;11994:10;11965:113;;;-1:-1:-1;;12112:1:18;12094:16;;12087:27;11874:246::o;12126:377::-;12214:3;12242:39;12275:5;11674:12;;11594:99;12242:39;11805:19;;;11857:4;11848:14;;12290:78;;12377:65;12435:6;12430:3;12423:4;12416:5;12412:16;12377:65;:::i;:::-;1250:2;1230:14;-1:-1:-1;;1226:28:18;12458:39;;;;;;-1:-1:-1;;12126:377:18:o;12509:118::-;12596:24;12614:5;12596:24;:::i;13195:179::-;13264:10;13285:46;13327:3;13319:6;13285:46;:::i;:::-;-1:-1:-1;;13363:4:18;13354:14;;13195:179::o;13529:732::-;13648:3;13677:54;13725:5;11674:12;;11594:99;13677:54;11805:19;;;11857:4;11848:14;;;;13054;;;13967:1;13952:284;13977:6;13974:1;13971:13;13952:284;;;14053:6;14047:13;14080:63;14139:3;14124:13;14080:63;:::i;:::-;14073:70;-1:-1:-1;13482:4:18;13473:14;;14156:70;-1:-1:-1;;13999:1:18;13992:9;13952:284;;;-1:-1:-1;14252:3:18;;13529:732;-1:-1:-1;;;;;13529:732:18:o;14267:1215::-;14654:3;14639:19;;14668:69;14643:9;14710:6;14668:69;:::i;:::-;14784:9;14778:4;14774:20;14769:2;14758:9;14754:18;14747:48;14812:78;14885:4;14876:6;14812:78;:::i;:::-;14804:86;;14937:9;14931:4;14927:20;14922:2;14911:9;14907:18;14900:48;14965:78;15038:4;15029:6;14965:78;:::i;:::-;14957:86;;15053:72;15121:2;15110:9;15106:18;15097:6;15053:72;:::i;:::-;15135:73;15203:3;15192:9;15188:19;15179:6;15135:73;:::i;:::-;15218;15286:3;15275:9;15271:19;15262:6;15218:73;:::i;:::-;15339:9;15333:4;15329:20;15323:3;15312:9;15308:19;15301:49;15367:108;15470:4;15461:6;15367:108;:::i;:::-;15359:116;14267:1215;-1:-1:-1;;;;;;;;;14267:1215:18:o;15488:343::-;15597:4;15687:18;15679:6;15676:30;15673:56;;;15709:18;;:::i;:::-;-1:-1:-1;15759:4:18;15747:17;;;15809:15;;15488:343::o;16000:1078::-;16081:5;16125:4;16113:9;16108:3;16104:19;16100:30;16097:117;;;16133:79;281:4539:16;;;16133:79:18;16232:21;16248:4;16232:21;:::i;:::-;16223:30;-1:-1:-1;16318:1:18;16358:49;16403:3;16383:9;16358:49;:::i;:::-;16333:75;;-1:-1:-1;16481:2:18;16522:49;16567:3;16543:22;;;16522:49;:::i;:::-;16515:4;16508:5;16504:16;16497:75;16429:154;16640:2;16681:49;16726:3;16717:6;16706:9;16702:22;16681:49;:::i;:::-;16674:4;16667:5;16663:16;16656:75;16593:149;16803:2;16844:49;16889:3;16880:6;16869:9;16865:22;16844:49;:::i;:::-;16837:4;16830:5;16826:16;16819:75;16752:153;16969:3;17011:48;17055:3;17046:6;17035:9;17031:22;17011:48;:::i;:::-;17004:4;16997:5;16993:16;16986:74;16915:156;16000:1078;;;;:::o;17126:806::-;17254:5;17279:113;17295:96;17384:6;17295:96;:::i;17279:113::-;17427:21;;;17270:122;-1:-1:-1;17475:4:18;17464:16;;17528:4;17516:17;;17504:30;;17546:15;;;17543:122;;;17576:79;281:4539:16;;;17576:79:18;17691:6;17674:252;17708:6;17703:3;17700:15;17674:252;;;17783:3;17812:69;17877:3;17865:10;17812:69;:::i;:::-;17800:82;;-1:-1:-1;17911:4:18;17902:14;;;;17734:4;17725:14;17674:252;;;17678:21;17260:672;;17126:806;;;;;:::o;17980:434::-;18083:5;18132:3;18125:4;18117:6;18113:17;18109:27;18099:122;;18140:79;281:4539:16;;;18140:79:18;18257:6;18244:20;18282:126;18404:3;18396:6;18389:4;18381:6;18377:17;18282:126;:::i;18420:603::-;18536:6;18585:2;18573:9;18564:7;18560:23;18556:32;18553:119;;;18591:79;281:4539:16;;;18591:79:18;18711:31;;18769:18;18758:30;;18755:117;;;18791:79;281:4539:16;;;18791:79:18;18896:110;18998:7;18989:6;18978:9;18974:22;18896:110;:::i;19029:222::-;19160:2;19145:18;;19173:71;19149:9;19217:6;19173:71;:::i;19257:394::-;19348:6;19397:3;19385:9;19376:7;19372:23;19368:33;19365:120;;;19404:79;281:4539:16;;;19404:79:18;19524:1;19549:85;19626:7;19606:9;19549:85;:::i;19657:617::-;19733:6;19741;19749;19798:2;19786:9;19777:7;19773:23;19769:32;19766:119;;;19804:79;281:4539:16;;;19804:79:18;19924:1;19949:53;19994:7;19974:9;19949:53;:::i;:::-;19939:63;;19895:117;20051:2;20077:53;20122:7;20113:6;20102:9;20098:22;20077:53;:::i;:::-;20067:63;;20022:118;20179:2;20205:52;20249:7;20240:6;20229:9;20225:22;20205:52;:::i;:::-;20195:62;;20150:117;19657:617;;;;;:::o;20280:329::-;20339:6;20388:2;20376:9;20367:7;20363:23;20359:32;20356:119;;;20394:79;281:4539:16;;;20394:79:18;20514:1;20539:53;20584:7;20564:9;20539:53;:::i;20615:218::-;20744:2;20729:18;;20757:69;20733:9;20799:6;20757:69;:::i;20839:765::-;20925:6;20933;20941;20949;20998:3;20986:9;20977:7;20973:23;20969:33;20966:120;;;21005:79;281:4539:16;;;21005:79:18;21125:1;21150:53;21195:7;21175:9;21150:53;:::i;:::-;21140:63;;21096:117;21252:2;21278:53;21323:7;21314:6;21303:9;21299:22;21278:53;:::i;:::-;21268:63;;21223:118;21380:2;21406:53;21451:7;21442:6;21431:9;21427:22;21406:53;:::i;:::-;21396:63;;21351:118;21508:2;21534:53;21579:7;21570:6;21559:9;21555:22;21534:53;:::i;:::-;21524:63;;21479:118;20839:765;;;;;;;:::o;21610:110::-;21661:7;21690:24;21708:5;21690:24;:::i;21726:150::-;21813:38;21845:5;21813:38;:::i;21882:167::-;21967:20;;21996:47;21967:20;21996:47;:::i;22055:647::-;22146:6;22154;22162;22211:2;22199:9;22190:7;22186:23;22182:32;22179:119;;;22217:79;281:4539:16;;;22217:79:18;22337:1;22362:67;22421:7;22401:9;22362:67;:::i;:::-;22352:77;;22308:131;22478:2;22504:53;22549:7;22540:6;22529:9;22525:22;22504:53;:::i;:::-;22494:63;;22449:118;22606:2;22632:53;22677:7;22668:6;22657:9;22653:22;22632:53;:::i;22874:366::-;23101:2;11805:19;;23016:3;11857:4;11848:14;;-1:-1:-1;;;22825:36:18;;23030:74;-1:-1:-1;23113:93:18;-1:-1:-1;23231:2:18;23222:12;;22874:366::o;23246:419::-;23450:2;23463:47;;;23435:18;;23527:131;23435:18;23527:131;:::i;23671:180::-;-1:-1:-1;;;23716:1:18;23709:88;23816:4;23813:1;23806:15;23840:4;23837:1;23830:15;23857:410;24002:9;;;;24164;;24197:15;;;24191:22;;24144:83;24121:139;;24240:18;;:::i;:::-;23905:362;23857:410;;;;:::o;24273:180::-;-1:-1:-1;;;24318:1:18;24311:88;24418:4;24415:1;24408:15;24442:4;24439:1;24432:15;24459:185;24499:1;24568;24550:20;24545:25;;24589:1;24579:35;;24594:18;;:::i;:::-;-1:-1:-1;24629:9:18;;24459:185::o;24650:191::-;24779:9;;;24801:10;;;24798:36;;;24814:18;;:::i;25028:366::-;25255:2;11805:19;;25170:3;11857:4;11848:14;;24987:27;24964:51;;25184:74;-1:-1:-1;25267:93:18;24847:175;25400:419;25604:2;25617:47;;;25589:18;;25681:131;25589:18;25681:131;:::i;25988:365::-;26215:1;11805:19;;26130:3;11857:4;11848:14;;-1:-1:-1;;;25942:33:18;;26144:73;-1:-1:-1;26226:93:18;25825:157;26359:419;26563:2;26576:47;;;26548:18;;26640:131;26548:18;26640:131;:::i;26957:366::-;27184:2;11805:19;;27099:3;11857:4;11848:14;;-1:-1:-1;;;26901:43:18;;27113:74;-1:-1:-1;27196:93:18;26784:167;27329:419;27533:2;27546:47;;;27518:18;;27610:131;27518:18;27610:131;:::i;27923:366::-;28150:2;11805:19;;28065:3;11857:4;11848:14;;-1:-1:-1;;;27871:39:18;;28079:74;-1:-1:-1;28162:93:18;27754:163;28295:419;28499:2;28512:47;;;28484:18;;28576:131;28484:18;28576:131;:::i;29661:1408::-;29913:23;;29804:3;;29840:4;29831:14;;;29949:63;29835:3;29913:23;29949:63;:::i;:::-;29855:167;30104:4;30097:5;30093:16;30087:23;30123:63;30180:4;30175:3;30171:14;30157:12;30123:63;:::i;:::-;30032:164;30276:4;30269:5;30265:16;30259:23;30295:63;30352:4;30347:3;30343:14;30329:12;30295:63;:::i;:::-;30206:162;30452:4;30445:5;30441:16;30435:23;30471:63;30528:4;30523:3;30519:14;30505:12;30471:63;:::i;:::-;30378:166;30634:4;30627:5;30623:16;30617:23;30687:3;30681:4;30677:14;30670:4;30665:3;30661:14;30654:38;30713:71;30779:4;30765:12;30713:71;:::i;:::-;30705:79;;30554:241;30881:4;30874:5;30870:16;30864:23;30934:3;30928:4;30924:14;30917:4;30912:3;30908:14;30901:38;30960:71;31026:4;31012:12;30960:71;:::i;:::-;30952:79;29661:1408;-1:-1:-1;;;;;29661:1408:18:o;31075:421::-;31280:2;31293:47;;;31265:18;;31357:132;31265:18;31475:6;31357:132;:::i;31736:366::-;31963:2;11805:19;;31878:3;11857:4;11848:14;;31642:34;31619:58;;-1:-1:-1;;;31706:2:18;31694:15;;31687:36;31892:74;-1:-1:-1;31975:93:18;-1:-1:-1;32093:2:18;32084:12;;31736:366::o;32108:419::-;32312:2;32325:47;;;32297:18;;32389:131;32297:18;32389:131;:::i;32703:366::-;32930:2;11805:19;;32845:3;11857:4;11848:14;;-1:-1:-1;;;32650:40:18;;32859:74;-1:-1:-1;32942:93:18;32533:164;33075:419;33279:2;33292:47;;;33264:18;;33356:131;33264:18;33356:131;:::i;33679:366::-;33906:2;11805:19;;33821:3;11857:4;11848:14;;33640:25;33617:49;;33835:74;-1:-1:-1;33918:93:18;33500:173;34051:419;34255:2;34268:47;;;34240:18;;34332:131;34240:18;34332:131;:::i;34476:180::-;-1:-1:-1;;;34521:1:18;34514:88;34621:4;34618:1;34611:15;34645:4;34642:1;34635:15;34830:366;35057:2;11805:19;;34972:3;11857:4;11848:14;;-1:-1:-1;;;34779:38:18;;34986:74;-1:-1:-1;35069:93:18;34662:162;35202:419;35406:2;35419:47;;;35391:18;;35483:131;35391:18;35483:131;:::i;35627:233::-;35666:3;-1:-1:-1;;35728:5:18;35725:77;35722:103;;35805:18;;:::i;:::-;-1:-1:-1;35852:1:18;35841:13;;35627:233::o;36032:366::-;36259:2;11805:19;;36174:3;11857:4;11848:14;;-1:-1:-1;;;35983:36:18;;36188:74;-1:-1:-1;36271:93:18;35866:160;36404:419;36608:2;36621:47;;;36593:18;;36685:131;36593:18;36685:131;:::i;37056:366::-;37283:2;11805:19;;37198:3;11857:4;11848:14;;36969:34;36946:58;;-1:-1:-1;;;37033:2:18;37021:15;;37014:29;37212:74;-1:-1:-1;37295:93:18;36829:221;37428:419;37632:2;37645:47;;;37617:18;;37709:131;37617:18;37709:131;:::i;37853:194::-;37984:9;;;38006:11;;;38003:37;;;38020:18;;:::i;38053:882::-;38350:3;38335:19;;38364:71;38339:9;38408:6;38364:71;:::i;:::-;38445:72;38513:2;38502:9;38498:18;38489:6;38445:72;:::i;:::-;38527;38595:2;38584:9;38580:18;38571:6;38527:72;:::i;:::-;38609;38677:2;38666:9;38662:18;38653:6;38609:72;:::i;:::-;38691:73;38759:3;38748:9;38744:19;38735:6;38691:73;:::i;:::-;38774;38842:3;38831:9;38827:19;38818:6;38774:73;:::i;:::-;38857:71;38923:3;38912:9;38908:19;38899:6;38857:71;:::i;:::-;38053:882;;;;;;;;;;:::o;38941:664::-;39184:3;39169:19;;39198:71;39173:9;39242:6;39198:71;:::i;:::-;39279:72;39347:2;39336:9;39332:18;39323:6;39279:72;:::i;:::-;39361;39429:2;39418:9;39414:18;39405:6;39361:72;:::i;:::-;39443;39511:2;39500:9;39496:18;39487:6;39443:72;:::i;:::-;39525:73;39593:3;39582:9;39578:19;39569:6;39525:73;:::i;:::-;38941:664;;;;;;;;:::o;40288:379::-;40472:3;40637;40494:147;39884:398;40848:366;41075:2;11805:19;;40990:3;11857:4;11848:14;;-1:-1:-1;;;40790:45:18;;41004:74;-1:-1:-1;41087:93:18;40673:169;41220:419;41424:2;41437:47;;;41409:18;;41501:131;41409:18;41501:131;:::i;41645:332::-;41804:2;41789:18;;41817:71;41793:9;41861:6;41817:71;:::i;:::-;41898:72;41966:2;41955:9;41951:18;41942:6;41898:72;:::i;41983:116::-;5966:13;;5959:21;42053;5896:90;42105:137;42184:13;;42206:30;42184:13;42206:30;:::i;42248:345::-;42315:6;42364:2;42352:9;42343:7;42339:23;42335:32;42332:119;;;42370:79;281:4539:16;;;42370:79:18;42490:1;42515:61;42568:7;42548:9;42515:61;:::i;42945:140::-;43009:9;43042:37;43073:5;43042:37;:::i;43091:159::-;43192:51;43237:5;43192:51;:::i;43256:581::-;43485:3;43470:19;;43499:71;43474:9;43543:6;43499:71;:::i;:::-;43580:72;43648:2;43637:9;43633:18;43624:6;43580:72;:::i;:::-;43662:86;43744:2;43733:9;43729:18;43720:6;43662:86;:::i;:::-;43758:72;43826:2;43815:9;43811:18;43802:6;43758:72;:::i;44031:366::-;44258:2;11805:19;;;43983:34;11848:14;;43960:58;;;44173:3;44270:93;43843:182;44403:419;44607:2;44620:47;;;44592:18;;44684:131;44592:18;44684:131;:::i;45073:166::-;45142:5;-1:-1:-1;;;;;2063:46:18;;45167:66;1997:118;45583:167;45652:5;45677:67;45707:36;45732:10;45447:3;45443:15;;45359:106;45707:36;410:10;399:22;;334:93;45979:167;46048:5;46073:67;46103:36;46128:10;45955:3;45951:15;;45867:106;46206:874;46449:23;;46350:4;46341:14;;;46505:55;46449:23;46505:55;:::i;:::-;46573:63;46625:3;46607:12;46573:63;:::i;:::-;46392:254;46721:55;46766:9;46721:55;:::i;:::-;46789:61;46844:4;46839:3;46835:14;46821:12;46789:61;:::i;:::-;46656:204;46934:55;46979:9;46934:55;:::i;:::-;47002:61;47057:4;47052:3;47048:14;47034:12;47002:61;:::i;:::-;46870:203;46319:761;;46206:874;;:::o;47086:316::-;47264:2;47249:18;;47277:118;47253:9;47368:6;47277:118;:::i;47408:182::-;47447:1;410:10;399:22;;47459:24;-1:-1:-1;410:10:18;399:22;;47497:19;334:93;47827:366;48054:2;11805:19;;47969:3;11857:4;11848:14;;47736:34;47713:58;;-1:-1:-1;;;47800:2:18;47788:15;;47781:33;47983:74;-1:-1:-1;48066:93:18;47596:225;48199:419;48403:2;48416:47;;;48388:18;;48480:131;48388:18;48480:131;:::i;48624:180::-;-1:-1:-1;;;48669:1:18;48662:88;48769:4;48766:1;48759:15;48793:4;48790:1;48783:15;48981:366;49208:2;11805:19;;49123:3;11857:4;11848:14;;-1:-1:-1;;;48927:41:18;;49137:74;-1:-1:-1;49220:93:18;48810:165;49353:419;49557:2;49570:47;;;49542:18;;49634:131;49542:18;49634:131;:::i;49953:366::-;50180:2;11805:19;;50095:3;11857:4;11848:14;;-1:-1:-1;;;49895:45:18;;50109:74;-1:-1:-1;50192:93:18;49778:169;50325:419;50529:2;50542:47;;;50514:18;;50606:131;50514:18;50606:131;:::i;50750:180::-;-1:-1:-1;;;50795:1:18;50788:88;50895:4;50892:1;50885:15;50919:4;50916:1;50909:15;50936:320;51017:1;51007:12;;51064:1;51054:12;;;51075:81;;51141:4;51133:6;51129:17;51119:27;;51075:81;51203:2;51195:6;51192:14;51172:18;51169:38;51166:84;;51222:18;;:::i;:::-;50987:269;50936:320;;;:::o;51491:366::-;51718:2;11805:19;;51633:3;11857:4;11848:14;;51402:34;51379:58;;-1:-1:-1;;;51466:2:18;51454:15;;51447:31;51647:74;-1:-1:-1;51730:93:18;51262:223;51863:419;52067:2;52080:47;;;52052:18;;52144:131;52052:18;52144:131;:::i;52288:886::-;52587:3;52572:19;;52601:71;52576:9;52645:6;52601:71;:::i;:::-;52682:72;52750:2;52739:9;52735:18;52726:6;52682:72;:::i;:::-;52764;52832:2;52821:9;52817:18;52808:6;52764:72;:::i;:::-;52846;52914:2;52903:9;52899:18;52890:6;52846:72;:::i;:::-;52928:73;52996:3;52985:9;52981:19;52972:6;52928:73;:::i;:::-;53011;53079:3;53068:9;53064:19;53055:6;53011:73;:::i;:::-;53094;53162:3;53151:9;53147:19;53138:6;53094:73;:::i;53350:366::-;53577:2;11805:19;;53492:3;11857:4;11848:14;;-1:-1:-1;;;53297:40:18;;53506:74;-1:-1:-1;53589:93:18;53180:164;53722:419;53926:2;53939:47;;;53911:18;;54003:131;53911:18;54003:131;:::i;54700:419::-;54877:2;54862:18;;54890:71;54866:9;54934:6;54890:71;:::i;:::-;55008:9;55002:4;54998:20;54993:2;54982:9;54978:18;54971:48;55036:76;55107:4;55098:6;55036:76;:::i;55125:386::-;55229:3;55257:38;55289:5;11674:12;;11594:99;55257:38;55408:65;55466:6;55461:3;55454:4;55447:5;55443:16;55408:65;:::i;:::-;55489:16;;;;;55125:386;-1:-1:-1;;55125:386:18:o;55517:271::-;55647:3;55669:93;55758:3;55749:6;55669:93;:::i;55794:143::-;55876:13;;55898:33;55876:13;55898:33;:::i;55943:351::-;56013:6;56062:2;56050:9;56041:7;56037:23;56033:32;56030:119;;;56068:79;281:4539:16;;;56068:79:18;56188:1;56213:64;56269:7;56249:9;56213:64;:::i;56392:112::-;56375:4;56364:16;;56475:22;56300:86;56510:545;56721:3;56706:19;;56735:71;56710:9;56779:6;56735:71;:::i;:::-;56816:68;56880:2;56869:9;56865:18;56856:6;56816:68;:::i;:::-;56894:72;56962:2;56951:9;56947:18;56938:6;56894:72;:::i;57061:664::-;57304:3;57289:19;;57318:71;57293:9;57362:6;57318:71;:::i;:::-;57399:72;57467:2;57456:9;57452:18;57443:6;57399:72;:::i;:::-;57481;57549:2;57538:9;57534:18;57525:6;57481:72;:::i;:::-;57563;57631:2;57620:9;57616:18;57607:6;57563:72;:::i;:::-;57645:73;57713:3;57702:9;57698:19;57689:6;57645:73;:::i"},"gasEstimates":{"creation":{"codeDepositCost":"2077000","executionCost":"infinite","totalCost":"infinite"},"external":{"DepositorWithdrawTypesHash()":"2451","MAXPCT()":"323","acceptOwnership()":"infinite","addRelayer(address)":"infinite","chainId()":"324","config()":"infinite","deposit(address,uint256,uint32)":"infinite","depositFee(uint256)":"infinite","depositorWithdraw((bytes32,address,address,uint256,bytes,bytes))":"infinite","depositorWithdrawals(bytes32)":"infinite","eip712Domain()":"infinite","emergencyWithdraw(address,address,uint256)":"infinite","finalize((uint256,bytes32,address,uint256,uint32))":"infinite","finalizeTxGasFee()":"2590","gasPrice()":"367","hashTypedDataV4ForDepositorWithdraw(bytes32,address,address,uint256)":"infinite","logHashes(bytes32)":"infinite","mulFinalize((uint256,bytes32,address,uint256,uint32)[])":"infinite","owner()":"infinite","pause()":"28733","paused()":"2472","pendingOwner()":"infinite","relayers(address)":"infinite","removeRelayer(address)":"infinite","renounceOwnership()":"infinite","transferOwnership(address)":"infinite","unpause()":"28718","updateConfig((uint128,uint32,uint32))":"infinite","updateDepositBaseFee(uint128)":"infinite","updateDepositFeeRate(uint32)":"infinite","updateFinalizeTxGas(uint32)":"infinite"},"internal":{"_finalize(uint256,bytes32,address,uint256)":"infinite","_transfer(address,uint256)":"infinite"}},"methodIdentifiers":{"DepositorWithdrawTypesHash()":"4d5ff840","MAXPCT()":"cb11b9f4","acceptOwnership()":"79ba5097","addRelayer(address)":"dd39f00d","chainId()":"9a8a0592","config()":"79502c55","deposit(address,uint256,uint32)":"b1cccca2","depositFee(uint256)":"423c485a","depositorWithdraw((bytes32,address,address,uint256,bytes,bytes))":"5aaf6cc7","depositorWithdrawals(bytes32)":"638d9c56","eip712Domain()":"84b0196e","emergencyWithdraw(address,address,uint256)":"e63ea408","finalize((uint256,bytes32,address,uint256,uint32))":"8fbd65e6","finalizeTxGasFee()":"f35acf51","gasPrice()":"fe173b97","hashTypedDataV4ForDepositorWithdraw(bytes32,address,address,uint256)":"e183bb5a","logHashes(bytes32)":"788daa17","mulFinalize((uint256,bytes32,address,uint256,uint32)[])":"87939d78","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","pendingOwner()":"e30c3978","relayers(address)":"5300f841","removeRelayer(address)":"60f0a5ac","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","updateConfig((uint128,uint32,uint32))":"28ad6c16","updateDepositBaseFee(uint128)":"c8dc8a0c","updateDepositFeeRate(uint32)":"1251d14e","updateFinalizeTxGas(uint32)":"10c58d65"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"depositBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"depositFeeRate\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"finalizeTxGas\",\"type\":\"uint32\"}],\"internalType\":\"struct Config.Config_\",\"name\":\"config\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"AddRelayer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dstChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"timeoutAt\",\"type\":\"uint32\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"logHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"depositorSig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"adminSig\",\"type\":\"bytes\"}],\"indexed\":false,\"internalType\":\"struct ETHDeliver.DepositorWithdrawal\",\"name\":\"w\",\"type\":\"tuple\"}],\"name\":\"DepositorWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"EmergencyWithdraw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dstChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"logHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"Finalize\",\"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\":false,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"RemoveRelayer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"depositBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"depositFeeRate\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"finalizeTxGas\",\"type\":\"uint32\"}],\"indexed\":false,\"internalType\":\"struct Config.Config_\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"UpdateConfig\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DepositorWithdrawTypesHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAXPCT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"addRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"config\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"depositBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"depositFeeRate\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"finalizeTxGas\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"dstChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"timeoutAt\",\"type\":\"uint32\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"logHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"depositorSig\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"adminSig\",\"type\":\"bytes\"}],\"internalType\":\"struct ETHDeliver.DepositorWithdrawal\",\"name\":\"w\",\"type\":\"tuple\"}],\"name\":\"depositorWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"depositorWithdrawals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"emergencyWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"logHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"timeoutAt\",\"type\":\"uint32\"}],\"internalType\":\"struct ETHDeliver.FinalizeTxMeta\",\"name\":\"meta\",\"type\":\"tuple\"}],\"name\":\"finalize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalizeTxGasFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"logHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"hashTypedDataV4ForDepositorWithdraw\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"logHashes\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"logHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"timeoutAt\",\"type\":\"uint32\"}],\"internalType\":\"struct ETHDeliver.FinalizeTxMeta[]\",\"name\":\"metas\",\"type\":\"tuple[]\"}],\"name\":\"mulFinalize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"relayers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"removeRelayer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"depositBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint32\",\"name\":\"depositFeeRate\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"finalizeTxGas\",\"type\":\"uint32\"}],\"internalType\":\"struct Config.Config_\",\"name\":\"_config\",\"type\":\"tuple\"}],\"name\":\"updateConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_depositBaseFee\",\"type\":\"uint128\"}],\"name\":\"updateDepositBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_depositFeeRate\",\"type\":\"uint32\"}],\"name\":\"updateDepositFeeRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_finalizeTxGas\",\"type\":\"uint32\"}],\"name\":\"updateFinalizeTxGas\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"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.\"},\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"},\"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.\"}},\"stateVariables\":{\"DepositorWithdrawTypesHash\":{\"details\":\"keccak256(\\\"DepositorWithdraw(bytes32 logHash,address from,address to,uint256 amount)\\\")\"},\"logHashes\":{\"details\":\"keccak256(abi.encodePacked(txHash,logIndex))\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ETHDeliver.sol\":\"ETHDeliver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"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\",\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xde231558366826d7cb61725af8147965a61c53b77a352cc8c9af38fc5a92ac3c\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xac6c2efc64baccbde4904ae18ed45139c9aa8cff96d6888344d1e4d2eb8b659f\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xc0e310c163edf15db45d4ff938113ab357f94fa86e61ea8e790853c4d2e13256\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\"},\"@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 \\u00f7 2 + 1, and for v in (302): v \\u2208 {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\",\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x8432884527a7ad91e6eed1cfc5a0811ae2073e5bca107bd0ca442e9236b03dbd\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0x3af3ca86df39aac39a0514c84459d691434a108d2151c8ce9d69f32e315cab80\",\"license\":\"MIT\"},\"@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        // \\u2192 `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\\n        // \\u2192 `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\",\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\"},\"@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\",\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\"},\"contracts/Config.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.20;\\n\\ncontract Config {\\n\\n\\tstruct Config_ {\\n\\t\\tuint128 depositBaseFee;\\n\\t\\tuint32 depositFeeRate;\\n\\t\\tuint32 finalizeTxGas;\\n\\t}\\n\\n\\tConfig_ public config;\\n\\n\\tuint32 public constant MAXPCT = 1000000;\\n\\n\\tevent UpdateConfig(Config_ config);\\n\\n\\tfunction _updateConfig(Config_ memory _config) internal {\\n\\t\\tconfig = _config;\\n\\t\\temit UpdateConfig(config);\\n\\t}\\n\\n\\tfunction _updateDepositBaseFee(uint128 _depositBaseFee) internal {\\n\\t\\tconfig.depositBaseFee = _depositBaseFee;\\n \\t\\temit UpdateConfig(config);\\n\\t}\\n\\n\\tfunction _updateDepositFeeRate(uint32 _depositFeeRate) internal {\\n\\t\\trequire(_depositFeeRate <= MAXPCT / 20, \\\"fee rate must be less or equal than 5%\\\");\\n\\t\\tconfig.depositFeeRate = _depositFeeRate;\\n \\t\\temit UpdateConfig(config);\\n\\t}\\n\\n\\tfunction _updateFinalizeTxGas(uint32 _finalizeTxGas) internal {\\n\\t\\tconfig.finalizeTxGas = _finalizeTxGas;\\n \\t\\temit UpdateConfig(config);\\n\\t}\\n\\n}\\n\",\"keccak256\":\"0x716183a600cab1ee8bc276840bfbfda8bd6e4d32698f97f0ab617b0afa946cd2\",\"license\":\"MIT\"},\"contracts/Controller.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.20;\\n\\nimport \\\"@openzeppelin/contracts/access/Ownable2Step.sol\\\";\\nimport \\\"./Relayers.sol\\\";\\nimport \\\"./Config.sol\\\";\\n\\ncontract Controller is Relayers, Config, Ownable2Step {\\n\\tbool public paused;\\n\\n\\tmodifier wherNotPaused() {\\n\\t\\trequire(!paused, \\\"paused!\\\");\\n\\t\\t_;\\n\\t}\\n\\n\\tconstructor(Config_ memory _config) Ownable2Step() {\\n\\t\\t_addRelayer(owner());\\n\\t\\t_updateConfig(_config);\\n\\t}\\n\\n\\tfunction pause() external onlyOwner {\\n\\t\\trequire(!paused, \\\"already paused\\\");\\n\\t\\tpaused = true;\\n\\t}\\n\\n\\tfunction unpause() external onlyOwner {\\n\\t\\trequire(paused, \\\"not paused\\\");\\n\\t\\tpaused = false;\\n\\t}\\n\\n\\tfunction addRelayer(address relayer) external onlyOwner {\\n\\t\\t_addRelayer(relayer);\\n\\t}\\n\\n\\tfunction removeRelayer(address relayer) external onlyOwner {\\n\\t\\t_removeRelayer(relayer);\\n\\t}\\n\\n\\tfunction updateConfig(Config_ memory _config) external onlyOwner {\\n\\t\\t_updateConfig(_config);\\n\\t}\\n\\n\\tfunction updateDepositBaseFee(uint128 _depositBaseFee) external onlyOwner {\\n\\t\\t_updateDepositBaseFee(_depositBaseFee);\\n\\t}\\n\\n\\tfunction updateDepositFeeRate(uint32 _depositFeeRate) external onlyOwner {\\n\\t\\t_updateDepositFeeRate(_depositFeeRate);\\n\\t}\\n\\n\\tfunction updateFinalizeTxGas(uint32 _finalizeTxGas) external onlyOwner {\\n\\t\\t_updateFinalizeTxGas(_finalizeTxGas);\\n\\t}\\n\\n}\\n\",\"keccak256\":\"0xd0c2a1a22c46a102305e2c1d4ea43c80de3cc06d0456039cb4401121b1d6eb74\",\"license\":\"MIT\"},\"contracts/ETHDeliver.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.20;\\n\\nimport \\\"@openzeppelin/contracts/utils/cryptography/EIP712.sol\\\";\\nimport \\\"@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol\\\";\\nimport \\\"@openzeppelin/contracts/token/ERC20/IERC20.sol\\\";\\nimport \\\"./Controller.sol\\\";\\n\\ncontract ETHDeliver is Controller, EIP712 {\\n\\n\\t/// @dev keccak256(\\\"DepositorWithdraw(bytes32 logHash,address from,address to,uint256 amount)\\\")\\n\\tbytes32 public DepositorWithdrawTypesHash = keccak256(\\\"DepositorWithdraw(bytes32 logHash,address from,address to,uint256 amount)\\\");\\n\\n\\t/// @dev keccak256(abi.encodePacked(txHash,logIndex))\\n\\tmapping(bytes32 => bool) public logHashes;\\n\\n\\tmapping(bytes32 => bool) public depositorWithdrawals;\\n\\n\\tevent Deposit(uint256 srcChainId, uint256 dstChainId, address from, address to, uint256 amount, uint256 fee, uint32 timeoutAt);\\n\\n\\tevent DepositorWithdrawn(DepositorWithdrawal w);\\n\\n\\tevent Finalize(address relayer, uint256 srcChainId, uint256 dstChainId, bytes32 logHash, address to, uint256 amount, uint256 fee);\\n\\n\\tevent EmergencyWithdraw(address admin, address to, IERC20 token, uint256 amount);\\n\\n\\tstruct DepositorWithdrawal{\\n\\t\\tbytes32 logHash;\\n\\t\\taddress from;\\n\\t\\taddress to;\\n\\t\\tuint256 amount;\\n\\t\\tbytes depositorSig;\\n\\t\\tbytes adminSig;\\n\\t}\\n\\n\\tstruct FinalizeTxMeta {\\n\\t\\tuint256 srcChainId; \\n\\t\\tbytes32 logHash; \\n\\t\\taddress to; \\n\\t\\tuint256 amount;\\n\\t\\tuint32 timeoutAt;\\n\\t}\\n\\n\\tmodifier ensureDepositorWithdraw(bytes32 logHash) {\\n\\t\\trequire(!depositorWithdrawals[logHash], \\\"deposits already withdraw\\\");\\n\\t\\tdepositorWithdrawals[logHash] = true;\\n\\t\\t_;\\n\\t}\\n\\n\\tmodifier ensureTx(bytes32 logHash) {\\n\\t\\trequire(!logHashes[logHash], \\\"tx finalized\\\");\\n\\t\\tlogHashes[logHash] = true;\\n\\t\\t_;\\n\\t}\\n\\n\\tmodifier notTimeout(uint32 timeoutAt) {\\n\\t\\trequire(block.timestamp <= timeoutAt, \\\"tx timeout\\\");\\n\\t\\t_;\\n\\t}\\n\\n\\tconstructor(Config_ memory config) Controller(config) EIP712(\\\"ETHDELIVER\\\", \\\"v1\\\") {\\n\\t}\\n\\n\\tfunction deposit(address to, uint256 dstChainId, uint32 timeoutAt) external payable notTimeout(timeoutAt) wherNotPaused {\\n\\t\\tuint256 value = msg.value;\\n\\t\\tuint256 fee = depositFee(value);\\n\\t\\trequire(value >= fee, \\\"insufficient value for deposit fee\\\");\\n\\t\\tvalue -= fee;\\n\\t\\t_transfer(owner(), fee);\\n\\t\\temit Deposit(chainId(), dstChainId, msg.sender, to, value, fee, timeoutAt);\\n\\t}\\n\\n\\tfunction mulFinalize(FinalizeTxMeta[] memory metas) external onlyRelayer {\\n\\t\\tfor (uint256 i = 0; i < metas.length; i++) {\\n\\t\\t\\tFinalizeTxMeta memory meta = metas[i];\\n\\t\\t\\trequire(!logHashes[meta.logHash], \\\"tx finalized\\\");\\n\\t\\t\\tlogHashes[meta.logHash] = true;\\n\\t\\t\\t_finalize(meta.srcChainId, meta.logHash, meta.to, meta.amount);\\n\\t\\t}\\n\\t}\\n\\n\\tfunction finalize(FinalizeTxMeta memory meta) external ensureTx(meta.logHash) notTimeout(meta.timeoutAt) onlyRelayer wherNotPaused {\\n\\t\\t_finalize(meta.srcChainId, meta.logHash, meta.to, meta.amount);\\n\\t}\\n\\n\\tfunction _finalize(uint256 srcChainId, bytes32 logHash, address to, uint256 amount) internal {\\n\\t\\tuint256 fee = finalizeTxGasFee();\\n\\t\\trequire(amount >= fee, \\\"insufficient amount for finalize fee\\\");\\n\\t\\tamount -= fee;\\n\\t\\t_transfer(to, amount);\\n\\t\\t_transfer(msg.sender, fee);\\n\\t\\temit Finalize(msg.sender, srcChainId, chainId(), logHash, to, amount, fee);\\n\\t}\\n\\n\\tfunction depositFee(uint256 amount) public view returns(uint256) {\\n\\t\\treturn config.depositBaseFee + (amount * config.depositFeeRate / MAXPCT);\\n\\t}\\n\\n\\tfunction finalizeTxGasFee() public view returns (uint256) {\\n\\t    return config.finalizeTxGas * gasPrice();\\n\\t}\\n\\n\\tfunction _transfer(address to, uint256 value) internal {\\n\\t\\t(bool success, ) = to.call{ value: value }(\\\"\\\");\\n\\t\\trequire(success, \\\"transfer failed\\\");\\n\\t}\\n\\n\\tfunction depositorWithdraw(DepositorWithdrawal memory w) external ensureDepositorWithdraw(w.logHash) wherNotPaused {\\n\\t\\tbytes32 hash = hashTypedDataV4ForDepositorWithdraw(w.logHash, w.from, w.to, w.amount);\\n\\t\\trequire(SignatureChecker.isValidSignatureNow(w.from, hash, w.depositorSig), \\\"invalid depositor\\\");\\n\\t\\trequire(SignatureChecker.isValidSignatureNow(owner(), hash, w.adminSig), \\\"invalid admin\\\");\\n\\t\\t_transfer(w.to, w.amount);\\n\\t\\temit DepositorWithdrawn(w);\\n\\t}\\n\\n\\tfunction hashTypedDataV4ForDepositorWithdraw(\\n\\t\\tbytes32 logHash,\\n\\t\\taddress from,\\n\\t\\taddress to,\\n\\t\\tuint256 amount\\n\\t) public view returns (bytes32) {\\n\\t\\treturn _hashTypedDataV4(keccak256(abi.encode(DepositorWithdrawTypesHash, logHash, from, to, amount)));\\n\\t}\\n\\n\\tfunction emergencyWithdraw(IERC20 token, address to, uint256 amount) external onlyOwner {\\n\\t\\tif (address(token) == address(0)) {\\n\\t\\t\\t(bool success, ) = to.call{ value: amount }(\\\"\\\");\\n\\t\\t\\trequire(success, \\\"withdraw eth failed\\\");\\n\\t\\t} else {\\n\\t\\t\\ttoken.transfer(to, amount);\\n\\t\\t}\\n\\t\\temit EmergencyWithdraw(msg.sender, to, token, amount);\\n\\t}\\n\\n\\tfunction chainId() public view returns (uint256 id) {\\n\\t\\tassembly {\\n\\t\\t\\tid := chainid()\\n\\t\\t}\\n\\t}\\n\\n\\tfunction gasPrice() public view returns (uint256 price) {\\n\\t\\tassembly {\\n\\t\\t\\tprice := gasprice()\\n\\t\\t}\\n\\t}\\n\\n\\treceive() external payable {}\\n}\\n\",\"keccak256\":\"0xe1f2f597d961bd03663021a39b41f2d4ca3549061bb669b09e7bf767e4fa335e\",\"license\":\"MIT\"},\"contracts/Relayers.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.20;\\n\\ncontract Relayers {\\n\\tmapping(address => bool) public relayers;\\n\\n\\tevent AddRelayer(address relayer);\\n\\tevent RemoveRelayer(address relayer);\\n\\n\\tmodifier onlyRelayer() {\\n\\t\\trequire(relayers[msg.sender], \\\"caller is not a relayer\\\");\\n\\t\\t_;\\n\\t}\\n\\n\\tfunction _addRelayer(address relayer) internal {\\n\\t\\trequire(!relayers[relayer], \\\"relayer exists\\\");\\n\\t\\trelayers[relayer] = true;\\n\\t\\temit AddRelayer(relayer);\\n\\t}\\n\\n\\tfunction _removeRelayer(address relayer) internal {\\n\\t\\trequire(relayers[relayer], \\\"nonexistent relayer\\\");\\n\\t\\trelayers[relayer] = true;\\n\\t\\temit RemoveRelayer(relayer);\\n\\t}\\n}\\n\",\"keccak256\":\"0x607cfc713c3374087cce7e3f2f3404eadd8875baed29b62c2eb1c8ba1ae0f7a2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3354,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"relayers","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":2549,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"config","offset":0,"slot":"1","type":"t_struct(Config_)2546_storage"},{"astId":7,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"_owner","offset":0,"slot":"2","type":"t_address"},{"astId":120,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"_pendingOwner","offset":0,"slot":"3","type":"t_address"},{"astId":2643,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"paused","offset":20,"slot":"3","type":"t_bool"},{"astId":1296,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"_nameFallback","offset":0,"slot":"4","type":"t_string_storage"},{"astId":1298,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"_versionFallback","offset":0,"slot":"5","type":"t_string_storage"},{"astId":2792,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"DepositorWithdrawTypesHash","offset":0,"slot":"6","type":"t_bytes32"},{"astId":2797,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"logHashes","offset":0,"slot":"7","type":"t_mapping(t_bytes32,t_bool)"},{"astId":2801,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"depositorWithdrawals","offset":0,"slot":"8","type":"t_mapping(t_bytes32,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Config_)2546_storage":{"encoding":"inplace","label":"struct Config.Config_","members":[{"astId":2541,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"depositBaseFee","offset":0,"slot":"0","type":"t_uint128"},{"astId":2543,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"depositFeeRate","offset":16,"slot":"0","type":"t_uint32"},{"astId":2545,"contract":"contracts/ETHDeliver.sol:ETHDeliver","label":"finalizeTxGas","offset":20,"slot":"0","type":"t_uint32"}],"numberOfBytes":"32"},"t_uint128":{"encoding":"inplace","label":"uint128","numberOfBytes":"16"},"t_uint32":{"encoding":"inplace","label":"uint32","numberOfBytes":"4"}}},"userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/Relayers.sol":{"Relayers":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"relayer","type":"address"}],"name":"AddRelayer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"relayer","type":"address"}],"name":"RemoveRelayer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"relayers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060f98061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80635300f84114602d575b600080fd5b604d60383660046091565b60006020819052908152604090205460ff1681565b6040516058919060b6565b60405180910390f35b60006001600160a01b0382165b92915050565b607b816061565b8114608557600080fd5b50565b8035606e816074565b60006020828403121560a45760a4600080fd5b600060ae84846088565b949350505050565b811515815260208101606e56fea2646970667358221220ec21d3e62d69494a161c24b1920029f0d445665ab202cd410f887acf0f40028964736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xF9 DUP1 PUSH2 0x1F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5300F841 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4D PUSH1 0x38 CALLDATASIZE PUSH1 0x4 PUSH1 0x91 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x58 SWAP2 SWAP1 PUSH1 0xB6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7B DUP2 PUSH1 0x61 JUMP JUMPDEST DUP2 EQ PUSH1 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x6E DUP2 PUSH1 0x74 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0xA4 JUMPI PUSH1 0xA4 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xAE DUP5 DUP5 PUSH1 0x88 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH1 0x6E JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEC 0x21 0xD3 0xE6 0x2D PUSH10 0x494A161C24B1920029F0 0xD4 GASLIMIT PUSH7 0x5AB202CD410F88 PUSH27 0xCF0F40028964736F6C634300081400330000000000000000000000 ","sourceMap":"58:563:17:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@relayers_3354":{"entryPoint":null,"id":3354,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":136,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":145,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":182,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":97,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":116,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1600:18","statements":[{"body":{"nodeType":"YulBlock","src":"47:35:18","statements":[{"nodeType":"YulAssignment","src":"57:19:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"73:2:18","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"67:5:18"},"nodeType":"YulFunctionCall","src":"67:9:18"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"57:6:18"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"40:6:18","type":""}],"src":"7:75:18"},{"body":{"nodeType":"YulBlock","src":"177:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"194:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"197:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"187:6:18"},"nodeType":"YulFunctionCall","src":"187:12:18"},"nodeType":"YulExpressionStatement","src":"187:12:18"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulFunctionDefinition","src":"88:117:18"},{"body":{"nodeType":"YulBlock","src":"300:28:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"317:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"320:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:18"},"nodeType":"YulFunctionCall","src":"310:12:18"},"nodeType":"YulExpressionStatement","src":"310:12:18"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nodeType":"YulFunctionDefinition","src":"211:117:18"},{"body":{"nodeType":"YulBlock","src":"379:81:18","statements":[{"nodeType":"YulAssignment","src":"389:65:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"404:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"411:42:18","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"400:3:18"},"nodeType":"YulFunctionCall","src":"400:54:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"389:7:18"}]}]},"name":"cleanup_t_uint160","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"361:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"371:7:18","type":""}],"src":"334:126:18"},{"body":{"nodeType":"YulBlock","src":"511:51:18","statements":[{"nodeType":"YulAssignment","src":"521:35:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"550:5:18"}],"functionName":{"name":"cleanup_t_uint160","nodeType":"YulIdentifier","src":"532:17:18"},"nodeType":"YulFunctionCall","src":"532:24:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"521:7:18"}]}]},"name":"cleanup_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"493:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"503:7:18","type":""}],"src":"466:96:18"},{"body":{"nodeType":"YulBlock","src":"611:79:18","statements":[{"body":{"nodeType":"YulBlock","src":"668:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"677:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"680:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"670:6:18"},"nodeType":"YulFunctionCall","src":"670:12:18"},"nodeType":"YulExpressionStatement","src":"670:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"634:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"659:5:18"}],"functionName":{"name":"cleanup_t_address","nodeType":"YulIdentifier","src":"641:17:18"},"nodeType":"YulFunctionCall","src":"641:24:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"631:2:18"},"nodeType":"YulFunctionCall","src":"631:35:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"624:6:18"},"nodeType":"YulFunctionCall","src":"624:43:18"},"nodeType":"YulIf","src":"621:63:18"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"604:5:18","type":""}],"src":"568:122:18"},{"body":{"nodeType":"YulBlock","src":"748:87:18","statements":[{"nodeType":"YulAssignment","src":"758:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"780:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"767:12:18"},"nodeType":"YulFunctionCall","src":"767:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"758:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"823:5:18"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"796:26:18"},"nodeType":"YulFunctionCall","src":"796:33:18"},"nodeType":"YulExpressionStatement","src":"796:33:18"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"726:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"734:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"742:5:18","type":""}],"src":"696:139:18"},{"body":{"nodeType":"YulBlock","src":"907:263:18","statements":[{"body":{"nodeType":"YulBlock","src":"953:83:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nodeType":"YulIdentifier","src":"955:77:18"},"nodeType":"YulFunctionCall","src":"955:79:18"},"nodeType":"YulExpressionStatement","src":"955:79:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"928:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"937:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"924:3:18"},"nodeType":"YulFunctionCall","src":"924:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"949:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"920:3:18"},"nodeType":"YulFunctionCall","src":"920:32:18"},"nodeType":"YulIf","src":"917:119:18"},{"nodeType":"YulBlock","src":"1046:117:18","statements":[{"nodeType":"YulVariableDeclaration","src":"1061:15:18","value":{"kind":"number","nodeType":"YulLiteral","src":"1075:1:18","type":"","value":"0"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1065:6:18","type":""}]},{"nodeType":"YulAssignment","src":"1090:63:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1125:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"1136:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1121:3:18"},"nodeType":"YulFunctionCall","src":"1121:22:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1145:7:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1100:20:18"},"nodeType":"YulFunctionCall","src":"1100:53:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1090:6:18"}]}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"877:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"888:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"900:6:18","type":""}],"src":"841:329:18"},{"body":{"nodeType":"YulBlock","src":"1218:48:18","statements":[{"nodeType":"YulAssignment","src":"1228:32:18","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1253:5:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1246:6:18"},"nodeType":"YulFunctionCall","src":"1246:13:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1239:6:18"},"nodeType":"YulFunctionCall","src":"1239:21:18"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"1228:7:18"}]}]},"name":"cleanup_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1200:5:18","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"1210:7:18","type":""}],"src":"1176:90:18"},{"body":{"nodeType":"YulBlock","src":"1331:50:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1348:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1368:5:18"}],"functionName":{"name":"cleanup_t_bool","nodeType":"YulIdentifier","src":"1353:14:18"},"nodeType":"YulFunctionCall","src":"1353:21:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1341:6:18"},"nodeType":"YulFunctionCall","src":"1341:34:18"},"nodeType":"YulExpressionStatement","src":"1341:34:18"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1319:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1326:3:18","type":""}],"src":"1272:109:18"},{"body":{"nodeType":"YulBlock","src":"1479:118:18","statements":[{"nodeType":"YulAssignment","src":"1489:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1501:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"1512:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1497:3:18"},"nodeType":"YulFunctionCall","src":"1497:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1489:4:18"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1563:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1576:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"1587:1:18","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1572:3:18"},"nodeType":"YulFunctionCall","src":"1572:17:18"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nodeType":"YulIdentifier","src":"1525:37:18"},"nodeType":"YulFunctionCall","src":"1525:65:18"},"nodeType":"YulExpressionStatement","src":"1525:65:18"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1451:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1463:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1474:4:18","type":""}],"src":"1387:210:18"}]},"contents":"{\n\n    function allocate_unbounded() -> memPtr {\n        memPtr := mload(64)\n    }\n\n    function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n        revert(0, 0)\n    }\n\n    function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n        revert(0, 0)\n    }\n\n    function cleanup_t_uint160(value) -> cleaned {\n        cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n    }\n\n    function cleanup_t_address(value) -> cleaned {\n        cleaned := cleanup_t_uint160(value)\n    }\n\n    function validator_revert_t_address(value) {\n        if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_address(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := 0\n\n            value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_bool(value) -> cleaned {\n        cleaned := iszero(iszero(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 0))\n\n    }\n\n}\n","id":18,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052348015600f57600080fd5b506004361060285760003560e01c80635300f84114602d575b600080fd5b604d60383660046091565b60006020819052908152604090205460ff1681565b6040516058919060b6565b60405180910390f35b60006001600160a01b0382165b92915050565b607b816061565b8114608557600080fd5b50565b8035606e816074565b60006020828403121560a45760a4600080fd5b600060ae84846088565b949350505050565b811515815260208101606e56fea2646970667358221220ec21d3e62d69494a161c24b1920029f0d445665ab202cd410f887acf0f40028964736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5300F841 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4D PUSH1 0x38 CALLDATASIZE PUSH1 0x4 PUSH1 0x91 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x58 SWAP2 SWAP1 PUSH1 0xB6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7B DUP2 PUSH1 0x61 JUMP JUMPDEST DUP2 EQ PUSH1 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x6E DUP2 PUSH1 0x74 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0xA4 JUMPI PUSH1 0xA4 PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xAE DUP5 DUP5 PUSH1 0x88 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP2 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 DUP2 ADD PUSH1 0x6E JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEC 0x21 0xD3 0xE6 0x2D PUSH10 0x494A161C24B1920029F0 0xD4 GASLIMIT PUSH7 0x5AB202CD410F88 PUSH27 0xCF0F40028964736F6C634300081400330000000000000000000000 ","sourceMap":"58:563:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;79:40;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;466:96:18;503:7;-1:-1:-1;;;;;400:54:18;;532:24;521:35;466:96;-1:-1:-1;;466:96:18:o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;767:20;;796:33;767:20;796:33;:::i;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;58:563:17;;;955:79:18;1075:1;1100:53;1145:7;1125:9;1100:53;:::i;:::-;1090:63;841:329;-1:-1:-1;;;;841:329:18:o;1387:210::-;1246:13;;1239:21;1341:34;;1512:2;1497:18;;1525:65;1272:109"},"gasEstimates":{"creation":{"codeDepositCost":"49800","executionCost":"99","totalCost":"49899"},"external":{"relayers(address)":"infinite"},"internal":{"_addRelayer(address)":"infinite","_removeRelayer(address)":"infinite"}},"methodIdentifiers":{"relayers(address)":"5300f841"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"AddRelayer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"RemoveRelayer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"relayers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Relayers.sol\":\"Relayers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"yul\":false},\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Relayers.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\n\\npragma solidity 0.8.20;\\n\\ncontract Relayers {\\n\\tmapping(address => bool) public relayers;\\n\\n\\tevent AddRelayer(address relayer);\\n\\tevent RemoveRelayer(address relayer);\\n\\n\\tmodifier onlyRelayer() {\\n\\t\\trequire(relayers[msg.sender], \\\"caller is not a relayer\\\");\\n\\t\\t_;\\n\\t}\\n\\n\\tfunction _addRelayer(address relayer) internal {\\n\\t\\trequire(!relayers[relayer], \\\"relayer exists\\\");\\n\\t\\trelayers[relayer] = true;\\n\\t\\temit AddRelayer(relayer);\\n\\t}\\n\\n\\tfunction _removeRelayer(address relayer) internal {\\n\\t\\trequire(relayers[relayer], \\\"nonexistent relayer\\\");\\n\\t\\trelayers[relayer] = true;\\n\\t\\temit RemoveRelayer(relayer);\\n\\t}\\n}\\n\",\"keccak256\":\"0x607cfc713c3374087cce7e3f2f3404eadd8875baed29b62c2eb1c8ba1ae0f7a2\",\"license\":\"MIT\"}},\"version\":1}","storageLayout":{"storage":[{"astId":3354,"contract":"contracts/Relayers.sol:Relayers","label":"relayers","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"}}},"userdoc":{"kind":"user","methods":{},"version":1}}}}}}